Title: Enable DirectPath support for gRPC workflows · Issue #482 · googleapis/python-api-core · GitHub
Open Graph Title: Enable DirectPath support for gRPC workflows · Issue #482 · googleapis/python-api-core
X Title: Enable DirectPath support for gRPC workflows · Issue #482 · googleapis/python-api-core
Description: Is your feature request related to a problem? Please describe. The current behavior for grpc does not utilize DirectPath. DirectPath leads to improved latency for request originating from GCE VMs and gcloud storage relies on this feature...
Open Graph Description: Is your feature request related to a problem? Please describe. The current behavior for grpc does not utilize DirectPath. DirectPath leads to improved latency for request originating from GCE VMs a...
X Description: Is your feature request related to a problem? Please describe. The current behavior for grpc does not utilize DirectPath. DirectPath leads to improved latency for request originating from GCE VMs a...
Opengraph URL: https://github.com/googleapis/python-api-core/issues/482
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Enable DirectPath support for gRPC workflows","articleBody":" **Is your feature request related to a problem? Please describe.**\r\nThe current behavior for grpc does not utilize DirectPath. DirectPath leads to improved latency for request originating from GCE VMs and `gcloud storage` relies on this feature.\r\n\r\n **Describe the solution you'd like**\r\nTwo changes are needed:\r\n\r\n\r\n1. Replace: https://github.com/googleapis/python-api-core/blob/b6eb6dee2762b602d553ace510808afd67af461d/google/api_core/grpc_helpers.py#L267\r\nwith:\r\n```\r\nif compute_engine_channel_credentials_requested:\r\n return grpc.compute_engine_channel_credentials(google_auth_credentials)\r\nelse:\r\n grpc.composite_channel_credentials(ssl_credentials, google_auth_credentials)\r\n```\r\nwhere, compute_engine_channel_credentials_requested will be a `bool` passed to the `create_channel` call. Alternatively, it can rely on the env variable like it's done for other languages \r\n\r\n2. Add the `google-c2p` resolver. This can be similar to how other languages e.g. go handles it https://github.com/googleapis/google-api-go-client/blob/8d8f0a70d0bd6ba4daaa08370d1420f759ff7f9d/transport/grpc/dial.go#L182\r\n\r\n **Describe alternatives you've considered**\r\nFor `#2` above, we can potentially update the [GAPIC client generator](https://github.com/googleapis/gapic-generator-python) to create the host name with `google-c2p:///` prefixed. But I think given that all other languages are handling it in the middleware, it is appropriate to make this change in this library.\r\n\r\n **Additional context**\r\nThere is an internal bug related to this, but I'm not sure if I link it on a public repo.\r\n","author":{"url":"https://github.com/dilipped","@type":"Person","name":"dilipped"},"datePublished":"2023-02-03T17:30:46.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":3},"url":"https://github.com/482/python-api-core/issues/482"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:55119dfc-7f24-cbf2-1ebf-4c0c17a85686 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | BF86:3885D3:D48F71:134D47B:6A4E2995 |
| html-safe-nonce | 6002e7ce9ffd3075d7a2b71d3eb001cfc767d7b7efe7c4d8657a3ae100f46ad1 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCRjg2OjM4ODVEMzpENDhGNzE6MTM0RDQ3Qjo2QTRFMjk5NSIsInZpc2l0b3JfaWQiOiI5MTEzNDY1MDQxMDA5Mzg3OTI1IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | ff34876db2c41dbbae6cd1ac871aa8d1ae40b02fde6ffc031c628ecb06d37949 |
| hovercard-subject-tag | issue:1570202810 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/googleapis/python-api-core/482/issue_layout |
| twitter:image | https://opengraph.githubassets.com/b9ac8f725425f2d0b0a87a124c60642b9c2cdeee01d33f6be7a1888d2051b731/googleapis/python-api-core/issues/482 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/b9ac8f725425f2d0b0a87a124c60642b9c2cdeee01d33f6be7a1888d2051b731/googleapis/python-api-core/issues/482 |
| og:image:alt | Is your feature request related to a problem? Please describe. The current behavior for grpc does not utilize DirectPath. DirectPath leads to improved latency for request originating from GCE VMs a... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | dilipped |
| hostname | github.com |
| expected-hostname | github.com |
| None | 030096ee0db095447bfe77409d33bfac127ca7128299c58deef27c52eaa1b1f0 |
| turbo-cache-control | no-preview |
| go-import | github.com/googleapis/python-api-core git https://github.com/googleapis/python-api-core.git |
| octolytics-dimension-user_id | 16785467 |
| octolytics-dimension-user_login | googleapis |
| octolytics-dimension-repository_id | 226992456 |
| octolytics-dimension-repository_nwo | googleapis/python-api-core |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 226992456 |
| octolytics-dimension-repository_network_root_nwo | googleapis/python-api-core |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | d9dd20d38f8ae3c4cb6b597807431db300d0bd2a |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width