سياسة KeyValueMapOperations

أنت تعرض مستندات Apigee Edge.
انتقل إلى مستندات Apigee X.
معلومات

رمز عمليات خريطة القيم الرئيسية من واجهة مستخدم Edge

المزايا

يوفّر إمكانية الوصول المستند إلى السياسات إلى متجر خريطة القيم الأساسية (KVM) المتوفّر في Apigee Edge. يمكن تخزين أزواج المفتاح/القيم واستردادها وحذفها من الخرائط الحالية المسماة من خلال تكوين سياسات KeyValueMapOperations التي تحدد عمليات PUT أو GET أو DELETE. (يجب على الأقل واحد من ويجب أن تتولّى السياسة تنفيذ هذه العمليات.)

الفيديوهات

لمعرفة المزيد من المعلومات عن آلات KVM، شاهد مقاطع الفيديو التالية.

فيديو الوصف
أهمية القيمة الأساسية "خرائط Google"؟ تعرف على سبب حاجتك إلى آلات متجه الدعم وآلية عملها.
إنشاء KVM باستخدام واجهة المستخدم واسترداد KVM في وقت التشغيل يمكنك إنشاء KVM واسترداد قيمته باستخدام سياسة KVM وإدخال القيمة في واجهة برمجة التطبيقات. طلب باستخدام متغيرات التدفق.
إنشاء وتحديث KVM في وقت تشغيل واجهة برمجة التطبيقات إنشاء KVM في وقت تشغيل واجهة برمجة التطبيقات باستخدام سياسة KVM.
تخزين KVM مؤقتًا إلى تحسين الأداء يمكنك تحسين أداء سياسة KVM عن طريق تخزين البيانات مؤقتًا.
تخزين البيانات في المتجر KVM يمكنك تخزين المعلومات الحساسة في KVM بتنسيق مشفّر واسترداد القيمة عبر باستخدام سياسة KVM والمتغيّرات الخاصة.
إدارة أذونات الوصول باستخدام نطاق KVM قصر KVM على المراجعة داخل المؤسسة أو البيئة أو خادم وكيل واجهة برمجة التطبيقات أو خادم وكيل واجهة برمجة التطبيقات باستخدام KVM سمة نطاق السياسة
حذف KVM الإدخالات في وقت تشغيل واجهة برمجة التطبيقات احذف إدخالات KVM في وقت تشغيل واجهة برمجة التطبيقات باستخدام عملية "حذف" لسياسة KVM.

نماذج

PUT KVM مع قيمة حرفية

عند تشغيل السياسة التالية، يتم إنشاء KVM مشفّر باسم FooKVM، ثم يتم إنشاء مفتاح باسم FooKey_1 باستخدام مجموعة قيمتَين باستخدام السلسلتَين الحرفيتَين foo وbar (لا يتم ضبطها باستخدام القيم المستخرَجة من المتغيّرات). عندما تريد GET المفتاح في المثال التالي، ينبغي أن تحدد رقم فهرس لاسترداد القيمة التي تريدها.

<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="FooKVM" mapIdentifier="FooKVM">
  <DisplayName>FooKVM</DisplayName>
  <ExpiryTimeInSecs>86400</ExpiryTimeInSecs>
  <Scope>environment</Scope>
  <Put>
    <Key>
      <Parameter>FooKey_1</Parameter>
    </Key>
    <Value>foo</Value>
    <Value>bar</Value>
  </Put>
</KeyValueMapOperations>

لاحظ أن النطاق هو "environment". وهذا يعني أنه يمكنك رؤية KVM في قسم واجهة مستخدم ضمن واجهات برمجة التطبيقات > تهيئة البيئة > خرائط القيم الرئيسية آلات متجه الدعم المعروضة في تلك الصفحة جميعها متعلقة بالبيئة المحددة.

الحصول على KVM من قيمة حرفية

وتنظر هذه السياسة في خريطة FooKVM من المثال السابق، وتحصل على القيمة الثانية (index="2") من المفتاح FooKey_1، وتخزنها في متغير تسمى foo_variable.

<KeyValueMapOperations mapIdentifier="FooKVM" async="false" continueOnError="false" enabled="true" name="GetKVM">
  <DisplayName>GetKVM</DisplayName>
  <ExpiryTimeInSecs>86400</ExpiryTimeInSecs>
  <Scope>environment</Scope>
  <Get assignTo="foo_variable" index="2">
    <Key>
      <Parameter>FooKey_1</Parameter>
    </Key>
  </Get>
</KeyValueMapOperations>

PUT KVM مع متغير

ومن الأمثلة البسيطة لخريطة القيم الأساسية المفيدة خدمة تقصير عناوين URL. خريطة القيمة الرئيسية لتخزين عناوين URL المختصرة مع عناوين URL الكاملة المقابلة لها.

ينشئ نموذج السياسة هذا خريطة للقيم الرئيسية. تضع السياسة مفتاحًا بقيمتَين مرتبطتَين في خريطة مفتاح/قيمة باسم "urlMapper".

