मुख्य वैल्यू वाले मैप के साथ काम करना

आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं.
जानकारी

कई बार, आपको रनटाइम के दौरान डेटा को वापस पाने के लिए सेव करना होता है. यह ऐसा डेटा होता है जिसकी समयसीमा खत्म नहीं होती. इसे आपके एपीआई प्रॉक्सी लॉजिक में हार्ड-कोड नहीं किया जाना चाहिए. इसके लिए, अहमियत के हिसाब से वैल्यू मैप (केवीएम) सबसे सही होते हैं. केवीएम, कुंजी/वैल्यू स्ट्रिंग पेयर का कस्टम कलेक्शन होता है. यह एन्क्रिप्ट (सुरक्षित) किया गया होता है या एन्क्रिप्ट (सुरक्षित) नहीं किया गया होता है. यहां दो उदाहरण दिए गए हैं:

डेटा को सेव रखने के अन्य तरीकों के बारे में जानने के लिए, कैशिंग और डेटा को सेव रखने की सुविधा जोड़ना लेख पढ़ें.

केवीएम से जुड़े उदाहरण

यहां कुछ ऐसी स्थितियां दी गई हैं जिनमें केवीएम का इस्तेमाल किया जा सकता है:

  • आपके पास एक एपीआई प्रॉक्सी है. इसे टेस्ट एनवायरमेंट में एक टारगेट (या सर्विस कॉलआउट) यूआरएल और प्रोडक्शन एनवायरमेंट में दूसरा टारगेट यूआरएल कॉल करना है. अपनी प्रॉक्सी में यूआरएल को हार्ड-कोड करने के बजाय, प्रॉक्सी को यह पता लगाने दें कि वह किस एनवायरमेंट में है. इसके बाद, प्रॉक्सी से संबंधित Key Value Map Operations नीति लागू करें. साथ ही, आपके बनाए गए किसी एक केवीएम से सही टारगेट यूआरएल पाएं. अगर बाद में आपके एक या दोनों टारगेट में बदलाव होता है, तो आपको सिर्फ़ नए यूआरएल के साथ केवीएम अपडेट करने होंगे. प्रॉक्सी नई वैल्यू चुनती है और प्रॉक्सी को फिर से डिप्लॉय करने की ज़रूरत नहीं होती.
  • आपको क्रेडेंशियल, निजी पासकोड या टोकन सेव करने हैं. जैसे, बाहरी सेवाओं के लिए टोकन, OAuth टोकन जनरेट करने के लिए ज़रूरी क्रेडेंशियल या Java कॉलआउट या JavaScript में इस्तेमाल किए गए निजी पासकोड, जिनका इस्तेमाल एन्क्रिप्शन या JSON Web Token (JWT) पर हस्ताक्षर करने के लिए किया जाता है. अनुरोध में क्रेडेंशियल, कुंजियां या टोकन पास करने या उन्हें अपने प्रॉक्सी लॉजिक में हार्ड-कोड करने के बजाय, उन्हें KVM (हमेशा एन्क्रिप्ट किया गया) में सेव किया जा सकता है. साथ ही, उन्हें उन टारगेट के कॉल में डाइनैमिक तौर पर वापस पाया जा सकता है जिनके लिए इनकी ज़रूरत होती है.

आपको ऐसी अन्य स्थितियां भी मिलेंगी जहां की/वैल्यू स्ट्रिंग पेयर का स्टोरेज काम का होता है. आम तौर पर, इन मामलों में केवीएम का इस्तेमाल करें:

  • आपके कोड में कुछ जगहों पर, रनटाइम के दौरान अलग-अलग वैल्यू की ज़रूरत होती है.
  • संवेदनशील डेटा को हार्ड-कोड किए बिना पास किया जाना चाहिए.
  • आपको ऐसी वैल्यू सेव करनी हैं जो कैश मेमोरी की तरह खत्म नहीं होती हैं.

KVM के पास स्कोप होता है

स्कोप का मतलब है "केवीएम कहां उपलब्ध है." केवीएम को इन स्कोप पर बनाया जा सकता है: organization, environment, और apiproxy.

उदाहरण के लिए, अगर सिर्फ़ एक एपीआई प्रॉक्सी को केवीएम में डेटा की ज़रूरत है, तो apiproxy स्कोप पर केवीएम बनाया जा सकता है. इससे सिर्फ़ वह एपीआई प्रॉक्सी डेटा को ऐक्सेस कर पाएगी.

