AWS Lambda एक्सटेंशन

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

वर्शन: 1.1.1

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

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

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

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 दस्तावेज़ देखें.

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

जवाब

वर्शन की खास जानकारी वाले फ़ंक्शन का कलेक्शन. यह उदाहरण है:

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

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

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

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 दस्तावेज़ देखें.

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

जवाब

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"
  }
]

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

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

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

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

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

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

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

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

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

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

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

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