<KeyValueMapOperations name="putUrl" mapIdentifier="urlMapper">
   <Scope>apiproxy</Scope>
   <Put override="true">
      <Key>
         <Parameter ref="urlencoding.requesturl.hashed"/>
      </Key>
      <Value ref="urlencoding.longurl.encoded"/>
      <Value ref="request.queryparam.url"/>
   </Put>
</KeyValueMapOperations>

إن المفتاح في هذا المثال، urlencoding.requesturl.hashed، هو مثال على المتغير المخصص. سيتم إنشاء عنوان URL للطلب المجزأ باستخدام الرمز (JavaScript أو Java، سبيل المثال) ثم تُخزَّن في هذا المتغيّر، حيث يمكن لسياسة KeyValueMapOperations الوصول إلى بها.

بالنسبة إلى كل مفتاح، requesturl.hashed، يتم تخزين قيمتَين:

  • محتوى المتغيّر المخصَّص المُسمّى urlencoding.longurl.encoded
  • محتوى المتغيّر المحدَّد مسبقًا request.queryparam.url

على سبيل المثال، عند تنفيذ السياسة في وقت التشغيل، قد تكون قيم المتغيرات التالي:

  • urlencoding.requesturl.hashed: ed24e12820f2f900ae383b7cc4f2b31c402db1be
  • urlencoding.longurl.encoded: http://tinyurl.com/38lwmlr
  • request.queryparam.url: http://apigee.com

سيتم إنشاء خريطة المفتاح/القيمة التالية في مخزن المفتاح/القيمة في Edge بالنسبة إلى الخادم الوكيل لواجهة برمجة التطبيقات المرتبط بالسياسة:

{
    "entry" :[ 
        {
            "name" : "ed24e12820f2f900ae383b7cc4f2b31c402db1be",
            "value" : "http://tinyurl.com/38lwmlr,http://apigee.com"
        }
    ],
    "name" : "urlMapper"
}

وسيظل الإدخال ساريًا إلى أن يتم حذفه. يتم توزيع إدخالات تخزين المفتاح/القيمة عبر حالات Edge التي تقوم بتشغيل السحابة.

الحصول على KVM من متغير

من الأمثلة البسيطة على خريطة قيمة رئيسية مفيدة هو "تقصير" عنوان URL. خدمة ما. خريطة القيمة الرئيسية لتخزين عناوين URL المختصرة مع عناوين URL الكاملة المقابلة لها.

لاسترداد قيمة إدخال خريطة المفتاح/القيمة، مثل القيمة التي تم تناولها في علامة التبويب "KeyValueMapOperations PUT"، اضبط سياسة للحصول على خريطة القيمة الأساسية:

<KeyValueMapOperations name="getUrl" mapIdentifier="urlMapper">
   <Scope>apiproxy</Scope>
   <Get assignTo="urlencoding.shorturl" index='1'>
      <Key>
         <Parameter ref="urlencoding.requesturl.hashed"/> 
      </Key>
   </Get>
</KeyValueMapOperations>

عند تنفيذ هذه السياسة، إذا كانت قيمة متغير urlencoding.requesturl.hashed هو ed24e12820f2f900ae383b7cc4f2b31c402db1be، ثم المتغير المخصص المُسمى سيتم ضبط urlencoding.shorturl على القيمة http://tinyurl.com/38lwmlr

والآن بعد استرداد البيانات، يمكن للسياسات والرموز الأخرى الوصول إليها من خلال استخراجها القيمة من تلك المتغيرات.

الحصول على قيمة مشفّرة من KVM

إذا تم تشفير خريطة القيم الرئيسية، يمكنك استرداد القيم باستخدام "private.". في قيمة السمة assignTo. في هذا المثال، المتغير يحتفظ private.encryptedVar على القيمة غير المشفرة لخريطة القيم الرئيسية المفتاح foo. للحصول على معلومات حول إنشاء خرائط مشفّرة للقيم الرئيسية، يمكنك الاطّلاع على مقالة "إنشاء" موضوعات خرائط المفتاح/القيمة Management API.

<KeyValueMapOperations name="getEncrypted" mapIdentifier="encrypted_map">
   <Scope>apiproxy</Scope>
   <Get assignTo="private.encryptedVar" index='1'>
      <Key>
         <Parameter>foo</Parameter> 
      </Key>
   </Get>
</KeyValueMapOperations>

والآن بعد استرداد البيانات، يمكن للسياسات والرموز الأخرى الوصول إليها من خلال استخراجها بالقيمة من هذا المتغير.


مرجع العنصر

يصف مرجع العنصر عناصر وسمات KeyValueMapOperations السياسة:

