本文整理汇总了Python中grpc.CallCredentials方法的典型用法代码示例。如果您正苦于以下问题:Python grpc.CallCredentials方法的具体用法?Python grpc.CallCredentials怎么用?Python grpc.CallCredentials使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类grpc
的用法示例。
在下文中一共展示了grpc.CallCredentials方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __call__
# 需要导入模块: import grpc [as 别名]
# 或者: from grpc import CallCredentials [as 别名]
def __call__(self, context, callback):
"""Passes authorization metadata into the given callback.
Args:
context (grpc.AuthMetadataContext): The RPC context.
callback (grpc.AuthMetadataPluginCallback): The callback that will
be invoked to pass in the authorization metadata.
"""
headers = {}
self._credentials.before_request(
self._request, context.method_name, context.service_url, headers
)
id_token = getattr(self._credentials, "id_token", None)
if id_token:
self._credentials.apply(headers, token=id_token)
else:
logger.error("Failed to find ID token credentials")
# Pass headers as key-value pairs to match CallCredentials metadata.
callback(list(headers.items()), None)
示例2: combined_credentials
# 需要导入模块: import grpc [as 别名]
# 或者: from grpc import CallCredentials [as 别名]
def combined_credentials(self) -> grpc.CallCredentials:
"""
Combine ssl and macaroon credentials
:return: grpc.composite_channel_credentials
"""
cert_creds = grpc.ssl_channel_credentials(self.tls_cert)
auth_creds = grpc.metadata_call_credentials(self.metadata_callback)
return grpc.composite_channel_credentials(cert_creds, auth_creds)
示例3: id_token_call_credentials
# 需要导入模块: import grpc [as 别名]
# 或者: from grpc import CallCredentials [as 别名]
def id_token_call_credentials(credentials):
"""Constructs `grpc.CallCredentials` using
`google.auth.Credentials.id_token`.
Args:
credentials (google.auth.credentials.Credentials): The credentials to use.
Returns:
grpc.CallCredentials: The call credentials.
"""
request = google.auth.transport.requests.Request()
return grpc.metadata_call_credentials(
IdTokenAuthMetadataPlugin(credentials, request)
)
示例4: secure_authorized_channel
# 需要导入模块: import grpc [as 别名]
# 或者: from grpc import CallCredentials [as 别名]
def secure_authorized_channel(
credentials, request, target, ssl_credentials=None, **kwargs):
"""Creates a secure authorized gRPC channel.
This creates a channel with SSL and :class:`AuthMetadataPlugin`. This
channel can be used to create a stub that can make authorized requests.
Example::
import google.auth
import google.auth.transport.grpc
import google.auth.transport.requests
from google.cloud.speech.v1 import cloud_speech_pb2
# Get credentials.
credentials, _ = google.auth.default()
# Get an HTTP request function to refresh credentials.
request = google.auth.transport.requests.Request()
# Create a channel.
channel = google.auth.transport.grpc.secure_authorized_channel(
credentials, 'speech.googleapis.com:443', request)
# Use the channel to create a stub.
cloud_speech.create_Speech_stub(channel)
Args:
credentials (google.auth.credentials.Credentials): The credentials to
add to requests.
request (google.auth.transport.Request): A HTTP transport request
object used to refresh credentials as needed. Even though gRPC
is a separate transport, there's no way to refresh the credentials
without using a standard http transport.
target (str): The host and port of the service.
ssl_credentials (grpc.ChannelCredentials): Optional SSL channel
credentials. This can be used to specify different certificates.
kwargs: Additional arguments to pass to :func:`grpc.secure_channel`.
Returns:
grpc.Channel: The created gRPC channel.
"""
# Create the metadata plugin for inserting the authorization header.
metadata_plugin = AuthMetadataPlugin(credentials, request)
# Create a set of grpc.CallCredentials using the metadata plugin.
google_auth_credentials = grpc.metadata_call_credentials(metadata_plugin)
if ssl_credentials is None:
ssl_credentials = grpc.ssl_channel_credentials()
# Combine the ssl credentials and the authorization credentials.
composite_credentials = grpc.composite_channel_credentials(
ssl_credentials, google_auth_credentials)
return grpc.secure_channel(target, composite_credentials, **kwargs)