Kebijakan ReadPropertySet

Ringkasan

Kebijakan ReadPropertySet membaca kumpulan properti dan mengisi variabel alur dengan hasilnya.

Kebijakan ini adalah Kebijakan standar dan dapat di-deploy ke jenis lingkungan apa pun. Tidak semua pengguna perlu mengetahui tentang kebijakan dan jenis lingkungan. Untuk mengetahui informasi tentang jenis kebijakan dan ketersediaan untuk setiap jenis lingkungan, lihat Jenis kebijakan.

Elemen <ReadPropertySet>

Menentukan kebijakan ReadPropertySet.

Nilai Default Lihat tab Kebijakan Default di bawah
Wajib? Diperlukan
Type Objek kompleks
Elemen Induk T/A
Elemen Turunan <Read>

Elemen <ReadPropertySet> menggunakan sintaksis berikut:

Sintaksis

Elemen <ReadPropertySet> menggunakan sintaksis berikut:

<ReadPropertySet name="read-property-set">
  <Read>
    <Name ref="set-ref">property-set-name</Name>
    <Key ref="key-ref">key-name</Key>
    <AssignTo>var1</AssignTo>
    <DefaultValue>default-value</DefaultValue>
  </Read>
  ...
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ReadPropertySet>

Kebijakan Default

Contoh berikut menunjukkan setelan default saat Anda menambahkan kebijakan ReadPropertySet ke alur di UI Apigee:

<ReadPropertySet name="read-property-set">
  <Read>
    <Name ref="set-ref">property-set-name</Name>
    <Key ref="key-ref">key-name</Key>
    <AssignTo>var1</AssignTo>
    <DefaultValue>default-value</DefaultValue>
  </Read>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ReadPropertySet>

Saat Anda menyisipkan kebijakan ReadPropertySet baru di UI Apigee, template tersebut akan berisi stub untuk semua kemungkinan operasi. Lihat di bawah untuk mengetahui informasi tentang elemen yang diperlukan.

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 memberikan deskripsi tingkat tinggi dari elemen turunan <ReadPropertySet>:

Elemen Turunan Wajib? Deskripsi
<Read> Diperlukan Membaca dan me-resolve variabel kumpulan properti dan menyetelnya ke variabel alur tertentu.

<IgnoreUnresolvedVariables> Opsional Menentukan apakah pemrosesan akan berhenti saat kumpulan properti tidak terselesaikan.

Contoh

Bagian ini memberikan contoh menggunakan <ReadPropertySet>.

Contoh

Contoh ini menggunakan <ReadPropertySet> untuk mendapatkan propertyset.environment.name.request.headers.api-version dan menetapkannya ke target_url. Jika nilai kumpulan properti tidak diperoleh, https://httpbin.org/get akan digunakan.

<ReadPropertySet name="read-property-set">
  <Read>
    <Name ref="set-ref">environment.name</Name>
    <Key ref="key-ref">request.headers.api-version</Key>
    <AssignTo>target_url</AssignTo>
    <DefaultValue>https://httpbin.org/get</DefaultValue>
  </Read>
  <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> 
</ReadPropertySet>

Referensi elemen turunan

Bagian ini menjelaskan elemen turunan <ReadPropertySet>.

<Read>

Menyelesaikan variabel kumpulan properti dan menetapkan hasilnya dalam variabel alur.

Elemen <Read> menentukan variabel yang ditetapkan properti untuk di-resolve dan variabel flow yang akan ditetapkan nilai tersebut. Properti ini juga mencakup nilai default opsional, yang digunakan jika ada kumpulan properti yang belum terselesaikan. Anda dapat menyertakan beberapa elemen <Read> dalam satu kebijakan <ReadPropertySet>.

Nilai Default T/A
Wajib? Opsional
Type Jenis kompleks
Elemen Induk <ReadPropertySet>
Elemen Turunan <Name>
<Key>
<AssignTo>
<DefaultValue>

Elemen <Read> menggunakan sintaksis berikut:

Sintaksis

<Read>
  <Name ref="set-ref">property-set-name</Name>
  <Key ref="key-ref">key-name</Key>
  <AssignTo>var1</AssignTo>
  <DefaultValue>default-value</DefaultValue>
</Read>

Contoh

Contoh ini menggunakan <ReadPropertySet> untuk mendapatkan propertyset.environment.name.request.headers.api-version dan menetapkannya ke target_url. Jika nilai kumpulan properti tidak diperoleh, https://httpbin.org/get akan digunakan.

<ReadPropertySet name="read-property-set">
  <Read>
    <Name ref="environment.name">my-property-set-name</Name>
    <Key ref="request.headers.api-version">my-property-set-key</Key>
    <AssignTo>target_url</AssignTo>
    <DefaultValue>https://httpbin.org/get</DefaultValue>
  </Read>
  <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
</ReadPropertySet>

Tabel berikut memberikan deskripsi tingkat tinggi untuk elemen turunan <Read>.