<KeyValueMapOperations async="false" continueOnError="false" 
    enabled="true" name="Key-Value-Map-Operations-1" 
    mapIdentifier="urlMapper" >
   <DisplayName>Key Value Map Operations 1</DisplayName>
   <Scope>environment</Scope>
   <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
   <InitialEntries>
      <Entry>
         <Key>
            <Parameter>key_name_literal</Parameter>
         </Key>
         <Value>value_literal</Value>
      </Entry>
      <Entry>
         <Key>
            <Parameter>variable_name</Parameter>
         </Key>
         <Value>value_1_literal</Value>
         <Value>value_2_literal</Value>
      </Entry>
   </InitialEntries>
   <Put override="false">
      <Key>
         <Parameter>key_name_literal</Parameter>
      </Key>
      <Value ref="variable_name"/>
   </Put>
   <Get assignTo="myvar" index="1">
      <Key>
         <Parameter ref="variable_name"/>
      </Key>
   </Get>
   <Delete>
      <Key>
         <Parameter>key_name_literal</Parameter>
      </Key>
   </Delete>
</KeyValueMapOperations>

&lt;KeyValueMapOperations&gt; السمات

يوضّح المثال التالي السمات على العلامة <KeyValueMapOperations>:

<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="Key-Value-Map-Operations-1" mapIdentifier="map_name">

يوضّح الجدول التالي السمات الخاصة بالعلامة <KeyValueMapOperations>:

السمة الوصف تلقائي التواجد في المنزل
mapIdentifier

تحدد معرفًا لاستخدامه عند الوصول إلى خريطة تم إنشاؤها بواسطة هذا أو في واجهة مستخدم الإدارة.

يكون اسم KVM حساسًا لحالة الأحرف عند استخدام Apigee Edge for Public Cloud. على سبيل المثال، تختلف السمة foobar عن السمة FooBar.

إذا استبعدت هذه السمة، سيتم استخدام KVM باسم kvmap.

داخل نطاق المؤسسة/البيئة/apiproxy، يمكنك استخدام mapIdentifier لتحديد اسم خريطتك.

لا ينطبق اختياري

يصف الجدول التالي السمات المشتركة بين جميع العناصر الرئيسية للسياسة:

السمة الوصف تلقائي التواجد في المنزل
name

الاسم الداخلي للسياسة. يمكن لقيمة السمة name أن تحتوي على أحرف وأرقام ومسافات وواصلات وشرطات سفلية ونقاط. لا يمكن لهذه القيمة يتجاوز 255 حرفًا.

يمكنك، إذا أردت، استخدام العنصر <DisplayName> لتصنيف السياسة محرر الخادم الوكيل لواجهة مستخدم الإدارة باسم مختلف بلغة طبيعية.

لا ينطبق مطلوب
continueOnError

اضبط القيمة على false لعرض رسالة خطأ عند تعذُّر تنفيذ سياسة. هذا متوقّع السلوك في معظم السياسات.

يمكنك ضبط القيمة على true لمواصلة تنفيذ المسار حتى بعد تطبيق إحدى السياسات. فشل.

خطأ اختياري
enabled

اضبط القيمة على true لفرض السياسة.

اضبط القيمة على false من أجل إيقاف السياسة. لن تكون السياسة ويتم فرضها حتى لو ظلت مرتبطة بتدفق.

صحيح اختياري
async

تم إيقاف هذه السمة نهائيًا.

خطأ منهي العمل به

&lt;DisplayName&gt; عنصر

استخدِمه مع السمة name لتصنيف السياسة في إدارة خادم وكيل لواجهة المستخدم باسم مختلف بلغة طبيعية.

<DisplayName>Policy Display Name</DisplayName>
تلقائي

لا ينطبق

إذا لم تستخدم هذا العنصر، سيتم ضبط قيمة السمة name للسياسة على النحو التالي: استخدام البيانات المختلفة.

التواجد في المنزل اختياري
النوع سلسلة

&lt;Delete&gt; عنصر

حذف زوج المفتاح/القيمة المحدّد واحد على الأقل من <Get>، يجب استخدام <Put> أو <Delete>.

تأكَّد من تحديد اسم KVM باستخدام السمة mapIdentifier. على العنصر الأصلي. على سبيل المثال:

<Delete>
   <Key>
      <Parameter>key_name_literal</Parameter>
   </Key>
</Delete>
تلقائي لا ينطبق
التواجد في المنزل مطلوبة في حال عدم توفّر <Get> أو <Put>.
النوع لا ينطبق

&lt;Entry&gt; عنصر

القيم الأساسية لخرائط القيم الرئيسية، التي تتم تعبئتها في خريطة القيمة الرئيسية عند التهيئة.

بالنسبة إلى Edge for Public Cloud، يقتصر حجم المفتاح على 2 كيلوبايت. على سبيل المثال:

<InitialEntries>
   <Entry>
      <Key>
         <Parameter>key_name_literal</Parameter>
      </Key>
      <Value>v1</Value>
   </Entry>
   <Entry>
      <Key>
         <Parameter>key_name_variable</Parameter>
      </Key>
      <Value>v3</Value>
      <Value>v4</Value>
   </Entry>
</InitialEntries>
تلقائي لا ينطبق
التواجد في المنزل اختياري
النوع لا ينطبق

&lt;ExclusiveCache&gt; عنصر

تمّ الإيقاف. استخدِم العنصر <Scope> بدلاً من ذلك.

&lt;ExpiryTimeInSecs&gt; عنصر

