درحال مشاهده اسناد Apigee Edge هستید.
به
اسناد Apigee X بروید. اطلاعات
نسخه: 2.0.0
توابع مستقر در AWS Lambda را اجرا کنید. از این افزونه برای فهرست کردن توابع دردسترس در حساب AWS خود استفاده کنید، سپس توابع خاصی را فراخوانی کنید.
پیشنیازها
قبلاز استفاده از افزونه از یک پراکسی API بااستفاده از خطمشی ExtensionCallout، باید:
شناسه کلید دسترسی و کلید دسترسی رمز خود را از Amazon دریافت کنید.
برای پیکربندی این افزونه، به این موارد و همچنین نام منطقهای که توابع شما در آن مستقر شدهاند نیاز دارید.
تابع Lambda خود را مستقر کنید. برای اینکه افزونه بتواند به تابع Lambda دسترسی داشته باشد، باید یکی از این دو حالت را داشته باشد:
- در VPC عمومی مستقر شده است
- در VPC خصوصی با دروازه NAT عمومی مستقر شده است
برای اطلاعات بیشتر، پیکربندی تابع Lambda برای دسترسی به منابع در Amazon VPC را ببینید.
درباره AWS Lambda
AWS Lambda محیطهای محاسباتی را فراهم میکند که در آنها میتوانید توابع را به یکی از زبانهای پشتیبانیشده اجرا کنید.
کنشها
فراخواندن
تابعی را در AWS Lambda فرا میخواند.
برای جزئیات بیشتر درباره پارامترها، به اسناد فراخوانی AWS Lambda مراجعه کنید.
نحو
<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 مراجعه کنید.
| پارامتر | شرح | نوع | پیشفرض | الزامی |
|---|---|---|---|---|
| functionName | نام تابعی که باید فراخوانی شود. | رشته. | هیچکدام. | بله. |
| invocationType | مشخص میکند که آیا تابع بهصورت همزمان، غیرهمزمان، یا با اعتبارسنجی مقادیر پارامتر فراخوانی شود. | رشته. | هیچکدام. | شماره. |
| logType | بهصورت اختیاری مشخص میکند که آیا ۴ کیلوبایت آخر دادههای گزارش برگردانده شود یا نه. | رشته | هیچکدام. | شماره. |
| توصیفگر | نسخه نام مستعار تابع Lambda منتشرشده. | رشته | هیچکدام. | شماره. |
| پایهبار | JSON بهعنوان ورودی تابع Lambda. | رشته | هیچکدام. | شماره. |
پاسخ
آرایهای از توابع حاوی جزئیات نسخه خاص. مثال زیر را درنظر بگیرید:
{
"StatusCode" : 200,
"Payload" : "{\"statusCode\":200,\"body\":\"\\\"Hello World!\\\"\"}"
}
خصوصیتهای پاسخ
| دارایی | شرح | نوع | پیشفرض |
|---|---|---|---|
| StatusCode | کد وضعیت HTTP. | عدد صحیح | هیچکدام. |
| پایهبار | JSON نشاندهنده شیء برگشتی توسط تابع. فقط درصورتیکه نوع فراخوانی «درخواست پاسخ» باشد ارائه میشود. برای خطای تابع، این شامل پیام شرح خطا است. | رشته | هیچکدام. |
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 را مشخص کنید. اگر مشخص نشده باشد، فقط ARN آخرین نسخه منتشرنشده برگردانده میشود. |
رشته | هیچکدام. | شماره. |
| maxItems | حداکثر تعداد توابع برای برگرداندن در پاسخ. باید بزرگتر از ۰ باشد. حداکثر تعداد مطلق مواردی که میتوان برگرداند ۵۰ است. | عدد صحیح | هیچکدام. | شماره. |
پاسخ
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 | نام تابع. | رشته. | هیچکدام. |
| نقش | نقش اجرای تابع. | رشته. | هیچکدام. |
| زمان اجرا | محیط زمان اجرای تابع. | رشته. | هیچکدام. |
| نسخه | نسخه تابع. | رشته. | هیچکدام. |
مرجع پیکربندی
هنگام پیکربندی و استقرار این افزونه برای استفاده در پراکسیهای API، از موارد زیر استفاده کنید. برای مراحل پیکربندی افزونه بااستفاده از کنسول Apigee، به افزودن و پیکربندی افزونه مراجعه کنید.
داراییهای افزونه مشترک
ویژگی های زیر برای هر افزونه وجود دارد.
| ویژگی | شرح | پیش فرض | ضروری |
|---|---|---|---|
name | نامی که به این پیکربندی افزونه میدهید. | هیچ یک | آره |
packageName | نام بسته افزودنی همانطور که توسط Apigee Edge داده شده است. | هیچ یک | آره |
version | شماره نسخه بسته برنامه افزودنی که از آن یک برنامه افزودنی را پیکربندی می کنید. | هیچ یک | آره |
configuration | مقدار پیکربندی مخصوص افزونه ای که اضافه می کنید. به ویژگی های این بسته برنامه افزودنی مراجعه کنید | هیچ یک | آره |
داراییهای این بسته افزونه
مقادیر مشخصههای پیکربندی زیر را که مختص این افزونه است مشخص کنید.
| دارایی | شرح | پیشفرض | الزامی |
|---|---|---|---|
| منطقه AWS Lambda | نام منطقهای که توابع شما در آن مستقر شدهاند. برای مثال: us-east-1. |
هیچکدام. | بله. |
| اطلاعات کاربری | وقتی در کنسول Apigee Edge وارد میشود، این فایل JSON حاوی شناسه کلید دسترسی و کلید دسترسی Amazon شما در قالب زیر است:{"accessKeyId" : "access-key-ID","secretAccessKey" : "secret-access-key"}وقتی بااستفاده از API مدیریت ارسال میشود، این مقدار کدبندیشده base64 است که از آن فایل JSON کلید تولید شده است. |
هیچکدام. | بله. |