全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Deskripsi ASMGrpcJsonTranscoder

更新时间:Jun 28, 2025

ASMGrpcJsonTranscoder digunakan untuk transkoding antara HTTP/JSON dan gRPC/Protobuf. Topik ini menjelaskan field-field dari ASMGrpcJsonTranscoder.

Deskripsi Field

Field

Tipe

Wajib

Deskripsi

workloadSelector

map<string, string>

Ya

Satu atau lebih label yang menentukan sekumpulan pod di mana konfigurasi berlaku. Ruang lingkup pencarian label dibatasi pada namespace tempat sumber daya berada. Untuk informasi lebih lanjut, lihat Workload Selector.

isGateway

bool

Tidak

Menentukan apakah konfigurasi diterapkan ke gateway. Nilai true menunjukkan bahwa konfigurasi berlaku untuk gateway. Nilai default: false.

portNumber

int

Ya

Port layanan yang sesuai. Jika konfigurasi diterapkan ke gateway, field ini menentukan port layanan (seperti 8080) yang melakukan transkoding pada gateway.

services

string[]

Ya

Layanan yang dideklarasikan dalam file Proto dalam format {nama paket}.{nama layanan}. Contoh:

services:
 - 'helloworld.Greeter'

protoDescriptorBin

string

Ya

Konten file Proto Descriptor yang di-enkode Base64. Perhatikan bahwa nilai field ini harus di-enkode Base64.

transcodeFirst

bool

Tidak

Nilai default: false. Nilai true menunjukkan bahwa permintaan HTTP ditranscoding terlebih dahulu sebelum pemrosesan lainnya. Ini dapat memengaruhi fitur kontrol lalu lintas berbasis permintaan. Sebagai contoh, jika permintaan yang dikirim ke layanan otorisasi eksternal kustom ditranscoding terlebih dahulu, layanan tersebut akan menerima permintaan gRPC. Jika tidak, layanan tersebut akan menerima permintaan HTTP.

convertGrpcStatus

bool

Tidak

Nilai default adalah false. Menentukan apakah akan mengonversi grpc-status ke JSON. Setelah Anda mengatur parameter ini ke true, pesan google.rpc.Status akan diambil dari header grpc-status-details-bin dan digunakan sebagai body JSON ketika kesalahan gRPC dikembalikan dari layanan upstream dan tidak ada respons body HTTP yang tersedia. Jika header seperti itu tidak ada, pesan google.rpc.Status akan dibuat berdasarkan grpc-status dan grpc-message.

Sebagai contoh, server upstream merespons dengan header berikut:

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

Header grpc-status-details-bin berisi pesan protobuf yang di-enkode Base64 google.rpc.Status. Pesan ini akan dikonversi menjadi:

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

Tidak

Parameter query yang diabaikan saat metode transkoding dipetakan. Secara default, jika ada parameter query yang tidak dikenal atau tidak valid, transcoder tidak akan mentranscoding permintaan. Parameter query HTTP yang diabaikan yang dinyatakan dalam ignoredQueryParameters akan diabaikan saat muncul dalam permintaan, dan permintaan dapat ditranscoding.

ignoreUnknownQueryParameters

bool

Tidak

Parameter query untuk menentukan apakah akan mengabaikan permintaan HTTP yang tidak dapat dipetakan ke field protobuf yang sesuai. Konfigurasikan parameter ini jika ada parameter query yang tidak dikenal. Jika tidak, konfigurasikan ignoredQueryParameters.

Penting

Jika baik ignoredQueryParameters maupun ignoreUnknownQueryParameters dikonfigurasi, konfigurasi yang dinyatakan dalam ignoredQueryParameters akan menjadi tidak valid. Lanjutkan dengan hati-hati.

Referensi

Gunakan ASMGrpcJsonTranscoder untuk mengizinkan permintaan HTTP/JSON mengakses layanan gRPC dalam instance ASM.