تُحدِّد المدة بالثواني التي يُحدّث Edge فيها القيمة المخزَّنة مؤقتًا من آلة متجه الدعم المحددة.

القيمة 0 أو -1، أو باستثناء هذا العنصر، تعني أن القيمة التلقائية التي تبلغ 300 ثانية هي استخدام البيانات المختلفة. على سبيل المثال:

<ExpiryTimeInSecs>600</ExpiryTimeInSecs>
تلقائي 300 (5 دقائق)
التواجد في المنزل اختياري
النوع عدد صحيح

KVM عبارة عن آلية صمود طويلة الأجل تخزن المفاتيح والقيم في قاعدة بيانات NoSQL. ولهذا السبب، من المحتمل أن تؤدي القراءة من KVM في وقت التشغيل إلى إبطاء أداء الخادم الوكيل. للتحسين الأداء، فإن Edge لديه آلية مدمجة لتخزين مفاتيح/قيم KVM في الذاكرة مؤقتًا أثناء التشغيل. تتم قراءة سياسة عمليات KVM دائمًا من ذاكرة التخزين المؤقت لعمليات GET.

يتيح لك العنصر <ExpiryTimeInSecs> التحكّم في مدة المفاتيح/القيم في السياسة، يتم تخزينها في ذاكرة التخزين المؤقت قبل إعادة تحميلها مرة أخرى من KVM. ومع ذلك، هناك بعض الاختلافات بين كيفية تأثير عمليات GET وPUT في انتهاء صلاحية ذاكرة التخزين المؤقت.

GET - في المرة الأولى التي يتم فيها تنفيذ عملية KVM GET، يتم تنفيذ المفاتيح/القيم من KVM (التي تم تحديد اسمها في جذر السياسة mapIdentifier) ) في ذاكرة التخزين المؤقت، حيث تبقى لعمليات GET التالية حتى إحدى يحدث ما يلي:

  • تنتهي صلاحية عدد الثواني المحدد في <ExpiryTimeInSecs>.
    أو
  • تؤدي عملية PUT في سياسة KVM إلى استبدال القيم الحالية (الموضحة لاحقًا).

PUT - تكتب عملية PUT المفاتيح/القيم إلى KVM المحدد. إذا كان PUT إلى مفتاح موجود بالفعل في ذاكرة التخزين المؤقت، فسيتم تحديث ذاكرة التخزين المؤقت هذه على الفور وهي تحتفظ الآن القيمة الجديدة لعدد الثواني المحدّدة في السياسة العنصر <ExpiryTimeInSecs>.

مثال - التخزين المؤقت على KVM

  1. تسترد عملية GET قيمة "rating"، مما يضيف القيمة "10" للتخزين المؤقت. تشير رسالة الأشكال البيانية قيمة <ExpiryTimeInSecs> في السياسة هي 60.
  2. بعد 30 ثانية، يتم تنفيذ سياسة GET مرة أخرى وتسترد "10" من ذاكرة التخزين المؤقت.
  3. بعد 5 ثوانٍ، تعدّل سياسة PUT قيمة "rating" (التقييم). إلى "8"، قيمة <ExpiryTimeInSecs> في سياسة PUT هي 20. يتم تخزين ذاكرة التخزين المؤقت على الفور بتحديثها بالقيمة الجديدة، والتي تم ضبطها الآن لتظل في ذاكرة التخزين المؤقت لمدة 20 ثانية. (إذا كان وضع لأن ذاكرة التخزين المؤقت التي تم ملؤها في الأصل بواسطة GET الأول ستظل موجودة 30 ثانية، متبقية من 60 ثانية الأصلية).
  4. بعد 15 ثانية، يتم تنفيذ GET آخر والحصول على القيمة "8".

&lt;Get&gt; عنصر

يسترد قيمة المفتاح المحدد. واحد على الأقل من <Get>، يجب استخدام <Put> أو <Delete>.

احرص على تحديد اسم KVM باستخدام السمة mapIdentifier على العنصر الأصلي.

يمكنك تضمين عمليات حظر Get متعددة في السياسة لاسترداد عناصر متعددة. من KVM.

تلقائي لا ينطبق
التواجد في المنزل مطلوبة إذا لم تكن السمة <Put> أو <Delete> غير مطلوبة حاليًا.
النوع لا ينطبق

الحصول على عنصر واحد من KVM

<Get assignTo="myvar" index="1">         
   <Key>             
      <Parameter>key_name_literal</Parameter>         
   </Key>     
</Get>

الحصول على عناصر متعددة من KVM

في المثال التالي، لنفترض أن KVM يتضمن المفاتيح والقيم التالية. بالإضافة إلى ذلك إلى تخزين قائمة حالية بالأفلام الأكثر شعبية على الإطلاق، تخزن آلات KVM اسم المخرج لجميع الأفلام الرئيسية.

المفتاح القيمة
top_movies الأميرة عروس، العذراء، المواطنة كين
سيواطن كين أورسون ويلز
أميرة عروس روب راينر
فيلم "العرّاب" (The Godfather) يوسف شاهين