Elemen Turunan Wajib? Deskripsi
<Name> Diperlukan String

Properti yang disetel untuk dibaca. Berikan ref, nilai, atau keduanya.

Pertama-tama, Apigee mencoba me-resolve Name berdasarkan ref, lalu nilainya. Jika keduanya tidak dapat diselesaikan, <DefaultValue>, jika ada, akan berlaku.

<Name> dan <Key> digabungkan menjadi propertyset.{value_resolved_from_Name}.{value_resolved_from_Key}.

<Key> Diperlukan String

Kunci dari kumpulan properti yang digunakan saat me-resolve variabel. Berikan ref, nilai, atau keduanya.

Pertama-tama, Apigee mencoba me-resolve Key berdasarkan ref, lalu nilainya. Jika keduanya tidak dapat diselesaikan, <DefaultValue>, jika ada, akan berlaku.

<Name> dan <Key> digabungkan menjadi propertyset.{value_resolved_from_Name}.{value_resolved_from_Key}.

<AssignTo> Diperlukan String

Menentukan variabel flow untuk menetapkan variabel yang di-resolve.
<DefaultValue> Opsional String

Menentukan nilai default yang akan digunakan saat variabel tidak dapat di-resolve.

<IgnoreUnresolvedVariables>

Menentukan apakah pemrosesan akan berhenti saat kumpulan properti tidak terselesaikan. Tetapkan ke true untuk mengabaikan variabel yang belum terselesaikan dan melanjutkan pemrosesan.

IgnoreUnresolvedVariables tidak berlaku saat <DefaultValue> diberikan.

Nilai Default Salah
Wajib? Opsional
Type Boolean
Elemen Induk <ReadPropertySet>
Elemen Turunan Tidak ada

Referensi error

Bagian ini menjelaskan kode kesalahan dan pesan error yang ditampilkan, serta variabel kesalahan yang ditetapkan oleh Apigee khusus untuk kebijakan <ReadPropertySet>. Informasi ini penting untuk diketahui apakah Anda mengembangkan aturan kesalahan untuk menangani kesalahan. Untuk mempelajari lebih lanjut, lihat Yang perlu Anda ketahui tentang error kebijakan dan Menangani kesalahan.

Error runtime

Error ini dapat terjadi saat kebijakan dijalankan.

Kode kesalahan Status HTTP Penyebab
steps.readpropertyset.UnresolvedVariable 500

Error ini terjadi jika variabel yang ditentukan dalam kebijakan ReadPropertySet:

  • Di luar cakupan (tidak tersedia di alur tertentu tempat kebijakan sedang dijalankan)
  • atau
  • Tidak dapat diselesaikan (tidak ditentukan).

Jika <IgnoreUnresolvedVariables> bernilai salah dan <DefaultValue> tidak ditentukan, resolusi akan gagal.

Error saat deployment

Error ini dapat terjadi saat Anda men-deploy proxy yang berisi kebijakan ini.

Nama error Penyebab
steps.readpropertyset.EmptyReads Kebijakan tidak memiliki elemen turunan <Read>.
steps.readpropertyset.FieldUnset Kode ini akan ditampilkan jika salah satu kondisi berikut terpenuhi:
  • Baik referensi maupun nama tidak ditetapkan untuk <Name>
  • Baik referensi maupun nama tidak ditetapkan untuk <Key>
  • Tidak ada nilai yang diberikan untuk <AssignTo>

Variabel kesalahan

Variabel ini ditetapkan saat kebijakan ini memicu error saat runtime. Untuk informasi selengkapnya, lihat Yang perlu Anda ketahui tentang error kebijakan.

Variabel Dari mana Contoh
fault.name="FAULT_NAME" FAULT_NAME adalah nama kesalahan, seperti yang tercantum dalam tabel Error runtime di atas. Nama kesalahan adalah bagian terakhir dari kode kesalahan. fault.name Matches "UnresolvedVariable"
readpropertyset.POLICY_NAME.failed POLICY_NAME adalah nama kebijakan yang ditentukan pengguna yang menampilkan kesalahan. readpropertyset.RPS-SetResponse.failed = true

Contoh respons error

  {  
    "fault": {
      "faultstring": "ReadPropertySet[RPS-SetResponse]: unable to resolve variable [variable_name]",
      "detail": {
        "errorcode": "steps.readpropertyset.UnresolvedVariable"
      }
    }
  }
  

Contoh aturan fault

  <FaultRule name="ReadPropertySet Faults">
      <Step>
          <Name>RPS-CustomSetVariableErrorResponse</Name>
          <Condition>(fault.name = "SetVariableFailed")</Condition>
      </Step>
      <Condition>(readpropertyset.failed = true)</Condition>
  </FaultRule>
  

Skema

Setiap jenis kebijakan ditentukan oleh skema XML (.xsd). Untuk referensi, skema kebijakan tersedia di GitHub.