أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
المزايا
يوفّر إمكانية الوصول المستند إلى السياسات إلى متجر خريطة القيم الأساسية (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>
<KeyValueMapOperations> السمات
يوضّح المثال التالي السمات على العلامة <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.
على سبيل المثال، تختلف السمة إذا استبعدت هذه السمة، سيتم استخدام KVM باسم داخل نطاق المؤسسة/البيئة/apiproxy، يمكنك استخدام
|
لا ينطبق | اختياري |
يصف الجدول التالي السمات المشتركة بين جميع العناصر الرئيسية للسياسة:
السمة | الوصف | تلقائي | التواجد في المنزل |
---|---|---|---|
name |
الاسم الداخلي للسياسة. يمكن لقيمة السمة يمكنك، إذا أردت، استخدام العنصر |
لا ينطبق | مطلوب |
continueOnError |
اضبط القيمة على يمكنك ضبط القيمة على |
خطأ | اختياري |
enabled |
اضبط القيمة على اضبط القيمة على |
صحيح | اختياري |
async |
تم إيقاف هذه السمة نهائيًا. |
خطأ | منهي العمل به |
<DisplayName> عنصر
استخدِمه مع السمة name
لتصنيف السياسة في
إدارة خادم وكيل لواجهة المستخدم باسم مختلف بلغة طبيعية.
<DisplayName>Policy Display Name</DisplayName>
تلقائي |
لا ينطبق إذا لم تستخدم هذا العنصر، سيتم ضبط قيمة السمة |
---|---|
التواجد في المنزل | اختياري |
النوع | سلسلة |
<Delete> عنصر
حذف زوج المفتاح/القيمة المحدّد واحد على الأقل من <Get>
،
يجب استخدام <Put>
أو <Delete>
.
تأكَّد من تحديد اسم KVM باستخدام السمة mapIdentifier
.
على العنصر الأصلي. على سبيل المثال:
<Delete> <Key> <Parameter>key_name_literal</Parameter> </Key> </Delete>
تلقائي | لا ينطبق |
---|---|
التواجد في المنزل | مطلوبة في حال عدم توفّر <Get> أو <Put> . |
النوع | لا ينطبق |
<Entry> عنصر
القيم الأساسية لخرائط القيم الرئيسية، التي تتم تعبئتها في خريطة القيمة الرئيسية عند التهيئة.
بالنسبة إلى 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>
تلقائي | لا ينطبق |
---|---|
التواجد في المنزل | اختياري |
النوع | لا ينطبق |
<ExclusiveCache> عنصر
تمّ الإيقاف. استخدِم العنصر <Scope>
بدلاً من ذلك.
<ExpiryTimeInSecs> عنصر
تُحدِّد المدة بالثواني التي يُحدّث 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
- تسترد عملية GET قيمة "rating"، مما يضيف القيمة "10" للتخزين المؤقت. تشير رسالة الأشكال البيانية
قيمة
<ExpiryTimeInSecs>
في السياسة هي 60. - بعد 30 ثانية، يتم تنفيذ سياسة GET مرة أخرى وتسترد "10" من ذاكرة التخزين المؤقت.
- بعد 5 ثوانٍ، تعدّل سياسة PUT قيمة "rating" (التقييم). إلى "8"،
قيمة
<ExpiryTimeInSecs>
في سياسة PUT هي 20. يتم تخزين ذاكرة التخزين المؤقت على الفور بتحديثها بالقيمة الجديدة، والتي تم ضبطها الآن لتظل في ذاكرة التخزين المؤقت لمدة 20 ثانية. (إذا كان وضع لأن ذاكرة التخزين المؤقت التي تم ملؤها في الأصل بواسطة GET الأول ستظل موجودة 30 ثانية، متبقية من 60 ثانية الأصلية). - بعد 15 ثانية، يتم تنفيذ GET آخر والحصول على القيمة "8".
<Get> عنصر
يسترد قيمة المفتاح المحدد. واحد على الأقل من <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
" <Get assignTo="private.myvar"> تعرض السياسة رسالة خطأ إذا حاولت استرداد خريطة قيمة مفتاح مشفّر بدون باستخدام البادئة. البادئة، وهي مطلوبة لأغراض أمنية أساسية أثناء تصحيح الأخطاء، لإخفاء القيم المشفرة من جلسات تتبُّع الخادم الوكيل لواجهة برمجة التطبيقات وتصحيح الأخطاء. للحصول على معلومات حول إنشاء خرائط مشفّرة للقيم الرئيسية، يمكنك الاطّلاع على مقالة "إنشاء" مواضيع إدارة خرائط القيمة/المفتاح واجهة برمجة التطبيقات وإنشاء تعديل خرائط القيم الرئيسية لبيئة |
لا ينطبق | مطلوب |
المؤشر |
رقم الفهرس (في فهرس يستند إلى 1) للعنصر المطلوب جلبه من مفتاح متعدد القيم.
على سبيل المثال، سيؤدي تحديد على سبيل المثال، راجِع قسم "الحصول على قيمة مشفّرة من KVM". في علامة التبويب عيّنات. |
لا ينطبق | اختياري |
<InitialEntries> عنصر
القيم الأساسية لخرائط القيم الرئيسية، التي تتم تعبئتها في خريطة القيمة الرئيسية عند إعدادها
احرص على تحديد اسم 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 مشفّر، استخدم واجهة برمجة تطبيقات إدارة خرائط القيمة/المفتاح.
تلقائي | لا ينطبق |
---|---|
التواجد في المنزل | اختياري |
النوع | لا ينطبق |
<Key> عنصر
تحدّد المفتاح في إدخال مفتاح/قيمة في خريطة. يمكن أن يكون المفتاح مركبًا، مما يعني أن أكثر من
يمكن إلحاق معلمة واحدة لإنشاء المفتاح. على سبيل المثال، userID
و
يمكن دمج role
لإنشاء key
. على سبيل المثال:
<Key> <Parameter>key_name_literal</Parameter> </Key>
تأكّد من الاطّلاع على العنصر <Parameter> للاطّلاع على تفاصيل حول كيفية وتعيين اسم المفتاح.
بالنسبة إلى متصفّح Edge for Public Cloud، يقتصر حجم المفتاح على 2 كيلوبايت. يُرجى الاطّلاع على الاختلافات بين Edge for Public Cloud API وPrivacy Cloud API للتعرّف على مزيد من المعلومات.
تلقائي | لا ينطبق |
---|---|
التواجد في المنزل | اختياري |
النوع | لا ينطبق |
<Parameter> عنصر
تحدّد المفتاح في زوج المفتاح/القيمة. يحدد هذا العنصر الاسم عند إنشاء أو وضع أو استرداد زوج المفتاح/القيمة أو حذفه.
يمكنك تحديد الاسم باستخدام:
-
سلسلة حرفية
<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>
:
السمة | الوصف | تلقائي | التواجد في المنزل |
---|---|---|---|
المرجع | تحدِّد هذه السياسة اسم متغيّر يحتوي قيمته على الاسم الدقيق للمفتاح الذي التي تريد إنشاءها أو الحصول عليها أو حذفها | لا ينطبق | مطلوبة إذا لم يتم توفير قيمة حرفية بين علامة الفتح علامات الإغلاق. لا يُسمح باستخدام هذا الحقل إذا تم إعطاء قيمة حرفية. |
<Put> عنصر
تكتب زوج مفتاح/قيمة على خريطة قيمة المفتاح، سواء كانت خريطة قيمة المفتاح مشفّرة أو
غير مشفّر. إذا تم تحديد قيمة المفتاح في السمة mapIdentifier
على
العنصر الأصلي غير موجود، يتم إنشاء الخريطة تلقائيًا (على أنها غير مشفرة). إذا كانت قيمة المفتاح
الخريطة موجودة مسبقًا، تتم إضافة المفتاح/القيمة إليها.
لإنشاء خريطة مشفّرة لقيم المفاتيح، استخدِم واجهة برمجة تطبيقات إدارة خرائط القيمة/المفتاح؛ أو راجِع إنشاء خرائط القيم الأساسية للبيئة وتعديلها لإنشاء أجهزة KVM مشفرة على مستوى البيئة في واجهة المستخدم.
<Put override="false"> <Key> <Parameter ref="mykeyvar"/> </Key> <Value ref="myvalvar1"/> </Put>
تلقائي | لا ينطبق |
---|---|
التواجد في المنزل | مطلوبة إذا لم تكن السمة <Get> أو <Delete> غير مطلوبة
حاليًا. |
النوع | لا ينطبق |
السمات
يوضّح الجدول التالي سمات العنصر <Put>
:
السمة | الوصف | تلقائي | التواجد في المنزل |
---|---|---|---|
إلغاء |
أمّا في حال ضبطها على |
false |
اختياري |
<Scope> عنصر
وتحدد حدود تسهيل الاستخدام لخرائط القيمة الرئيسية. النطاق الافتراضي هو
environment
، ما يعني أنّه تتم مشاركة إدخالات الخرائط تلقائيًا من خلال جميع الخوادم الوكيلة لواجهة برمجة التطبيقات
قيد التشغيل في بيئة (على سبيل المثال، الاختبار أو الإنتاج). إذا قمتَ بتعيين النطاق على
apiproxy
، إذن لا يمكن الوصول إلى الإدخالات في خريطة قيمة المفتاح إلا من خلال خادم وكيل واجهة برمجة التطبيقات الذي
ويكتب القيم على الخريطة.
لاحظ أنه عند الوصول إلى إدخال على الخريطة أو الخريطة، يجب عليك تحديد قيمة النطاق نفسها التي استخدمتها
عند إنشاء الخريطة. على سبيل المثال، إذا تم إنشاء الخريطة باستخدام نطاق
apiproxy
، يجب استخدام نطاق apiproxy
عند استرداد قيمه،
أو إدخال تغييرات أو حذف إدخالات.
<Scope>environment</Scope>
تلقائي | environment |
---|---|
التواجد في المنزل | اختياري |
النوع | سلسلة |
قيم صالحة: |
|
<Value> عنصر
تُستخدَم لتحديد قيمة المفتاح. يمكنك تحديد القيمة كسلسلة حرفية أو باستخدام
السمة 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 |
يحدث هذا الخطأ إذا حاولت استرداد قيمة من ربط قيمة مفتاح مشفّرة وضبط
القيمة على متغيّر لا يتضمّن اسمه البادئة |
build |
steps.keyvaluemapoperations.UnsupportedOperationException |
500 |
يحدث هذا الخطأ إذا تم ضبط السمة |
build |
أخطاء النشر
يمكن أن تحدث هذه الأخطاء عند نشر خادم وكيل يحتوي على هذه السياسة.
اسم الخطأ | السبب | إصلاح |
---|---|---|
InvalidIndex |
إذا كانت السمة index المحدّدة في العنصر <Get> ضمن سياسة عمليات خريطة القيمة الرئيسية صفرًا أو رقمًا سالبًا، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. يبدأ الفهرس من 1 ، لذا يتم اعتبار أنّ الفهرس صفرًا أو عددًا صحيحًا سالبًا غير صالح.
|
build |
KeyIsMissing |
يحدث هذا الخطأ إذا كان العنصر <Key> غير متوفّر تمامًا أو إذا كان العنصر <Parameter>
غير متوفّر داخل العنصر <Key> ضمن <Entry> الخاص بالعنصر <InitialEntries>
في سياسة عمليات ربط القيم الرئيسية.
|
build |
ValueIsMissing |
يحدث هذا الخطأ إذا كان العنصر <Value> غير متوفّر أسفل العنصر <Entry>
للعنصر <InitialEntries> ضِمن سياسة عمليات خريطة القيمة الرئيسية. |
build |
المخططات
ملاحظات الاستخدام
للحصول على نظرة عامة على خرائط القيم الرئيسية، اطّلِع على مقالة العمل باستخدام خرائط القيم الرئيسية.
يوفر متجر خرائط القيمة الرئيسية آلية مثابرة خفيفة للبيانات المنسَّقة
أزواج المفتاح/القيمة. ويمكنك الوصول إليها في وقت التشغيل من خلال السياسات أو الرموز. تحتوي الخريطة على أي
بيانات عشوائية بالتنسيق 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"/>
.