وإليك تهيئة سياسة KVM التي يمكننا استخدامها لاسترداد الفيلم الحالي الأكثر شيوعًا. واسم مديرها:

<Get assignTo="top.movie.pick" index="1">
   <Key>
      <Parameter>top_movies</Parameter>
   </Key>
</Get>
<Get assignTo="movie.director">
   <Key>
      <Parameter ref="top.movie.pick"/>
   </Key>
</Get>

عند استدعاء الخادم الوكيل لواجهة برمجة التطبيقات، ينشئ Edge ما يلي التي يمكنك استخدامها في مسار الخادم الوكيل لواجهة برمجة التطبيقات:

  • top.movie.pick=Princess Bride
  • movie.director=Rob Reiner

السمات

يوضّح الجدول التالي سمات العنصر <Get>:

السمة الوصف تلقائي التواجد في المنزل
assignTo

المتغيّر الذي يجب تعيين القيمة المستردَّة له.

إذا كانت خريطة قيمة المفتاح مشفّرة، ابدأ اسم assignTo "private.". مثل:

<Get assignTo="private.myvar">

تعرض السياسة رسالة خطأ إذا حاولت استرداد خريطة قيمة مفتاح مشفّر بدون باستخدام البادئة. البادئة، وهي مطلوبة لأغراض أمنية أساسية أثناء تصحيح الأخطاء، لإخفاء القيم المشفرة من جلسات تتبُّع الخادم الوكيل لواجهة برمجة التطبيقات وتصحيح الأخطاء.

للحصول على معلومات حول إنشاء خرائط مشفّرة للقيم الرئيسية، يمكنك الاطّلاع على مقالة "إنشاء" مواضيع إدارة خرائط القيمة/المفتاح واجهة برمجة التطبيقات وإنشاء تعديل خرائط القيم الرئيسية لبيئة

لا ينطبق مطلوب
المؤشر

رقم الفهرس (في فهرس يستند إلى 1) للعنصر المطلوب جلبه من مفتاح متعدد القيم. على سبيل المثال، سيؤدي تحديد index=1 إلى إرجاع القيمة الأولى وتعيينها إلى المتغير assignTo. إذا لم يتم تحديد أي قيمة فهرس، فإن جميع قيم ويتمّ تخصيص هذا الإدخال للمتغيّر java.util.List.

على سبيل المثال، راجِع قسم "الحصول على قيمة مشفّرة من KVM". في علامة التبويب عيّنات.

لا ينطبق اختياري

&lt;InitialEntries&gt; عنصر

القيم الأساسية لخرائط القيم الرئيسية، التي تتم تعبئتها في خريطة القيمة الرئيسية عند إعدادها احرص على تحديد اسم KVM باستخدام السمة mapIdentifier على العنصر الأصلي. على سبيل المثال:

<InitialEntries>
   <Entry>
      <Key>
         <Parameter>key_name_literal</Parameter>
      </Key>
      <Value>v1</Value>
   </Entry>
   <Entry>
      <Key>
         <Parameter>key_name_variable</Parameter>
      </Key>
      <Value>v3</Value>
      <Value>v4</Value>
   </Entry>
</InitialEntries>

عند استخدام هذا العنصر، عند حفظ السياسة في واجهة مستخدم الإدارة على إصدار تم نشره للخادم الوكيل، أو نشر حزمة الخادم الوكيل لواجهة برمجة التطبيقات التي تحتوي على السياسة التي تتضمّن هذا العنصر، فالمفاتيح يتم إنشاؤها تلقائيًا في KVM (كغير مشفرة). إذا كانت القيم في السياسة مختلفة من القيم الموجودة في KVM، يتم استبدال القيم في KVM عند نشر الوكيل. أي تقييم تتم إضافة مفاتيح/قيم جديدة إلى KVM الحالي جنبًا إلى جنب مع المفاتيح/القيم الحالية.

يجب أن تكون المفاتيح والقيم التي يملأها هذا العنصر قيمًا حرفية. على سبيل المثال، لا يُسمح باستخدام <Parameter ref="request.queryparam.key"> ضمن هذا العنصر.

الحد الأقصى لحجم المفتاح هو 2 كيلوبايت لكل من Edge الخاص بالسحابة الإلكترونية العامة حافة الخاصة. وتقتصر قيمة KVM على 2 كيلوبايت.

لإنشاء KVM مشفّر، استخدم واجهة برمجة تطبيقات إدارة خرائط القيمة/المفتاح.

تلقائي لا ينطبق
التواجد في المنزل اختياري
النوع لا ينطبق

&lt;Key&gt; عنصر

تحدّد المفتاح في إدخال مفتاح/قيمة في خريطة. يمكن أن يكون المفتاح مركبًا، مما يعني أن أكثر من يمكن إلحاق معلمة واحدة لإنشاء المفتاح. على سبيل المثال، userID و يمكن دمج role لإنشاء key. على سبيل المثال:

<Key>
    <Parameter>key_name_literal</Parameter>
</Key>

تأكّد من الاطّلاع على العنصر &lt;Parameter&gt; للاطّلاع على تفاصيل حول كيفية وتعيين اسم المفتاح.

