AWS Lambda एक्सटेंशन

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

वर्शन: 2.0.2

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 पब्लिश किए गए सभी वर्शन की सूची बनाने के लिए, ALL तय करें. अगर इसे तय नहीं किया गया है, तो सिर्फ़ पब्लिश नहीं किए गए नए वर्शन का एआरएन दिखता है. स्ट्रिंग कोई नहीं. नहीं.
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 Resource Name. स्ट्रिंग. कोई नहीं.
FunctionName फ़ंक्शन का नाम. स्ट्रिंग. कोई नहीं.
भूमिका फ़ंक्शन को लागू करने की भूमिका. स्ट्रिंग. कोई नहीं.
रनटाइम फ़ंक्शन का रनटाइम एनवायरमेंट. स्ट्रिंग. कोई नहीं.
वर्शन फ़ंक्शन का वर्शन. स्ट्रिंग. कोई नहीं.

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

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

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

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

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

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

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

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

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

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