สร้างส่วนเสริม Google Workspace ในฟังก์ชัน Cloud Run โดยใช้รันไทม์ Node.js
วัตถุประสงค์
- ตั้งค่าสภาพแวดล้อม
- สร้างและทำให้ฟังก์ชัน Cloud Run ใช้งานได้
- สร้างและติดตั้งใช้งานส่วนเสริม
- ติดตั้งส่วนเสริม
ข้อกำหนดเบื้องต้น
ตรวจสอบว่าได้เปิดการเรียกเก็บเงินสำหรับโปรเจ็กต์ Cloud แล้ว ดูวิธียืนยันสถานะการเรียกเก็บเงินของโปรเจ็กต์
กำหนดค่า Cloud SDK ด้วยโปรเจ็กต์ Cloud
ตั้งค่าสภาพแวดล้อม
เปิดโปรเจ็กต์ Cloud ใน Google Cloud Console
- ไปที่หน้าเลือกโปรเจ็กต์ใน Google Cloud Console
- เลือกโปรเจ็กต์ Google Cloud ที่ต้องการใช้ หรือคลิกสร้างโปรเจ็กต์ แล้วทำตามวิธีการบนหน้าจอ หากสร้างโปรเจ็กต์ Google Cloud คุณอาจต้องเปิดการเรียกเก็บเงินสำหรับโปรเจ็กต์
กำหนดค่าหน้าจอขอความยินยอม OAuth
ส่วนเสริมของ Google Workspace ต้องมีการกำหนดค่าหน้าจอขอความยินยอม การกำหนดค่าหน้าจอขอความยินยอม OAuth ของส่วนเสริมจะกำหนดสิ่งที่ Google แสดงต่อผู้ใช้
- ในคอนโซล Google Cloud ให้ไปที่เมนู > Google Auth platform > การสร้างแบรนด์
- หากกำหนดค่า Google Auth platformแล้ว คุณจะกำหนดค่าการตั้งค่าหน้าจอขอความยินยอม OAuth ต่อไปนี้ได้ในการสร้างแบรนด์ กลุ่มเป้าหมาย และการเข้าถึงข้อมูล หากเห็นข้อความที่ระบุว่าGoogle Auth platform ยังไม่ได้กำหนดค่า ให้คลิกเริ่มต้นใช้งาน
- ในส่วนข้อมูลแอป ให้ป้อนชื่อแอปในชื่อแอป
- ในอีเมลสนับสนุนสำหรับผู้ใช้ ให้เลือกอีเมลสนับสนุนที่ผู้ใช้สามารถติดต่อคุณได้หากมีข้อสงสัยเกี่ยวกับการยินยอม
- คลิกถัดไป
- ในส่วนกลุ่มเป้าหมาย ให้เลือกภายใน
- คลิกถัดไป
- ในส่วนข้อมูลติดต่อ ให้ป้อนอีเมลที่คุณต้องการรับการแจ้งเตือนเกี่ยวกับการเปลี่ยนแปลงในโปรเจ็กต์
- คลิกถัดไป
- ในส่วนเสร็จสิ้น ให้อ่านนโยบายข้อมูลผู้ใช้ของบริการ Google API และหากยอมรับ ให้เลือกฉันยอมรับบริการ Google API: นโยบายข้อมูลผู้ใช้
- คลิกต่อไป
- คลิกสร้าง
- ในตอนนี้ คุณข้ามการเพิ่มขอบเขตได้ ในอนาคต เมื่อสร้างแอปเพื่อใช้ภายนอกองค์กร Google Workspace คุณจะต้องเปลี่ยนประเภทผู้ใช้เป็นภายนอก จากนั้น เพิ่มขอบเขตการให้สิทธิ์ที่แอปของคุณต้องการ ดูข้อมูลเพิ่มเติมได้ที่คู่มือกำหนดค่าความยินยอม OAuth ฉบับเต็ม
สร้างและทำให้ฟังก์ชัน Cloud Run ใช้งานได้
คลิกให้สิทธิ์เพื่อจัดสรรและเชื่อมต่อกับ Cloud Shell
ในเทอร์มินัล Cloud Shell ให้เปิดใช้ Cloud Run Functions API, Cloud Build API, Google Workspace Add-ons API, Compute Engine API และ Cloud Run API โดยทำดังนี้
gcloud services enable cloudfunctions.googleapis.com \ cloudbuild.googleapis.com \ gsuiteaddons.googleapis.com \ compute.googleapis.com \ run.googleapis.comเปิดใช้ Cloud Shell Editor โดยคลิก
Open Editor ในแถบเครื่องมือของหน้าต่าง 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หากได้รับแจ้ง ให้ระบุว่าคุณไม่อนุญาตการเรียกใช้ฟังก์ชันที่ไม่ผ่านการตรวจสอบสิทธิ์ การทำให้ฟังก์ชันใช้งานได้อาจใช้เวลา 2-3 นาที
สร้างการทำให้ใช้งานได้ของส่วนเสริม
ค้นหาอีเมลบัญชีบริการสำหรับส่วนเสริมโดยทำดังนี้
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 ให้เรียกใช้คำสั่งต่อไปนี้ และมองหาฟิลด์
urlในส่วนhttpsTriggergcloud run services describe loadHomePageกลับไปที่ Cloud Shell Editor โดยคลิก
Open Editorในไดเรกทอรีเดียวกับ
package.jsonให้สร้างไฟล์deployment.jsonโดยใช้ตัวอย่างโค้ดต่อไปนี้ แทนที่ URL ด้วยurlของฟังก์ชันที่ติดตั้งใช้งานจากขั้นตอนก่อนหน้า{ "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เปิดหรือโหลด Gmail ซ้ำเพื่อดูส่วนเสริม มองหาไอคอนหลอดทดลองในแถบเครื่องมือทางด้านขวา
คลิกไอคอนเพื่อเปิดส่วนเสริม หากได้รับข้อความแจ้ง ให้ ให้สิทธิ์ส่วนเสริม
ไม่บังคับ: ล้างข้อมูล
โปรดลบทรัพยากรที่คุณสร้างขึ้นเพื่อหลีกเลี่ยงการเรียกเก็บเงินจากบัญชี
ถอนการติดตั้งส่วนเสริมจากบัญชี Google โดยทำดังนี้
gcloud workspace-add-ons deployments uninstall quickstartโปรดลบโปรเจ็กต์ Cloud เพื่อหลีกเลี่ยงการเรียกเก็บเงินสำหรับทรัพยากรที่ใช้ในการเริ่มต้นอย่างรวดเร็วนี้
gcloud projects delete PROJECT_IDแทนที่ PROJECT_ID ด้วยรหัสของ โปรเจ็กต์ Cloud ที่คุณใช้สำหรับการเริ่มต้นอย่างรวดเร็ว คุณจะหารหัสโปรเจ็กต์ Cloud ได้ในคอนโซล Google Cloud ในหน้าแดชบอร์ด
หัวข้อที่เกี่ยวข้อง
หากต้องการเพิ่มฟีเจอร์อื่นๆ ลงในส่วนเสริม Google Workspace โปรดดูข้อมูลต่อไปนี้
- สร้างส่วนเสริมของ Google Workspace โดยใช้ปลายทาง HTTP
- Codelab: สร้างส่วนเสริม Google Workspace ด้วย Node.js และ Cloud Run
- แสดงตัวอย่างลิงก์ด้วยชิปอัจฉริยะ