AWS Lambda एक्सटेंशन

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

वर्शन: 2.0.0

AWS Lambda पर डिप्लॉय किए गए फ़ंक्शन चलाएं. अपने AWS खाते में उपलब्ध फ़ंक्शन की सूची बनाने के लिए, इस एक्सटेंशन का इस्तेमाल करें. इसके बाद, खास फ़ंक्शन को चालू करें.

ज़रूरी शर्तें

ExtensionCallout नीति का इस्तेमाल करके, एपीआई प्रॉक्सी से एक्सटेंशन का इस्तेमाल करने से पहले, आपको ये काम करने होंगे:

AWS Lambda के बारे में जानकारी

AWS Lambda, कंप्यूट एनवायरमेंट उपलब्ध कराता है. यहां, इस्तेमाल की जा सकने वाली किसी भी भाषा में फ़ंक्शन चलाए जा सकते हैं.

कार्रवाइयां

शुरू करना

AWS Lambda पर कोई फ़ंक्शन शुरू करता है.

पैरामीटर के बारे में ज़्यादा जानकारी के लिए, AWS Lambda Invoke दस्तावेज़ देखें.

सिंटैक्स

<Action>invoke</Action>
<Input><![CDATA[
{
  "functionName" : "function-on-lambda",
  "invocationType" : "RequestResponse | Event | DryRun",
  "logType" : "None | Tail",
  "qualifier" : "Version-or-alias",
  "payload" : "Escaped-JSON-string"
}
]]>
</Input>
<Output>flow-variable</Output>

उदाहरण

<Action>invoke</Action>
<Input><![CDATA[
{
  "functionName" : "helloWorld",
  "invocationType" : "RequestResponse",
  "logType" : "None",
  "qualifier" : "$LATEST",
  "payload" : "{ \"key\": \"val\" }"
}
]]>
</Input>
<Output>function.response.value</Output>

अनुरोध पैरामीटर

पैरामीटर के बारे में ज़्यादा जानकारी के लिए, AWS Lambda Invoke दस्तावेज़ देखें.

पैरामीटर ब्यौरा टाइप डिफ़ॉल्ट ज़रूरी है
functionName जिस फ़ंक्शन को चालू करना है उसका नाम. स्ट्रिंग. कोई नहीं. हां.
invocationType इससे यह तय होता है कि फ़ंक्शन को सिंक्रोनस तरीके से, असिंक्रोनस तरीके से या पैरामीटर वैल्यू की पुष्टि करके लागू करना है या नहीं. स्ट्रिंग. कोई नहीं. नहीं.
logType इसके अलावा, यह भी तय किया जा सकता है कि लॉग डेटा के आखिरी 4 केबी को दिखाना है या नहीं. स्ट्रिंग कोई नहीं. नहीं.
क्वालीफ़ायर पब्लिश किए गए Lambda फ़ंक्शन के उपनाम का वर्शन. स्ट्रिंग कोई नहीं. नहीं.
पेलोड Lambda फ़ंक्शन के इनपुट के तौर पर JSON. स्ट्रिंग कोई नहीं. नहीं.

जवाब

फ़ंक्शन का एक कलेक्शन, जिसमें वर्शन की खास जानकारी होती है. इसका एक उदाहरण यहां दिया गया है:

{
  "StatusCode" : 200,
  "Payload" : "{\"statusCode\":200,\"body\":\"\\\"Hello World!\\\"\"}"
}

रिस्पॉन्स प्रॉपर्टी

प्रॉपर्टी ब्यौरा टाइप डिफ़ॉल्ट
StatusCode एचटीटीपी स्टेटस कोड. पूर्णांक कोई नहीं.
पेलोड फ़ंक्शन से मिले ऑब्जेक्ट को दिखाने वाला JSON. सिर्फ़ तब मौजूद होता है, जब अनुरोध करने का टाइप RequestResponse हो. फ़ंक्शन की गड़बड़ी के लिए, इसमें गड़बड़ी की जानकारी देने वाला मैसेज होता है. स्ट्रिंग कोई नहीं.

listFunctions

AWS Lambda के उपलब्ध फ़ंक्शन दिखाता है.

पैरामीटर के बारे में ज़्यादा जानकारी के लिए, AWS Lambda ListFunctions दस्तावेज़ देखें.

सिंटैक्स

<Action>listFunctions</Action>
<Input><![CDATA[
{
  "masterRegion" : "ALL | [a-z]{2}(-gov)?-[a-z]+-\d{1}",
  "functionVersion" : "ALL",
  "maxItems" : 1 - 10000
}
]]>
</Input>
<Output>flow-variable</Output>

उदाहरण

<Action>listFunctions</Action>
<Input><![CDATA[
{
  "masterRegion" : "ALL",
  "functionVersion" : "ALL",
  "maxItems" : 50
}
]]>
</Input>
<Output>function.list</Output>

अनुरोध पैरामीटर

पैरामीटर के बारे में ज़्यादा जानकारी के लिए, AWS Lambda ListFunctions दस्तावेज़ देखें.

पैरामीटर ब्यौरा टाइप डिफ़ॉल्ट ज़रूरी है
masterRegion वह क्षेत्र (जैसे, us-east-2) जिसके फ़ंक्शन की सूची बनाई जानी है; ALL, किसी भी क्षेत्र के फ़ंक्शन शामिल करने के लिए. अगर functionVersion एट्रिब्यूट की वैल्यू दी गई है, तो आपको functionVersion एट्रिब्यूट की वैल्यू भी देनी होगी. स्ट्रिंग कोई नहीं. नहीं.
functionVersion पब्लिश किए गए सभी वर्शन की सूची देखने के लिए, ALL डालें. अगर यह जानकारी नहीं दी जाती है, तो सिर्फ़ पब्लिश नहीं किया गया नया वर्शन ARN दिखाया जाता है. स्ट्रिंग कोई नहीं. नहीं.
maxItems जवाब में दिखाए जाने वाले फ़ंक्शन की ज़्यादा से ज़्यादा संख्या. 0 से ज़्यादा होना चाहिए. ज़्यादा से ज़्यादा 50 आइटम लौटाए जा सकते हैं. पूर्णांक कोई नहीं. नहीं.

जवाब

JSON, फ़ंक्शन की एक कलेक्शन है. इसमें वर्शन की खास जानकारी शामिल होती है.

[
  {
    "FunctionName": "helloWorld",
    "FunctionArn": "arn:aws:lambda:fake-region:012345:function:helloWorld",
    "Runtime": "nodejs",
    "Role": "arn:aws:iam::012345:role/service-role/fakeRole",
    "Handler": "index.handler",
    "Description": "A Hello World lambda function.",
    "Version": "$LATEST"
  },
  {
    "FunctionName": "helloWorld",
    "FunctionArn": "arn:aws:lambda:fake-region:012345:function:helloWorld",
    "Runtime": "nodejs",
    "Role": "arn:aws:iam::012345:role/service-role/fakeRole",
    "Handler": "index.handler",
    "Description": "A Hello World lambda function.",
    "Version": "1"
  }
]

रिस्पॉन्स प्रॉपर्टी

प्रॉपर्टी ब्यौरा टाइप डिफ़ॉल्ट
ब्यौरा फ़ंक्शन के बारे में जानकारी. स्ट्रिंग. कोई नहीं.
हैंडलर वह फ़ंक्शन जिसे फ़ंक्शन को लागू करने के लिए, Lambda कॉल करता है. स्ट्रिंग. कोई नहीं.
FunctionArn फ़ंक्शन का Amazon रिसॉर्स नेम. स्ट्रिंग. कोई नहीं.
FunctionName फ़ंक्शन का नाम. स्ट्रिंग. कोई नहीं.
भूमिका फ़ंक्शन को लागू करने की भूमिका. स्ट्रिंग. कोई नहीं.
रनटाइम फ़ंक्शन का रनटाइम एनवायरमेंट. स्ट्रिंग. कोई नहीं.
वर्शन फ़ंक्शन का वर्शन. स्ट्रिंग. कोई नहीं.

कॉन्फ़िगरेशन का रेफ़रंस

एपीआई प्रॉक्सी में इस्तेमाल करने के लिए, इस एक्सटेंशन को कॉन्फ़िगर और डिप्लॉय करते समय इनका इस्तेमाल करें. Apigee console का इस्तेमाल करके एक्सटेंशन को कॉन्फ़िगर करने का तरीका जानने के लिए, एक्सटेंशन जोड़ना और कॉन्फ़िगर करना लेख पढ़ें.

सामान्य एक्सटेंशन प्रॉपर्टी

हर प्रॉपर्टी के लिए नीचे दी गई प्रॉपर्टी मौजूद हैं.

प्रॉपर्टी जानकारी डिफ़ॉल्ट ज़रूरी है
name वह नाम, जिसे आप एक्सटेंशन का यह कॉन्फ़िगरेशन दे रहे हैं. कभी नहीं हां
packageName एक्सटेंशन पैकेज का नाम, जो Apigee Edge से दिया गया है. कभी नहीं हां
version उस एक्सटेंशन पैकेज का वर्शन नंबर जिससे आपको एक्सटेंशन कॉन्फ़िगर करना है. कभी नहीं हां
configuration आप जिस एक्सटेंशन को जोड़ रहे हैं उसके लिए खास तौर पर कॉन्फ़िगरेशन वैल्यू. इस एक्सटेंशन पैकेज के लिए प्रॉपर्टी देखें कभी नहीं हां

इस एक्सटेंशन पैकेज के लिए प्रॉपर्टी

इस एक्सटेंशन के लिए, यहां दी गई कॉन्फ़िगरेशन प्रॉपर्टी की वैल्यू दें.

प्रॉपर्टी ब्यौरा डिफ़ॉल्ट ज़रूरी है
AWS Lambda का क्षेत्र उस क्षेत्र का नाम जहां आपके फ़ंक्शन डिप्लॉय किए गए हैं. उदाहरण के लिए: us-east-1. कोई नहीं. हां.
क्रेडेंशियल Apigee Edge कंसोल में डालने पर, यह एक JSON फ़ाइल होती है. इसमें आपके Amazon ऐक्सेस पासकोड आईडी और ऐक्सेस पासकोड इस फ़ॉर्मैट में होता है:

{
"accessKeyId" : "access-key-ID",
"secretAccessKey" : "secret-access-key"
}

मैनेजमेंट एपीआई के ज़रिए भेजे जाने पर, यह उस कुंजी वाली JSON फ़ाइल से जनरेट की गई, base64-एन्क्रिप्ट की गई वैल्यू होती है.
कोई नहीं. हां.