بالنسبة إلى متصفّح Edge for Public Cloud، يقتصر حجم المفتاح على 2 كيلوبايت. يُرجى الاطّلاع على الاختلافات بين Edge for Public Cloud API وPrivacy Cloud API للتعرّف على مزيد من المعلومات.

تلقائي لا ينطبق
التواجد في المنزل اختياري
النوع لا ينطبق

&lt;Parameter&gt; عنصر

تحدّد المفتاح في زوج المفتاح/القيمة. يحدد هذا العنصر الاسم عند إنشاء أو وضع أو استرداد زوج المفتاح/القيمة أو حذفه.

يمكنك تحديد الاسم باستخدام:

  • سلسلة حرفية

    <Key>
      <Parameter>literal</Parameter>
    </Key>
    
  • متغيّر سيتم استرداده في وقت التشغيل باستخدام السمة ref

    <Key>
      <Parameter ref="variable_name"/>
    </Key>
    
  • مزيج من القيم الحرفية والمراجع المتغيرة

    <Key>
      <Parameter>targeturl</Parameter>
      <Parameter ref="apiproxy.name"/>
      <Parameter>weight</Parameter>
    </Key>
    

عندما يتضمن العنصر الأساسي عناصر "المعلمة" متعددة، فإن سلسلة المفتاح الفعالة هي تسلسل لقيم كل معلمة إلى جانب شرطة سفلية مزدوجة. على سبيل المثال، في في المثال أعلاه، إذا كان المتغير apiproxy.name يتضمن القيمة "abc1"، المفتاح الفعال سيكون targeturl__abc1__weight.

سواء كنت تحصل على إدخال مفتاح/قيمة أو تعدّله أو تحذفه، يجب أن يتطابق اسم المفتاح مع اسم المفتاح في خريطة القيمة الرئيسية. راجع تحديد استرداد الأسماء الرئيسية للحصول على الإرشادات.

تلقائي لا ينطبق
التواجد في المنزل مطلوب
النوع سلسلة

السمات

يوضّح الجدول التالي سمات العنصر <Parameter>:

السمة الوصف تلقائي التواجد في المنزل
المرجع تحدِّد هذه السياسة اسم متغيّر يحتوي قيمته على الاسم الدقيق للمفتاح الذي التي تريد إنشاءها أو الحصول عليها أو حذفها لا ينطبق مطلوبة إذا لم يتم توفير قيمة حرفية بين علامة الفتح علامات الإغلاق. لا يُسمح باستخدام هذا الحقل إذا تم إعطاء قيمة حرفية.

&lt;Put&gt; عنصر

تكتب زوج مفتاح/قيمة على خريطة قيمة المفتاح، سواء كانت خريطة قيمة المفتاح مشفّرة أو غير مشفّر. إذا تم تحديد قيمة المفتاح في السمة mapIdentifier على العنصر الأصلي غير موجود، يتم إنشاء الخريطة تلقائيًا (على أنها غير مشفرة). إذا كانت قيمة المفتاح الخريطة موجودة مسبقًا، تتم إضافة المفتاح/القيمة إليها.

لإنشاء خريطة مشفّرة لقيم المفاتيح، استخدِم واجهة برمجة تطبيقات إدارة خرائط القيمة/المفتاح؛ أو راجِع إنشاء خرائط القيم الأساسية للبيئة وتعديلها لإنشاء أجهزة KVM مشفرة على مستوى البيئة في واجهة المستخدم.

<Put override="false">         
   <Key>             
      <Parameter ref="mykeyvar"/>         
   </Key>         
   <Value ref="myvalvar1"/>     
</Put>
تلقائي لا ينطبق
التواجد في المنزل مطلوبة إذا لم تكن السمة <Get> أو <Delete> غير مطلوبة حاليًا.
النوع لا ينطبق

السمات

يوضّح الجدول التالي سمات العنصر <Put>:

السمة الوصف تلقائي التواجد في المنزل
إلغاء

أمّا في حال ضبطها على true، فسيتم إلغاء قيمة المفتاح.

false اختياري

&lt;Scope&gt; عنصر

وتحدد حدود تسهيل الاستخدام لخرائط القيمة الرئيسية. النطاق الافتراضي هو environment، ما يعني أنّه تتم مشاركة إدخالات الخرائط تلقائيًا من خلال جميع الخوادم الوكيلة لواجهة برمجة التطبيقات قيد التشغيل في بيئة (على سبيل المثال، الاختبار أو الإنتاج). إذا قمتَ بتعيين النطاق على apiproxy، إذن لا يمكن الوصول إلى الإدخالات في خريطة قيمة المفتاح إلا من خلال خادم وكيل واجهة برمجة التطبيقات الذي ويكتب القيم على الخريطة.

لاحظ أنه عند الوصول إلى إدخال على الخريطة أو الخريطة، يجب عليك تحديد قيمة النطاق نفسها التي استخدمتها عند إنشاء الخريطة. على سبيل المثال، إذا تم إنشاء الخريطة باستخدام نطاق apiproxy، يجب استخدام نطاق apiproxy عند استرداد قيمه، أو إدخال تغييرات أو حذف إدخالات.

