Kebijakan ReadPropertySet

Ringkasan

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

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

Elemen <ReadPropertySet>

Menentukan kebijakan ReadPropertySet.

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

Elemen <ReadPropertySet> menggunakan sintaksis berikut:

Sintaks

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 akan berisi stub untuk semua kemungkinan operasi. Lihat di bawah untuk mengetahui informasi tentang elemen yang diperlukan.

Elemen ini memiliki atribut berikut yang umum 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.

Secara opsional, gunakan elemen <DisplayName> untuk memberi label pada kebijakan di editor proxy UI pengelolaan dengan nama bahasa alami yang berbeda.

continueOnError false Opsional Tetapkan ke false untuk menampilkan error saat kebijakan gagal. Perilaku ini wajar terjadi untuk sebagian besar kebijakan. Tetapkan ke true agar eksekusi alur berlanjut meskipun setelah kebijakan gagal. Lihat juga:
enabled benar Opsional Tetapkan ke true untuk menerapkan kebijakan. Tetapkan ke false untuk menonaktifkan kebijakan. Kebijakan tidak akan diterapkan meskipun tetap terlampir ke alur.
async   false Tidak digunakan lagi Atribut ini tidak digunakan lagi.

Tabel berikut memberikan deskripsi tingkat tinggi tentang elemen turunan <ReadPropertySet>:

Elemen Turunan Wajib? Deskripsi
<Read> Wajib Membaca dan me-resolve variabel set properti dan menetapkannya ke variabel alur yang ditentukan.

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

Contoh

Bagian ini memberikan contoh penggunaan <ReadPropertySet>.

Contoh

Contoh ini menggunakan <ReadPropertySet> untuk mendapatkan propertyset.environment.name.request.headers.api-version dan menetapkannya ke target_url. Jika nilai set 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>

Me-resolve variabel set properti dan menetapkan hasilnya dalam variabel alur.

Elemen <Read> menentukan variabel kumpulan properti yang akan di-resolve dan variabel flow yang akan menetapkan nilai tersebut. Ini juga mencakup nilai default opsional, yang digunakan jika kumpulan properti tidak terselesaikan. Anda dapat menyertakan beberapa elemen <Read> dalam satu kebijakan <ReadPropertySet>.

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

Elemen <Read> menggunakan sintaksis berikut:

Sintaks

<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 tentang elemen turunan <Read>.

Elemen Turunan Wajib? Deskripsi
<Name> Wajib String

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

Apigee pertama-tama mencoba me-resolve Name berdasarkan ref, lalu nilainya. Jika tidak ada yang dapat di-resolve, <DefaultValue>, jika diberikan, akan berlaku.

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

<Key> Wajib String

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

Apigee pertama-tama mencoba me-resolve Key berdasarkan ref, lalu nilainya. Jika tidak ada yang dapat di-resolve, <DefaultValue>, jika diberikan, akan berlaku.

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

<AssignTo> Wajib String

Menentukan variabel alur 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 berhenti saat kumpulan properti tidak terselesaikan. Tetapkan ke true untuk mengabaikan variabel yang belum terselesaikan dan melanjutkan pemrosesan.

IgnoreUnresolvedVariables tidak berlaku jika <DefaultValue> disediakan.

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

Referensi error

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

Error runtime

Error ini dapat terjadi saat kebijakan dijalankan.

Kode kerusakan Status HTTP Penyebab
steps.readpropertyset.UnresolvedVariable 500

Error ini terjadi jika variabel yang ditentukan dalam kebijakan ReadPropertySet adalah:

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

Jika <IgnoreUnresolvedVariables> 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 ditampilkan jika salah satu hal berikut benar:
  • Referensi atau nama tidak ditetapkan untuk <Name>
  • Referensi atau nama tidak ditetapkan untuk <Key>
  • Tidak ada nilai yang diberikan untuk <AssignTo>

Variabel error

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 error, seperti yang tercantum dalam tabel Runtime errors di atas. Nama kerusakan adalah bagian terakhir dari kode kerusakan. fault.name Matches "UnresolvedVariable"
readpropertyset.POLICY_NAME.failed POLICY_NAME adalah nama kebijakan yang ditentukan pengguna yang menampilkan error. 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 error

  <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). Sebagai referensi, skema kebijakan tersedia di GitHub.