افزونههای Google Workspace را در توابع Cloud Run با استفاده از زمان اجرای Node.js ایجاد کنید.
اهداف
- محیط خود را تنظیم کنید.
- یک تابع Cloud Run ایجاد و مستقر کنید.
- افزونه را ایجاد و نصب کنید.
- افزونه را نصب کنید.
پیشنیازها
مطمئن شوید که صورتحساب را برای پروژه ابری خود فعال کردهاید. یاد بگیرید که چگونه وضعیت صورتحساب پروژههای خود را تأیید کنید .
Cloud SDK با پروژه Cloud پیکربندی شده است.
محیط خود را تنظیم کنید
پروژه ابری خود را در کنسول گوگل کلود باز کنید
- در کنسول گوگل کلود، به صفحه انتخاب پروژه بروید.
- پروژه گوگل کلود مورد نظر خود را انتخاب کنید. یا روی ایجاد پروژه کلیک کنید و دستورالعملهای روی صفحه را دنبال کنید. اگر یک پروژه گوگل کلود ایجاد میکنید، ممکن است لازم باشد پرداخت هزینه را برای آن پروژه فعال کنید .
صفحه رضایت OAuth را پیکربندی کنید
افزونههای Google Workspace نیاز به پیکربندی صفحه رضایت دارند. پیکربندی صفحه رضایت OAuth افزونه شما، آنچه گوگل به کاربران نمایش میدهد را تعریف میکند.
- در کنسول گوگل کلود، به Menu > برویدGoogle Auth platform > برندسازی .
- اگر قبلاً تنظیمات را انجام دادهاید Google Auth platformمیتوانید تنظیمات صفحه رضایت OAuth زیر را در Branding ، Audience و Data Access پیکربندی کنید. اگر پیامی با این مضمون مشاهده کردید Google Auth platform هنوز پیکربندی نشده است ، روی شروع کار کلیک کنید:
- در قسمت اطلاعات برنامه ، در قسمت نام برنامه ، نامی برای برنامه وارد کنید.
- در ایمیل پشتیبانی کاربر ، یک آدرس ایمیل پشتیبانی انتخاب کنید که کاربران در صورت داشتن هرگونه سوال در مورد رضایت خود بتوانند با شما تماس بگیرند.
- روی بعدی کلیک کنید.
- در قسمت مخاطبان ، داخلی (Internal) را انتخاب کنید.
- روی بعدی کلیک کنید.
- در قسمت اطلاعات تماس ، یک آدرس ایمیل وارد کنید که از طریق آن بتوانید از هرگونه تغییر در پروژه خود مطلع شوید.
- روی بعدی کلیک کنید.
- در قسمت Finish ، سیاست دادههای کاربر سرویسهای API گوگل را مرور کنید و در صورت موافقت، گزینه «من با سیاستهای دادههای کاربر سرویسهای API گوگل موافقم» را انتخاب کنید.
- روی ادامه کلیک کنید.
- روی ایجاد کلیک کنید.
- فعلاً میتوانید از اضافه کردن محدودهها صرف نظر کنید. در آینده، وقتی برنامهای برای استفاده در خارج از سازمان Google Workspace خود ایجاد میکنید، باید نوع کاربر (User type) را به خارجی (External) تغییر دهید. سپس محدودههای مجوز مورد نیاز برنامه خود را اضافه کنید. برای کسب اطلاعات بیشتر، به راهنمای کامل پیکربندی رضایت OAuth مراجعه کنید.
یک تابع Cloud Run ایجاد و مستقر کنید
برای تأمین و اتصال به Cloud Shell، روی Authorize کلیک کنید.
در ترمینال Cloud Shell، API توابع Cloud Run، API ساخت Cloud، API افزونههای Google Workspace، API موتور محاسبات و API اجرای Cloud را فعال کنید:
gcloud services enable cloudfunctions.googleapis.com \ cloudbuild.googleapis.com \ gsuiteaddons.googleapis.com \ compute.googleapis.com \ run.googleapis.comبا کلیک کردن، ویرایشگر Cloud Shell را اجرا کنید.
ویرایشگر را در نوار ابزار پنجره Cloud Shell باز کنید .این ویرایشگر کد داخلی، امکان مشاهده و ویرایش فایلها را در همان محیطی که پروژهها ساخته و مستقر میشوند، فراهم میکند.
در دایرکتوری خالی، فایل
function.jsرا با کد نمونه زیر ایجاد کنید:/** * Cloud Run function that loads the homepage for a * Google Workspace add-on. * * @param {Object} req Request sent from Google * @param {Object} res Response to send back */ exports.loadHomePage = function addonsHomePage (req, res) { res.send(createAction()); }; /** Creates a card with two widgets. */ function createAction() { return { "action": { "navigations": [ { "pushCard": { "header": { "title": "Cats!" }, "sections": [ { "widgets": [ { "textParagraph": { "text": "Your random cat:" } }, { "image": { "imageUrl": "https://cataas.com/cat" } } ] } ] } } ] } }; }در همان دایرکتوری، فایل
package.jsonرا با کد نمونه زیر ایجاد کنید:{ "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } }با کلیک کردن به ترمینال Cloud Shell برگردید
ترمینال را باز کنید .
نقش
Cloud Build Service Account(roles/cloudbuild.builds.builder) را به حساب کاربری سرویس پیشفرض موتور محاسبات (Compute Engine) اضافه کنید.ابتدا، مجوز حساب سرویس را تنظیم کنید:
export PROJECT_ID=$(gcloud config get project) export SERVICE_ACCOUNT_NAME=$(gcloud compute project-info describe \ --format="value(defaultServiceAccount)")در مرحله بعد، مجوز حساب سرویس از دست رفته را اعطا کنید:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \ --role="roles/cloudbuild.builds.builder"برای استقرار تابع، دستور زیر را اجرا کنید:
gcloud run deploy loadHomePage --runtime nodejs22 --trigger-httpدر صورت درخواست، مشخص کنید که اجازه فراخوانیهای غیرمجاز تابع را نمیدهید. ممکن است چند دقیقه طول بکشد تا تابع مستقر شود.
ایجاد یک استقرار افزونه
ایمیل حساب سرویس مربوط به افزونه را پیدا کنید:
gcloud workspace-add-ons get-authorizationبه حساب سرویس، نقش
cloudfunctions.invokerرا اعطا کنید. SERVICE_ACCOUNT_EMAIL با فیلدserviceAccountEmailاز مرحله قبل جایگزین کنید.gcloud run services add-iam-policy-binding loadHomePage \ --role roles/roles/run.invoker \ --member serviceAccount:SERVICE_ACCOUNT_EMAILآدرس اینترنتی (URL) تابع مستقر شده را دریافت کنید. برای دریافت آدرس اینترنتی (URL)، دستور زیر را اجرا کنید و در بخش
httpsTriggerبه دنبال فیلدurlبگردید:gcloud run services describe loadHomePageبا کلیک کردن به ویرایشگر Cloud Shell برگردید
ویرایشگر را باز کنید .در همان دایرکتوری که
package.jsonقرار دارد، فایلdeployment.jsonرا با کد نمونه زیر ایجاد کنید. به URLurlتابع مستقر شده از مرحله قبل را قرار دهید.{ "oauthScopes": ["https://www.googleapis.com/auth/gmail.addons.execute"], "addOns": { "common": { "name": "My HTTP Add-on", "logoUrl": "https://raw.githubusercontent.com/webdog/octicons-png/main/black/beaker.png", "homepageTrigger": { "runFunction": "URL" } }, "gmail": {}, "drive": {}, "calendar": {}, "docs": {}, "sheets": {}, "slides": {}, "httpOptions": { "granularOauthPermissionSupport": "OPT_IN" } } }برای ایجاد استقرار، به ترمینال Cloud Shell برگردید:
gcloud workspace-add-ons deployments create quickstart \ --deployment-file=deployment.json
افزونه را نصب کنید
نصب نسخه آزمایشی در حالت توسعه:
gcloud workspace-add-ons deployments install quickstartبرای مشاهده افزونه، جیمیل را باز یا دوباره بارگذاری کنید. در نوار ابزار سمت راست، به دنبال نماد لیوان باشید.
برای باز کردن افزونه، روی نماد کلیک کنید. در صورت درخواست، افزونه را تأیید کنید.
اختیاری: تمیز کردن
برای جلوگیری از اعمال هزینه به حسابتان، منابعی را که ایجاد کردهاید حذف کنید:
افزونه را از حساب گوگل خود حذف کنید:
gcloud workspace-add-ons deployments uninstall quickstartبرای جلوگیری از تحمیل هزینه برای منابع استفاده شده در این راهنمای سریع، پروژه Cloud را حذف کنید:
gcloud projects delete PROJECT_IDبه جای PROJECT_ID شناسه پروژه ابری که برای شروع سریع استفاده کردهاید را قرار دهید. میتوانید شناسه پروژه ابری را در کنسول گوگل کلود در صفحه داشبورد پیدا کنید.
مباحث مرتبط
برای افزودن ویژگیهای بیشتر به افزونهی Google Workspace خود، به موارد زیر مراجعه کنید:
- ساخت افزونهی Google Workspace با استفاده از نقاط پایانی HTTP
- Codelab: با Node.js و Cloud Run یک افزونه Google Workspace بسازید
- پیشنمایش لینکها با تراشههای هوشمند