برنامه افزودنی Google Cloud Functions

شما در حال مشاهده اسناد Apigee Edge هستید.
مشاهده مستندات Apigee X.

نسخه 1.0.5

توابع ابری را فراخوانی کنید که از طریق پروژه Google Cloud شما مستقر می شوند.

در حال حاضر، این برنامه افزودنی از فراخوانی توابع راه‌انداز HTTP پشتیبانی می‌کند.

پیش نیازها

این محتوا مرجعی برای پیکربندی و استفاده از این پسوند ارائه می دهد. قبل از استفاده از برنامه افزودنی از یک پروکسی API با استفاده از خط مشی ExtensionCallout ، باید:

  1. Cloud Functions API را فعال کنید.

  2. توابع Cloud را برای پروژه Google Cloud خود تعریف و اجرا کنید .

  3. اجازه دسترسی کاربر از طریق IAM برای سطح دسترسی مورد نظر شما برای عملکرد. به عنوان مثال، می توانید دسترسی به عملکرد را فقط به حساب سرویسی که برای پیکربندی برنامه افزودنی استفاده می کنید محدود کنید.

  4. از کنسول GCP برای ایجاد یک کلید برای حساب سرویس استفاده کنید .

  5. هنگام افزودن و پیکربندی پسوند با استفاده از مرجع پیکربندی، از محتویات فایل 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 است که از فایل کلید حساب سرویس تولید می شود. هیچ یک. آره.