当前位置: 首页 > 工具软件 > Python grpc > 使用案例 >

python grpc_Python grpc 模块,Channel() 实例源码 - 编程字典

姚烨
2023-12-01

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)

 类似资料: