Halaman ini berlaku untuk Apigee dan Apigee hybrid.
Lihat Dokumentasi Apigee Edge.
Apa
Kebijakan ExternalInfo memungkinkan Anda mengirim Permintaan gRPC ke server gRPC untuk menerapkan perilaku kustom yang tidak didukung oleh kebijakan Apigee. Pada kode server Anda, Anda dapat dengan mudah mengakses dan mengubah variabel alur dalam alur proxy.
Apigee berkomunikasi dengan server gRPC melalui kebijakan Externalcallouts melalui API. Apigee menggunakan API untuk mengirim variabel flow ke server gRPC. Dalam server gRPC, Anda dapat membaca—dan bergantung pada variabel, memodifikasi— variabel alur yang tercantum dalam Referensi Variabel flow serta variabel tambahan yang Anda tentukan dalam XML kebijakan.
Jika Anda mengonfigurasi server gRPC dengan Apigee dan menyertakan kebijakan ini dalam proxy, Apigee akan menangani permintaan API sebagai berikut:
- Apigee mengirimkan pesan yang berisi variabel flow ke server gRPC Anda.
- Kode server gRPC Anda dieksekusi, mengakses, dan mengubah variabel seperti yang ditentukan dalam kode. Server gRPC kemudian mengirimkan respons yang berisi semua variabel flow kembali ke Apigee.
- Apigee membaca respons dari server gRPC Anda. Jika ada variabel yang ditambahkan atau Variabel alur yang dapat diubah telah diubah dan akan diperbarui di Apigee.
Kebijakan ini merupakan Kebijakan standar dan dapat di-deploy ke jenis lingkungan apa pun. Tidak semua perlu diketahui pengguna tentang jenis kebijakan dan lingkungan. Sebagai informasi tentang jenis kebijakan dan ketersediaan untuk setiap jenis lingkungan, lihat Jenis kebijakan.
Untuk mempelajari lebih lanjut cara mengirim permintaan gRPC, lihat link berikut:
<ExternalCallout>
Menentukan kebijakan ExternalInfo.
<ExternalCallout async="true" continueOnError="true" enabled="true" name="EC">
Elemen ini memiliki atribut berikut yang sama untuk semua kebijakan:
Atribut | Default | Wajib? | Deskripsi |
---|---|---|---|
name |
T/A | Wajib |
Nama internal kebijakan. Nilai atribut Atau, gunakan elemen |
continueOnError |
false | Opsional | Setel ke false untuk menampilkan error jika kebijakan gagal. Ini adalah perilaku yang wajar untuk sebagian besar kebijakan. Setel ke true agar eksekusi alur tetap berlanjut bahkan setelah kebijakan gagal. Lihat juga:
|
enabled |
true | Opsional | Setel ke true untuk menerapkan kebijakan. Setel ke false untuk menonaktifkan kebijakan. Kebijakan tidak akan diterapkan meskipun tetap melekat pada alur. |
async |
false | Tidak digunakan lagi | Atribut ini sudah tidak digunakan lagi. |
Tabel berikut menjelaskan elemen turunan dari
<ExternalCallout>
.
Elemen Turunan | Wajib | Deskripsi |
---|---|---|
<TimeoutMs> |
Wajib | Waktu tunggu permintaan dalam milidetik untuk permintaan gRPC. |
<GrpcConnection> |
Wajib | Menentukan nama TargetServer yang ada untuk menjadi server gRPC
kirim permintaan.
|
<Configurations> |
Opsional | Memungkinkan Anda mengonfigurasi berbagai aspek kebijakan ExternalInfo,
termasuk <Property> dan <FlowVariable>
yang kurang penting. |
Contoh 1
Contoh kerja Externalcallout tersedia di Contoh Keterangan Eksternal di GitHub.
Contoh berikut mengilustrasikan konfigurasi kebijakan ExternalInfo.
<ExternalCallout enabled="true" continueOnError="false" name="ExternalCallout-1"> <DisplayName>External Callout 1</DisplayName> <TimeoutMs>5000</TimeoutMs> <GrpcConnection> <Server name="external-target-server"/> </GrpcConnection> <Configurations> <Property name="with.request.content">true</Property> <Property name="with.request.headers">false</Property> <Property name="with.response.content">true</Property> <Property name="with.response.headers">false</Property> <FlowVariable>example1.flow.variable</FlowVariable> <FlowVariable>example2.flow.variable</FlowVariable> </Configurations> <ExternalCallout>
Contoh ini mengirim permintaan ke server gRPC eksternal yang diwakili oleh
TargetServer bernama external-target-server
, dengan konfigurasi berikut:
<Property>
: Menyertakan konten permintaan dan respons, tetapi tidak header permintaan dan respons, di dikirim ke server gRPC.<FlowVariable>
: Sertakan informasi tambahan variabel flowexample1.flow.variable
danexample2.flow.variable
, yang ditentukan oleh elemenFlowVariable
, dalam permintaan yang dikirim ke gRPC server tertentu.
Contoh 2
Dalam contoh berikut, atribut useTargetUrl
dari Audience
disetel ke true
. Jika useTargetUrl
adalah true
,
nama host server target gRPC digunakan sebagai audiens. Sebagai
misalnya, jika host server adalah my-grpc-server-java.a.run.app
, berarti audiens
yang digunakan adalah https://my-grpc-server-java.a.run.app
.
<ExternalCallout continueOnError="false" enabled="true" name="External-Callout-1"> <DisplayName>External-Callout-1</DisplayName> <GrpcConnection> <Server name="cloud_run_server_name"/> <Authentication> <GoogleIDToken> <Audience useTargetUrl="true"/> </GoogleIDToken> </Authentication> </GrpcConnection> <TimeoutMs>5000</TimeoutMs> <Configurations> <Property name="with.request.content">true</Property> <Property name="with.request.headers">true</Property> <Property name="with.response.content">true</Property> <Property name="with.response.headers">true</Property> <FlowVariable>example.flow.variable</FlowVariable> <FlowVariable>another.flow.variable</FlowVariable> </Configurations> </ExternalCallout>