<Scope>environment</Scope>
تلقائي environment
التواجد في المنزل اختياري
النوع سلسلة
قيم صالحة:
  • organization
  • environment
  • apiproxy
  • policy (مراجعة خادم وكيل واجهة برمجة التطبيقات)

&lt;Value&gt; عنصر

تُستخدَم لتحديد قيمة المفتاح. يمكنك تحديد القيمة كسلسلة حرفية أو باستخدام السمة ref، كمتغيّر يجب استرداده في وقت التشغيل:

<!-- Specify a literal value -->
<Value>literal<Value>

أو:

<!-- Specify the name of variable value to be populated at run time. -->
<Value ref="variable_name"/>

يمكنك أيضًا تضمين عدة عناصر <Value> لتحديد أجزاء متعددة. يتم دمج القيم في وقت التشغيل.

في المثال التالي، تتم إضافة مفتاحين إلى KVM:

  • المفتاح k1 بالقيم v1,v2
  • المفتاح k2 بالقيم v3,v4
<InitialEntries>         
   <Entry>             
      <Key>
         <Parameter>k1</Parameter>
      </Key>
      <Value>v1</Value>
      <Value>v2</Value>     
   </Entry>
   <Entry>
      <Key>
         <Parameter>k2</Parameter>
      </Key>
      <Value>v3</Value>
      <Value>v4</Value>
   </Entry>
</InitialEntries>

في المثال التالي، يتم إنشاء مفتاح واحد بقيمتين. لنفترض أن المؤسسة الاسم هو foo_org واسم الخادم الوكيل لواجهة برمجة التطبيقات bar والبيئة test:

  • المفتاح foo_org بالقيم bar,test
<Put>
    <Key>
        <Parameter ref="organization.name"/>
    </Key>
    <Value ref="apiproxy.name"/>
    <Value ref="environment.name"/>
</Put>
تلقائي لا ينطبق
التواجد في المنزل مطلوب
النوع سلسلة

السمات

يوضّح الجدول التالي سمات العنصر <Value>:

السمة الوصف تلقائي التواجد في المنزل
المرجع تُحدِّد هذه السياسة اسم متغيّر تحتوي قيمته على قيم المفتاح التي تريد تضمينها. تعيين. لا ينطبق مطلوبة إذا لم يتم توفير قيمة حرفية بين علامة الفتح علامات الإغلاق. لا يُسمح باستخدام هذا الحقل إذا تم إعطاء قيمة حرفية.

مرجع الخطأ

تتّبع الأخطاء الناتجة عن سياسات Edge تنسيقًا متّسقًا كما هو موضّح في مرجع رمز الخطأ.

يصف هذا القسم رموز الأخطاء ورسائل الخطأ التي يتم عرضها ومتغيرات الأخطاء التي تضبطها Edge عندما تؤدي هذه السياسة إلى ظهور خطأ. هذه المعلومات مهمة لمعرفة ما إذا كنت تعمل على تطوير قواعد للأخطاء للتعامل معها. لمزيد من المعلومات، يمكنك الاطّلاع على المعلومات التي يجب معرفتها عن الأخطاء المتعلقة بالسياسات وأخطاء المعالجة.

أخطاء في وقت التشغيل

يمكن أن تحدث هذه الأخطاء عند تنفيذ السياسة.

رمز الخطأ رموز حالة HTTP السبب إصلاح
steps.keyvaluemapoperations.SetVariableFailed 500

يحدث هذا الخطأ إذا حاولت استرداد قيمة من ربط قيمة مفتاح مشفّرة وضبط القيمة على متغيّر لا يتضمّن اسمه البادئة private. إنّ البادئة المطلوبة لأغراض الأمان الأساسية أثناء تصحيح الأخطاء تخفي القيم المشفّرة من جلسات التتبّع وتصحيح الأخطاء في الخادم الوكيل لواجهة برمجة التطبيقات.

steps.keyvaluemapoperations.UnsupportedOperationException 500

يحدث هذا الخطأ إذا تم ضبط السمة mapIdentifier على سلسلة فارغة في "سياسة عمليات ربط القيمة الرئيسية".

أخطاء النشر

يمكن أن تحدث هذه الأخطاء عند نشر خادم وكيل يحتوي على هذه السياسة.

اسم الخطأ السبب إصلاح
InvalidIndex إذا كانت السمة index المحدّدة في العنصر <Get> ضمن سياسة عمليات خريطة القيمة الرئيسية صفرًا أو رقمًا سالبًا، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. يبدأ الفهرس من 1، لذا يتم اعتبار أنّ الفهرس صفرًا أو عددًا صحيحًا سالبًا غير صالح.
KeyIsMissing يحدث هذا الخطأ إذا كان العنصر <Key> غير متوفّر تمامًا أو إذا كان العنصر <Parameter> غير متوفّر داخل العنصر <Key> ضمن <Entry> الخاص بالعنصر <InitialEntries> في سياسة عمليات ربط القيم الرئيسية.
ValueIsMissing يحدث هذا الخطأ إذا كان العنصر <Value> غير متوفّر أسفل العنصر <Entry> للعنصر <InitialEntries> ضِمن سياسة عمليات خريطة القيمة الرئيسية.

