すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Service Mesh:ASMGrpcJsonTranscoder フィールドの説明

最終更新日:Jan 22, 2025

ASMGrpcJsonTranscoder は、HTTP/JSON と gRPC/Protobuf 間のトランスコードに使用されます。このトピックでは、ASMGrpcJsonTranscoder のフィールドについて説明します。

フィールドの説明

フィールド

タイプ

必須

説明

workloadSelector

map<string, string>

はい

構成が有効になるポッドのセットを指定する 1 つ以上のラベル。ラベル検索の範囲は、リソースが存在する名前空間に制限されます。詳細については、「ワークロードセレクター」をご参照ください。

isGateway

bool

いいえ

ゲートウェイに構成を適用するかどうかを指定します。値 true は、構成がゲートウェイに適用されることを示します。デフォルト値:false。

portNumber

int

はい

対応するサービスポート。構成がゲートウェイに適用される場合、このフィールドは、ゲートウェイでトランスコードを実行するサービスポート(8080 など)を指定します。

services

string[]

はい

{パッケージ名}.{サービス名} 形式の Proto ファイルで構成が宣言するサービス。例:

services:
 - 'helloworld.Greeter'

protoDescriptorBin

string

はい

Proto Descriptor ファイルの Base64 エンコードされたコンテンツ。このフィールドの値は Base64 エンコードされている必要があります。

transcodeFirst

bool

いいえ

デフォルト値:false。値 true は、他の処理の前に HTTP リクエストが最初にトランスコードされることを示します。これは、リクエストベースのトラフィック制御機能に影響を与える可能性があります。たとえば、カスタム外部承認サービスに送信されたリクエストが最初にトランスコードされた場合、サービスは gRPC リクエストを受信します。それ以外の場合、HTTP リクエストを受信します。

convertGrpcStatus

bool

いいえ

デフォルト値は false です。 grpc-status を JSON に変換するかどうかを指定します。このパラメーターを true に設定すると、アップストリーム サービスから gRPC エラーが返され、HTTP 本文レスポンスが使用できない場合、google.rpc.Status メッセージが grpc-status-details-bin ヘッダーから取得され、JSON 本文として使用されます。このようなヘッダーが存在しない場合は、grpc-status と grpc-message に基づいて google.rpc.Status メッセージが生成されます。

たとえば、アップストリームサーバーは次のヘッダーで応答します。

grpc-status: 5
grpc-status-details-bin: CAUaMwoqdHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucnBjLlJlcXVlc3RJbmZvEgUKA3ItMQ

grpc-status-details-bin ヘッダーには、Base64 エンコードされた protobuf メッセージ google.rpc.Status が含まれています。これは次のように変換されます。

HTTP/1.1 404 Not Found
content-type: application/json
{
"code": 5,
"details": [
        {
        "@type": "type.googleapis.com/google.rpc.RequestInfo",
        "requestId": "r-1"
        }
    ]
}

ignoredQueryParameters

[]string

いいえ

メソッドがマッピングされるときに無視されるクエリパラメーター。デフォルトでは、不明なクエリパラメーターまたは無効なクエリパラメーターが存在する場合、トランスコーダーはリクエストをトランスコードしません。 ignoredQueryParameters で宣言された無視された HTTP リクエストクエリパラメーターは、リクエストに表示されたときに無視され、リクエストはトランスコードできます。

ignoreUnknownQueryParameters

bool

いいえ

対応する protobuf フィールドにマッピングできない HTTP リクエストを無視するかどうかを指定するクエリパラメーター。不明なクエリパラメーターが存在する場合は、このパラメーターを構成します。それ以外の場合は、ignoredQueryParameters を構成します。

重要

ignoredQueryParametersignoreUnknownQueryParameters の両方が構成されている場合、ignoredQueryParameters で宣言されている構成は無効になります。注意して進めてください。

関連資料

ASMGrpcJsonTranscoder を使用して、HTTP/JSON リクエストが ASM インスタンスの gRPC サービスにアクセスできるようにする