Kebijakan ExternalInfo

Halaman ini berlaku untuk Apigee dan Apigee hybrid.

Lihat Dokumentasi Apigee Edge.

ikon kebijakan

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:

  1. Apigee mengirimkan pesan yang berisi variabel flow ke server gRPC Anda.
  2. 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.
  3. 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 name dapat berisi huruf, angka, spasi, tanda hubung, garis bawah, dan titik. Nilai ini tidak boleh melebihi 255 karakter.

Atau, gunakan elemen <DisplayName> untuk memberi label kebijakan di editor proxy UI pengelolaan dengan nama natural-language yang berbeda.

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 flow example1.flow.variable dan example2.flow.variable, yang ditentukan oleh elemen FlowVariable, 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>