شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید . اطلاعات
نسخه 1.0.5
توابع ابری را فراخوانی کنید که از طریق پروژه Google Cloud شما مستقر می شوند.
در حال حاضر، این برنامه افزودنی از فراخوانی توابع راهانداز HTTP پشتیبانی میکند.
پیش نیازها
این محتوا مرجعی برای پیکربندی و استفاده از این پسوند ارائه می دهد. قبل از استفاده از برنامه افزودنی از یک پروکسی API با استفاده از خط مشی ExtensionCallout ، باید:
Cloud Functions API را فعال کنید.
توابع Cloud را برای پروژه Google Cloud خود تعریف و اجرا کنید .
اجازه دسترسی کاربر از طریق IAM برای سطح دسترسی مورد نظر شما برای عملکرد. به عنوان مثال، می توانید دسترسی به عملکرد را فقط به حساب سرویسی که برای پیکربندی برنامه افزودنی استفاده می کنید محدود کنید.
از کنسول GCP برای ایجاد یک کلید برای حساب سرویس استفاده کنید .
هنگام افزودن و پیکربندی پسوند با استفاده از مرجع پیکربندی، از محتویات فایل JSON کلید حاصل استفاده کنید.
درباره توابع ابری
با Google Cloud Functions ، میتوانید توابع را در Google Cloud ایجاد و اجرا کنید، سپس آن توابع را از کدهای دیگر فراخوانی کنید. برای آشنایی با عملکردهای ابری، یکی از شروع سریع را امتحان کنید.
نمونه ها
مثال زیر نحوه فراخوانی توابع در توابع ابری با استفاده از خط مشی ExtensionCallout را نشان می دهد.
تابع Node.js را فراخوانی کنید
مثال زیر دارای یک خط مشی ExtensionCallout است که یک برنامه افزودنی Google Cloud Functions را فراخوانی می کند. برنامه افزودنی تابع پیشفرض «Hello world» را که در هنگام فعال کردن Cloud Functions API گنجانده شده است، فراخوانی میکند.
جاوا اسکریپت Node.js زیر در توابع Cloud برای یک حساب GCP مستقر شده است. اگر درخواست شامل ویژگی پیام باشد، کد آن را برمی گرداند. در غیر این صورت، "سلام جهان!" به عنوان پاسخ آن
/**
* Responds to any HTTP request.
*
* @param {!express:Request} req HTTP request context.
* @param {!express:Response} res HTTP response context.
*/
exports.helloWorld = (req, res) => {
let message = req.query.message || req.body.message || 'Hello World!';
res.status(200).send(message);
};
این مثال شامل یک برنامه افزودنی Google Cloud Functions است که با اعتبارنامه های مورد نیاز برای احراز هویت و دریافت مجوز برای فراخوانی کد در توابع ابری پیکربندی شده است .
کد تابع قبلی در توابع ابری به سادگی به عنوان helloWorld
ذخیره می شود. کد پیکربندی خط مشی ExtensionCallout زیر از این نام به همراه مقادیر شناسه منطقه و پروژه استفاده می کند که با مشخصات محیط Cloud Functions که تابع در آن مستقر است مطابقت دارد.
<Action>invoke</Action>
<Input><![CDATA[
{
"region" : "us-central1",
"projectId" : "my-project",
"functionName" : "hello-world",
"method" : "POST",
"payload" : { "message" : "Hello yourself!" }
}
]]></Input>
<Output parsed="false">function.response</Output>
خط مشی AssignMessage زیر مقدار پاسخ را برای اهداف اشکال زدایی می گیرد.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Function-Response">
<DisplayName>Get Function Response</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{function.response}</Payload>
</Set>
</AssignMessage>
پاسخ به درخواست فوق به صورت زیر خواهد بود:
Hello yourself!
مقدار پیش فرض parsed
true
است. این مثال parsed="false"
را در تگ <Output>
خطمشی تنظیم میکند، که از تجزیه پاسخ JSON توسط خطمشی جلوگیری میکند. برای اکثر مواقع هنگام استفاده از برنامه افزودنی Cloud Functions parsed="false"
تنظیم می کنید. برای اطلاعات بیشتر به عنصر <Output> مراجعه کنید.
اگر تابع Cloud پاسخ JSON را برگرداند و شما parsed="true"
را تنظیم کنید، پاسخ از پسوند یک مرجع شی است. برای استخراج پاسخ از مرجع، از نحو زیر استفاده کنید: { objectName }.{ jsonKey }
. به عنوان مثال:
function.response.message
اقدامات
استناد کردن
یک تابع Cloud را فراخوانی می کند.
در حال حاضر، این برنامه افزودنی از فراخوانی توابع راهانداز HTTP پشتیبانی میکند.
نحو
<Action>invoke</Action>
<Input><![CDATA[
{
"region" : "deployment-region",
"projectId" : "project-id",
"functionName" : "function-name",
"method" : "http-method",
"payload" : { json-payload }
}
]]></Input>
<Output>function.response</Output>
مثال
<Action>invoke</Action>
<Input><![CDATA[
{
"region" : "us-central1",
"projectId" : "my-project",
"functionName" : "hello-world",
"method" : "POST",
"payload" : { "message" : "Hello yourself!" }
}
]]></Input>
<Output>function.response</Output>
درخواست پارامترها
پارامتر | توضیحات | تایپ کنید | پیش فرض | مورد نیاز |
---|---|---|---|---|
منطقه | منطقه Google Cloud که در آن تابع مستقر شده است. | رشته | هیچ کدام. | بله. |
شناسه پروژه | شناسه پروژه GCP. | رشته | هیچ کدام. | بله. |
نام تابع | نام تابع HTTP برای فراخوانی. این نامی است که هنگام ایجاد تابع استفاده کردید (الزاماً نامی از کد تابع نیست). | رشته | هیچ کدام. | بله. |
روش | روش HTTP برای استفاده در هنگام فراخوانی تابع. | رشته | GET | خیر |
محموله | محموله برای ارسال با فراخوانی تابع. | JSON. | هیچ کدام. | خیر |
پاسخ
مقدار پاسخ تابع مشخص شده، در صورت وجود.
ویژگی های پاسخگویی
هیچ کدام.
مرجع پیکربندی
هنگام پیکربندی و استقرار این افزونه برای استفاده در پراکسی های API از موارد زیر استفاده کنید. برای مراحل پیکربندی یک برنامه افزودنی با استفاده از کنسول Apigee، به افزودن و پیکربندی یک برنامه افزودنی مراجعه کنید.
ویژگی های رایج پسوند
ویژگی های زیر برای هر افزونه وجود دارد.
ویژگی | شرح | پیش فرض | ضروری |
---|---|---|---|
name | نامی که به این پیکربندی افزونه میدهید. | هیچ یک | آره |
packageName | نام بسته افزودنی همانطور که توسط Apigee Edge داده شده است. | هیچ یک | آره |
version | شماره نسخه بسته برنامه افزودنی که از آن یک برنامه افزودنی را پیکربندی می کنید. | هیچ یک | آره |
configuration | مقدار پیکربندی مخصوص افزونه ای که اضافه می کنید. به ویژگی های این بسته برنامه افزودنی مراجعه کنید | هیچ یک | آره |
ویژگی های این بسته افزونه
مقادیری را برای خصوصیات پیکربندی زیر مخصوص این افزونه مشخص کنید.
اموال | توضیحات | پیش فرض | مورد نیاز |
---|---|---|---|
اعتبارنامه | وقتی در کنسول Apigee Edge وارد میشوید، این محتوای فایل کلید حساب سرویس شما است. هنگامی که از طریق API مدیریت ارسال می شود، یک مقدار کدگذاری شده با base64 است که از فایل کلید حساب سرویس تولید می شود. | هیچ کدام. | بله. |