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