इसके अलावा, ऐसा भी हो सकता है कि आपको अपने टेस्ट एनवायरमेंट में मौजूद सभी एपीआई प्रॉक्सी को कुंजी-वैल्यू वाले मैप का ऐक्सेस देना हो. ऐसे में, आपको एनवायरमेंट स्कोप पर कुंजी-वैल्यू वाला मैप बनाना होगा. "prod" एनवायरमेंट में डिप्लॉय की गई प्रॉक्सी, "test" एनवायरमेंट के स्कोप में मौजूद KVM को ऐक्सेस नहीं कर सकतीं. अगर आपको प्रोडक्शन में भी वही KVM कुंजियां चाहिए, तो "prod" एनवायरमेंट के लिए एक पैरलल KVM बनाएं.

अगर आपको सभी एनवायरमेंट में मौजूद सभी प्रॉक्सी को एक ही केवीएम का ऐक्सेस देना है, तो organization स्कोप पर केवीएम बनाएं.

एन्क्रिप्ट (सुरक्षित) किए गए केवीएम के बारे में जानकारी

एन्क्रिप्ट (सुरक्षित) किए गए केवीएम, Apigee की ओर से जनरेट की गई AES-128 सिफ़र कुंजी की मदद से एन्क्रिप्ट (सुरक्षित) किए जाते हैं. केवीएम को एन्क्रिप्ट करने के लिए इस्तेमाल की गई कुंजी, केवीएम के स्कोप में सेव की जाती है. उदाहरण के लिए, किसी संगठन में एनवायरमेंट के स्कोप में बनाए गए सभी एन्क्रिप्ट (सुरक्षित) किए गए केवीएम, एनवायरमेंट के स्कोप वाली एक ही कुंजी का इस्तेमाल करके बनाए जाते हैं.

Edge, एन्क्रिप्ट (सुरक्षित) की गई वैल्यू को इन तरीकों से दिखाता है. (एन्क्रिप्ट (सुरक्षित) किए गए केवीएम बनाने के बारे में जानकारी के लिए, केवीएम मैनेज करना और उनका इस्तेमाल करना लेख पढ़ें.)

Edge यूज़र इंटरफ़ेस (यूआई)

एन्क्रिप्ट (सुरक्षित) किए गए कुंजी-वैल्यू मैप, यूज़र इंटरफ़ेस (यूआई) में तारे के निशान (*****) से मास्क की गई वैल्यू दिखाते हैं. उदाहरण के लिए:

प्रबंधन API

मैनेजमेंट एपीआई में, एन्क्रिप्ट (सुरक्षित) की गई वैल्यू को मास्क करके दिखाया जाता है. यहां एन्क्रिप्ट (सुरक्षित) किए गए केवीएम को पाने के लिए किए गए कॉल पर, मैनेजमेंट एपीआई से मिले जवाब का सैंपल दिया गया है:

{
  "encrypted": true,
  "entry": [
    {
      "name": "Key1",
      "value": "*****"
    },
    {
      "name": "Key2",
      "value": "*****"
    }
  ],
  "name": "secretMap"
}

ट्रेस और डीबग करना

एन्क्रिप्ट (सुरक्षित) की गई केवीएम वैल्यू को वापस पाने के लिए, कुंजी वैल्यू मैप के ऑपरेशन की नीति का इस्तेमाल किया जाता है. इसके लिए, आपको वैल्यू सेव करने के लिए किसी वैरिएबल का नाम देना होता है. एन्क्रिप्ट की गई वैल्यू पाने के लिए, आपको वैरिएबल के नाम में "private." प्रीफ़िक्स जोड़ना होगा. इससे, KVM कुंजियां/वैल्यू, ट्रेस और डीबग सेशन में नहीं दिखती हैं.

सीमाएं

जिन संगठनों में कोर परसिस्टेंस सेवाएं (सीपीएस) चालू हैं उनमें:

  • केवीएम का नाम/पहचानकर्ता केस-सेंसिटिव होता है.
  • कुंजी का साइज़ 2 केबी से ज़्यादा नहीं होना चाहिए.
  • वैल्यू का साइज़ 10 केबी से ज़्यादा नहीं होना चाहिए.