المخططات

ملاحظات الاستخدام

للحصول على نظرة عامة على خرائط القيم الرئيسية، اطّلِع على مقالة العمل باستخدام خرائط القيم الرئيسية.

يوفر متجر خرائط القيمة الرئيسية آلية مثابرة خفيفة للبيانات المنسَّقة أزواج المفتاح/القيمة. ويمكنك الوصول إليها في وقت التشغيل من خلال السياسات أو الرموز. تحتوي الخريطة على أي بيانات عشوائية بالتنسيق key=value.

على سبيل المثال localhost=127.0.0.1 أو zip_code=94110 أو first_name=felix في المثال الأول، localhost هو مفتاح، 127.0.0.1 هي قيمة. يتم تخزين كل زوج مفتاح/قيمة كإدخال في مفتاح خريطة قيمة. يمكن أن تخزن خريطة القيمة الرئيسية العديد من الإدخالات.

في ما يلي مثال على استخدام خرائط القيم الرئيسية. لنفترض أنك بحاجة إلى تخزين قائمة بعناوين IP مرتبطة بواجهات خلفية مختلفة البيئات. يمكنك إنشاء خريطة قيم رئيسية تُسمى ipAddresses وتحتوي على قائمة بأزواج المفتاح/القيمة كإدخالات. على سبيل المثال، يمكن أن يمثل ملف JSON هذا خريطة:

{
  "entry" : [ {
    "name" : "Development",
    "value" : "65.87.18.18"
  }, {
    "name" : "Staging",
    "value" : "65.87.18.22"
  } ],
  "name" : "ipAddresses"
}

يمكنك استخدام هذه البنية لإنشاء مستودع عناوين IP يمكن أن تستخدمها السياسات. في وقت التشغيل لفرض إضافة عناوين IP إلى القائمة المسموح بها أو القائمة المحظورة، وذلك لاختيار هدف خلفية ديناميكيًا وعنوانك، وهكذا. تُستخدم سياسة KeyValueMapOperations عادةً لتخزين المعلومات طويلة الأمد التي تحتاج إلى إعادة استخدامها عبر معاملات طلبات/استجابة متعددة.

يمكن التلاعب بخرائط المفاتيح/القيم من خلال سياسة KeyValueMapOperations، أو مباشرةً من خلال واجهة برمجة التطبيقات لإدارة Apigee Edge راجع مرجع واجهة برمجة تطبيقات الإدارة للحصول على تفاصيل حول واجهة برمجة تطبيقات مفتاح المؤسسة/خرائط القيم. يمكنك استخدام واجهة برمجة التطبيقات من أجل، على سبيل المثال، تحميل مجموعات بيانات كبيرة إلى مخزن المفاتيح/القيمة، أو إنشاء نصوص برمجية لإدارة المفتاح/القيمة إدخالات الخريطة. ستحتاج إلى إنشاء خريطة مفتاح/قيمة باستخدام واجهة برمجة التطبيقات قبل الوصول إليها باستخدام سياسة KeyValueMapOperations.

تحديد أسماء المفاتيح واستردادها

باستخدام العنصرَين <Parameter> و<Value>، يمكنك تحديد إما قيمة حرفية (حيث تكون القيمة بين علامتي الفتح والإغلاق) أو استخدام السمة ref لتحديد اسم متغير يجب استخدام قيمته في وقت التشغيل.

يستحق عنصر المعلمة ذكرًا خاصًا، لأنه يحدد اسم المفتاح الذي بالإضافة إلى اسم المفتاح الذي تريد استرداده أو حذفه. فيما يلي مثالان. يحدد العنوان الأول اسم مفتاح حرفيًا، بينما يحدد النوع الثاني اسم مفتاح باستخدام متغير. لنفترض أنه يتم استخدام ما يلي لإنشاء مفاتيح في KVM:

<Parameter>key_name_literal</Parameter>
<Parameter ref="key.name.variable"/>

في الحالة الأولى، تشير القيمة الحرفية "key_name_literal" في KVM كمفتاح الاسم. وفي الحالة الثانية، تصبح أي قيمة في key.name.variable هي اسم المفتاح في KVM. على سبيل المثال، إذا احتوت السمة key.name.variable على القيمة foo، سيكون اسم المفتاح "foo".

عندما تريد استرداد المفتاح وقيمة مفتاح باستخدام عملية GET (أو حذف باستخدام عملية DELETE)، <المعلمة> مع اسم المفتاح في KVM. بالنسبة فإذا كان اسم المفتاح في KVM هو "foo"، فيمكنك تحديد القيمة الحرفية باستخدام <Parameter>foo</Parameter> أو تحديد متغيّر يحتوي على القيمة الدقيقة "foo"، كما يلي: <Parameter ref="variable.containing.foo"/>.

مواضيع ذات صلة