Apigee Edge for Private Cloud के लिए, हर KVM का साइज़ 15 एमबी से ज़्यादा नहीं होना चाहिए. यह कुंजियों और वैल्यू का कुल साइज़ होता है. इस सीमा को पार करने पर, Apigee Edge for Private Cloud गड़बड़ी का मैसेज दिखाता है. अपने केवीएम के साइज़ का पता लगाने के लिए, nodetool cfstats कमांड का इस्तेमाल किया जा सकता है.

बड़े केवीएम से परफ़ॉर्मेंस पर असर पड़ सकता है. इसलिए, आपको बड़े और मोनोलिथिक केवीएम को छोटे-छोटे केवीएम में बांटना चाहिए, ताकि परफ़ॉर्मेंस को बेहतर बनाया जा सके.

केवीएम को मैनेज करना और उनका इस्तेमाल करना

केवीएम को कई तरीकों से बनाया, मैनेज किया, और इस्तेमाल किया जा सकता है. इस सेक्शन में, एन्क्रिप्ट (सुरक्षित) किए गए और एन्क्रिप्ट (सुरक्षित) नहीं किए गए, दोनों तरह के केवीएम बनाने और फिर उन्हें वापस पाने के अलग-अलग विकल्पों के बारे में बताया गया है.

केवीएम बनाना और उन्हें अपडेट करना

केवीएम बनाने और उन्हें अपडेट करने के लिए, ये तरीके अपनाए जा सकते हैं:

  • कुंजी-वैल्यू मैप के ऑपरेशन से जुड़ी नीति (कोई एन्क्रिप्शन नहीं)

    एपीआई प्रॉक्सी के ज़रिए रनटाइम के दौरान KVM बनाने और अपडेट करने के लिए, कुंजी-वैल्यू मैप के ऑपरेशन से जुड़ी नीति का इस्तेमाल करें. (नीति में, पैरंट एलिमेंट के mapIdentifier एट्रिब्यूट में KVM का नाम तय किया जाता है.)

    <InitialEntries> एलिमेंट की मदद से, यूज़र इंटरफ़ेस (यूआई) में नीति सेव करते ही या एपीआई प्रॉक्सी (अगर आपने इसे ऑफ़लाइन बनाया है) को डिप्लॉय करते ही, नए केवीएम में एंट्री का बेसलाइन सेट बनाया और भरा जा सकता है. अगर नीति की वैल्यू में बदलाव होता है, तो मौजूदा वैल्यू बदल जाती हैं. नई कुंजियों/वैल्यू को मौजूदा KVM में जोड़ा जाता है. साथ ही, मौजूदा कुंजियों/वैल्यू को भी जोड़ा जाता है.

    अगर कोई KVM पहले से मौजूद नहीं है, तो <Put> एलिमेंट एक नया KVM बनाता है. साथ ही, यह एक या उससे ज़्यादा वैल्यू वाली कुंजी बनाता है. अगर केवीएम पहले से मौजूद है, तो कुंजियां/वैल्यू जोड़ी जाती हैं. अगर कुंजी पहले से मौजूद है, तो उसे अपडेट किया जाता है. KVM नीति में, एक से ज़्यादा <Put> एलिमेंट इस्तेमाल किए जा सकते हैं.

  • Management API

    Management API का इस्तेमाल, एडमिन के तौर पर KVM के साथ काम करने के लिए किया जाता है. इसका इस्तेमाल, एपीआई प्रॉक्सी में रनटाइम के दौरान नहीं किया जाता. उदाहरण के लिए, आपके पास ऐसी इंटरनल स्क्रिप्ट हो सकती है जो मैनेजमेंट एपीआई का इस्तेमाल करके, टेस्ट एनवायरमेंट में केवीएम को मिटाती है और फिर से बनाती है. इसके अलावा, हो सकता है कि आपको सभी प्रॉक्सी के लिए, केवीएम में किसी कुंजी की वैल्यू रीसेट करनी हो. (केवीएम में रनटाइम के दौरान बदलाव करने के लिए, अपनी प्रॉक्सी में Key Value Map Operations नीति का इस्तेमाल करें).

    Key/Value Maps management API की मदद से, एन्क्रिप्ट (सुरक्षित) किए गए KVM और कुंजियों/वैल्यू को सभी स्कोप (संगठन, एनवायरमेंट, और apiproxy) पर बनाया, अपडेट किया, और मिटाया जा सकता है.

    मैनेजमेंट एपीआई की मदद से एन्क्रिप्ट (सुरक्षित) किया गया KVM बनाने के लिए, JSON पेलोड में "encrypted" : "true" जोड़ें. केवीएम सिर्फ़ बनाते समय एन्क्रिप्ट (सुरक्षित) किए जा सकते हैं. किसी मौजूदा KVM को एन्क्रिप्ट (सुरक्षित) नहीं किया जा सकता.

  • मैनेजमेंट यूज़र इंटरफ़ेस (यूआई)

    Edge मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में, एनवायरमेंट के स्कोप वाले केवीएम बनाए और अपडेट किए जा सकते हैं. ये केवीएम, केवीएम के ऐसे स्कोप होते हैं जो यूज़र इंटरफ़ेस में दिखते हैं. मैनेजमेंट यूज़र इंटरफ़ेस (यूआई), एपीआई प्रॉक्सी के लिए रनटाइम में KVM डेटा को मैन्युअल तरीके से मैनेज करने का एक अच्छा तरीका है. ज़्यादा जानकारी के लिए, एनवायरमेंट की कुंजी और वैल्यू के मैप बनाना और उनमें बदलाव करना लेख पढ़ें.

केवीएम वापस लाए जा रहे हैं

एन्क्रिप्ट किए गए और एन्क्रिप्ट नहीं किए गए की-वैल्यू मैप को एक ही तरीके से वापस पाया जा सकता है. हालांकि, की-वैल्यू मैप के ऑपरेशन से जुड़ी नीति का इस्तेमाल करके वापस पाने के दौरान, इसमें थोड़ा अंतर होता है.

  • नीति: एन्क्रिप्ट (सुरक्षित) किए गए और एन्क्रिप्ट (सुरक्षित) नहीं किए गए केवीएम को वापस पाने के लिए, Key Value Map Operations नीति में <Get> एलिमेंट का इस्तेमाल करें. हालांकि, नीति का इस्तेमाल करके एन्क्रिप्ट (सुरक्षित) की गई वैल्यू को वापस पाने के तरीके में थोड़ा अंतर है. इसके लिए, आपको उस वैरिएबल के नाम में "private." प्रीफ़िक्स जोड़ना होगा जिसमें वापस पाई गई वैल्यू शामिल होगी. इसके बारे में, रेफ़रंस विषय के 'वापस पाएं' ऑपरेशन सेक्शन में बताया गया है. यह प्रीफ़िक्स, Trace और डीबग सेशन से वैल्यू को छिपाता है. ऐसा तब होता है, जब एपीआई प्रॉक्सी को डीबग किया जा रहा हो.
  • Management API: एडमिन से जुड़े कामों के लिए, एनवायरमेंट के लिए कुंजी और वैल्यू वाले मैप बनाना और उनमें बदलाव करना का इस्तेमाल किया जा सकता है. इससे आपको केवीएम और कुंजियां/वैल्यू मिलेंगी. उदाहरण के लिए, अगर आपको JSON परिभाषाओं को हासिल करके और सेव करके, KVM का बैक अप लेना है, तो मैनेजमेंट एपीआई का इस्तेमाल करें. हालांकि, ध्यान रखें कि एपीआई के जवाब में एन्क्रिप्ट (सुरक्षित) की गई वैल्यू, ***** के तौर पर दिखती हैं.
  • मैनेजमेंट यूज़र इंटरफ़ेस (यूआई): एनवायरमेंट के स्कोप वाले केवीएम को मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में देखा जा सकता है. इसके लिए, एपीआई > एनवायरमेंट कॉन्फ़िगरेशन > कुंजी-वैल्यू वाले मैप (क्लासिक Edge) या एडमिन > एनवायरमेंट > कुंजी-वैल्यू वाले मैप (नया Edge) पर जाएं.

केवीएम का उदाहरण

यूआरएल में वैल्यू भरने के लिए केवीएम का इस्तेमाल करने का उदाहरण देखने के लिए, केवीएम की मदद से एनवायरमेंट के हिसाब से टारगेट यूआरएल को टेंप्लेट में बदलना लेख पढ़ें.