1. บทนำ
ภาพรวม
ฟังก์ชัน Cloud Run เป็นโซลูชันการประมวลผลที่มีน้ำหนักเบาสำหรับนักพัฒนาซอฟต์แวร์ในการสร้างฟังก์ชันแบบสแตนด์อโลนที่มีวัตถุประสงค์เดียว ซึ่งสามารถทริกเกอร์ได้โดยใช้ HTTPS หรือตอบสนองต่อ CloudEvents โดยไม่จำเป็นต้องจัดการเซิร์ฟเวอร์หรือสภาพแวดล้อมรันไทม์ ดูข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชัน Cloud Run ได้ในบล็อกโพสต์ของเรา
การควบคุมการเรียกใช้ฟังก์ชัน Cloud Run ทำได้ 2 วิธีหลักๆ ได้แก่ การรักษาความปลอดภัยในการเข้าถึงตามข้อมูลประจำตัว และการรักษาความปลอดภัยในการเข้าถึงโดยใช้การควบคุมการเข้าถึงตามเครือข่าย Codelab นี้มุ่งเน้นที่แนวทางแรกและแนะนำ 3 สถานการณ์ในการรักษาความปลอดภัยในการเข้าถึงตามข้อมูลประจำตัวเพื่อเรียกใช้ฟังก์ชัน
- ใช้โทเค็นข้อมูลประจำตัว gcloud เพื่อเรียกใช้ฟังก์ชันเพื่อวัตถุประสงค์ในการพัฒนาและการทดสอบในเครื่อง
- แอบอ้างเป็นบัญชีบริการเมื่อพัฒนาและทดสอบในเครื่องเพื่อใช้ข้อมูลเข้าสู่ระบบเดียวกันกับในเวอร์ชันที่ใช้งานจริง
- ใช้ไลบรารีของไคลเอ็นต์ Google เพื่อจัดการการตรวจสอบสิทธิ์ไปยัง Cloud APIs เช่น เมื่อบริการต้องเรียกใช้ฟังก์ชัน
สิ่งที่คุณจะได้เรียนรู้
- วิธีกำหนดค่าการตรวจสอบสิทธิ์ในฟังก์ชัน Cloud Run และยืนยันว่าได้กำหนดค่าการตรวจสอบสิทธิ์อย่างถูกต้อง
- เรียกใช้ฟังก์ชันที่ได้รับการตรวจสอบสิทธิ์จากสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ในเครื่องโดยระบุโทเค็นสำหรับข้อมูลประจำตัว gcloud
- วิธีสร้างบัญชีบริการและมอบบทบาทที่เหมาะสมเพื่อเรียกใช้ฟังก์ชัน
- วิธีแอบอ้างเป็นบริการจากสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ในเครื่องที่มีบทบาทที่เหมาะสมสำหรับการเรียกใช้ฟังก์ชัน
2. การตั้งค่าและข้อกำหนด
ข้อกำหนดเบื้องต้น
- คุณเข้าสู่ระบบ Cloud Console แล้ว
- คุณได้ติดตั้งใช้งานฟังก์ชัน Cloud Run ที่ทริกเกอร์ HTTP ไว้ก่อนหน้านี้ ดูตัวอย่างคู่มือเริ่มใช้งานฉบับย่อ
- (ไม่บังคับ) สำหรับสถานการณ์ที่ 3 Codelab นี้ใช้ Node.js และ npm เป็นตัวอย่าง แต่คุณสามารถใช้รันไทม์ใดก็ได้ที่ ไลบรารีของไคลเอ็นต์ Google Auth รองรับ
เปิดใช้งาน Cloud Shell
- จาก Cloud Console ให้คลิกเปิดใช้งาน Cloud Shell


หากคุณเริ่มใช้ Cloud Shell เป็นครั้งแรก คุณจะเห็นหน้าจอระดับกลางที่อธิบายว่า Cloud Shell คืออะไร หากเห็นหน้าจอระดับกลาง ให้คลิกต่อไป

การจัดสรรและเชื่อมต่อกับ Cloud Shell จะใช้เวลาไม่นาน

เครื่องเสมือนนี้โหลดเครื่องมือพัฒนาซอฟต์แวร์ทั้งหมดที่จำเป็นไว้แล้ว โดยมีไดเรกทอรีหลักแบบถาวรขนาด 5 GB และทำงานใน Google Cloud ซึ่งช่วยเพิ่มประสิทธิภาพเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก คุณสามารถทำงานส่วนใหญ่หรือทั้งหมดใน Codelab นี้ได้ด้วยเบราว์เซอร์
เมื่อเชื่อมต่อกับ Cloud Shell แล้ว คุณควรเห็นว่าคุณได้รับการตรวจสอบสิทธิ์และระบบได้ตั้งค่าโปรเจ็กต์เป็นรหัสโปรเจ็กต์ของคุณ
- เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อยืนยันว่าคุณได้รับการตรวจสอบสิทธิ์แล้ว
gcloud auth list
เอาต์พุตจากคำสั่ง
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อยืนยันว่าคำสั่ง gcloud รู้จักโปรเจ็กต์ของคุณ
gcloud config list project
เอาต์พุตจากคำสั่ง
[core] project = <PROJECT_ID>
หากไม่ได้ตั้งค่าไว้ คุณสามารถตั้งค่าได้ด้วยคำสั่งนี้
gcloud config set project <PROJECT_ID>
เอาต์พุตจากคำสั่ง
Updated property [core/project].
3. สร้างและทดสอบฟังก์ชัน Cloud Run ที่ตรวจสอบสิทธิ์แล้ว
การกำหนดให้มีการตรวจสอบสิทธิ์หมายความว่าหลักการที่เรียกใช้ฟังก์ชันต้องมีบทบาทผู้เรียกใช้ Cloud Run มิฉะนั้นฟังก์ชันจะแสดงข้อผิดพลาด 403 Forbidden Codelab นี้จะแสดงวิธีให้บทบาทผู้เรียกใช้ที่เหมาะสมแก่หลักการ
ตั้งค่าตัวแปรสภาพแวดล้อมในเครื่องเพื่อให้คำสั่ง gcloud ง่ายขึ้น
ก่อนอื่น คุณจะสร้างตัวแปรสภาพแวดล้อม 2-3 ตัวเพื่อปรับปรุงความสามารถในการอ่านของคำสั่ง gcloud ที่ใช้ใน Codelab นี้
REGION=us-central1 PROJECT_ID=$(gcloud config get-value project)
สร้างซอร์สโค้ดสำหรับฟังก์ชัน
แม้ว่า Codelab นี้จะใช้ Node.js แต่คุณสามารถใช้รันไทม์ใดก็ได้ที่ไลบรารีของไคลเอ็นต์ Google Auth รองรับ
ก่อนอื่น ให้สร้างไดเรกทอรีแล้วใช้คำสั่ง cd เพื่อไปยังไดเรกทอรีนั้น
mkdir auth-function-codelab && cd $_
จากนั้นสร้างไฟล์ package.json
touch package.json
echo '{
"dependencies": {
"@google-cloud/functions-framework": "^3.0.0"
}
}
' > package.json
จากนั้นสร้างไฟล์ต้นฉบับ index.js
touch index.js
echo 'const functions = require("@google-cloud/functions-framework");
functions.http("helloWorld", (req, res) => {
res.send(`Hello ${req.query.name || req.body.name || "World"}!`);
});' > index.js
สร้างฟังก์ชันที่ได้รับการตรวจสอบสิทธิ์
ขั้นตอนในการสร้างฟังก์ชันที่ตรวจสอบสิทธิ์แล้วสำหรับรันไทม์ nodejs20 มีดังนี้ อย่างไรก็ตาม คุณสามารถใช้รันไทม์ที่ไลบรารีของไคลเอ็นต์ Google Auth รองรับได้
FUNCTION_NAME=authenticated-function-codelab ENTRY_POINT=helloWorld
หากต้องการทำให้ฟังก์ชัน Cloud Run ใช้งานได้ใน Cloud Run โดยตรง ให้เรียกใช้คำสั่งต่อไปนี้
gcloud beta run deploy $FUNCTION_NAME \
--source . \
--function helloWorld \
--region $REGION \
--no-allow-unauthenticated
จากนั้นคุณจะบันทึก URL ของฟังก์ชันเป็นตัวแปรสภาพแวดล้อมเพื่อใช้ในภายหลังได้
FUNCTION_URL="$(gcloud run services describe $FUNCTION_NAME --region $REGION --format 'value(status.url)')"
หากต้องการทำให้ใช้งานได้เป็น Cloud Functions รุ่นที่ 2 ให้ใช้คำสั่งต่อไปนี้
gcloud functions deploy nodejs-http-function \ --gen2 \ --runtime=nodejs20 \ --region=$REGION \ --source=. \ --entry-point=helloWorld \ --trigger-http \ --no-allow-unauthenticated
จากนั้นคุณจะบันทึก URL ของฟังก์ชันเป็นตัวแปรสภาพแวดล้อมเพื่อใช้ในภายหลังได้
FUNCTION_URL="$(gcloud functions describe $FUNCTION_NAME --gen2 --region us-central1 --format='get(serviceConfig.uri)')"
ยืนยันว่าฟังก์ชันต้องมีการตรวจสอบสิทธิ์โดยพยายามเรียกใช้ในฐานะผู้เรียกที่ไม่ระบุตัวตน
คุณจะเรียกใช้ฟังก์ชันโดยไม่ต้องมีการตรวจสอบสิทธิ์เพื่อยืนยันว่าคุณได้รับข้อผิดพลาด 403 ตามที่คาดไว้
จากบรรทัดคำสั่ง ให้เรียกใช้คำสั่ง curl ต่อไปนี้
curl -i $FUNCTION_URL
คุณจะเห็นผลลัพธ์ต่อไปนี้
<html><head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>403 Forbidden</title> </head> <body text=#000000 bgcolor=#ffffff> <h1>Error: Forbidden</h1> <h2>Your client does not have permission to get URL <code>/</code> from this server.</h2> <h2></h2> </body></html>
ตอนนี้คุณพร้อมที่จะดู 3 สถานการณ์ที่คุณเรียกใช้ฟังก์ชันได้โดยการให้การตรวจสอบสิทธิ์แล้ว
4. สถานการณ์ที่ 1: ใช้โทเค็นข้อมูลประจำตัว gcloud
ในฐานะนักพัฒนาซอฟต์แวร์ คุณคงต้องการวิธีทดสอบฟังก์ชันขณะพัฒนาในเครื่อง ในส่วนนี้ คุณจะทำการทดสอบอย่างรวดเร็วเพื่อยืนยันว่าฟังก์ชันได้รับการตรวจสอบสิทธิ์อย่างถูกต้องโดยใช้ข้อมูลประจำตัวของคุณเอง
ตรวจสอบว่าคุณได้รับการตรวจสอบสิทธิ์โดยใช้ gcloud โดยเรียกใช้คำสั่งต่อไปนี้
gcloud auth list
คุณจะเห็นเครื่องหมายดอกจันข้างข้อมูลประจำตัวที่ใช้งานอยู่ เช่น
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่า gcloud init และ gcloud auth login ได้ในเอกสารประกอบ
จากนั้นเรียกใช้ฟังก์ชันและส่งโทเค็นข้อมูลประจำตัว
curl $FUNCTION_URL -H "Authorization: bearer $(gcloud auth print-identity-token)"
ตอนนี้คุณจะเห็นผลลัพธ์ดังนี้
Hello World!
การแก้ปัญหา
หากได้รับข้อผิดพลาด 403 Forbidden โปรดตรวจสอบว่าตัวตนของคุณมีบทบาทผู้เรียกใช้ Cloud Run คุณใช้คอนโซล IAM เพื่อยืนยันบทบาทที่มอบให้แก่ผู้ใช้หลักได้
แม้ว่าการใช้โทเค็นประจำตัวของคุณเองจะเป็นวิธีที่รวดเร็วในการทดสอบฟังก์ชันระหว่างการพัฒนาซอฟต์แวร์ แต่ผู้เรียกใช้ฟังก์ชันที่ได้รับการตรวจสอบสิทธิ์จะต้องมีบทบาทที่เหมาะสม มิฉะนั้นผู้เรียกใช้จะได้รับข้อผิดพลาด 403 Forbidden
คุณควรปฏิบัติตามหลักการให้สิทธิ์ขั้นต่ำที่สุดโดยจำกัดจำนวนข้อมูลประจำตัวและบัญชีบริการที่มีบทบาทในการเรียกใช้ฟังก์ชัน ในสถานการณ์ถัดไป คุณจะได้เรียนรู้วิธีสร้างบัญชีบริการใหม่และให้บทบาทที่เหมาะสมแก่บัญชีเพื่อเรียกใช้ฟังก์ชัน
5. สถานการณ์ที่ 2: แอบอ้างบัญชีบริการ
ในสถานการณ์นี้ คุณจะแอบอ้างเป็น (เช่น สมมติว่ามีสิทธิ์ของ) บัญชีบริการเพื่อเรียกใช้ฟังก์ชันเมื่อพัฒนาและทดสอบในเครื่อง การแอบอ้างเป็นบัญชีบริการช่วยให้คุณทดสอบฟังก์ชันด้วยข้อมูลเข้าสู่ระบบเดียวกันกับในเวอร์ชันที่ใช้งานจริงได้
การทำเช่นนี้ไม่เพียงแต่จะช่วยยืนยันบทบาทเท่านั้น แต่ยังเป็นไปตามหลักการให้สิทธิ์ขั้นต่ำที่สุดด้วย เนื่องจากคุณไม่จำเป็นต้องให้บทบาทผู้เรียกใช้ Cloud Function แก่อัตลักษณ์อื่นๆ เพียงเพื่อวัตถุประสงค์ในการทดสอบในเครื่อง
สำหรับวัตถุประสงค์ของโค้ดแล็บนี้ คุณจะสร้างบัญชีบริการใหม่ที่มีเฉพาะบทบาทในการเรียกใช้ฟังก์ชันที่คุณสร้างในโค้ดแล็บนี้
สร้างบัญชีบริการใหม่
ก่อนอื่น คุณจะต้องสร้างตัวแปรสภาพแวดล้อมเพิ่มเติม 2-3 ตัวเพื่อแสดงบัญชีบริการที่ใช้ในคำสั่ง gcloud
SERVICE_ACCOUNT_NAME="invoke-functions-codelab" SERVICE_ACCOUNT_ADDRESS=$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com
จากนั้นคุณจะต้องสร้างบัญชีบริการ
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME \ --display-name="Cloud Run function Authentication codelab"
และมอบบทบาทผู้เรียกใช้ Cloud Run ให้กับบัญชีบริการ
gcloud run services add-iam-policy-binding $FUNCTION_NAME \ --region=us-central1 \ --member serviceAccount:$SERVICE_ACCOUNT_ADDRESS \ --role='roles/run.invoker'
เรียกใช้ฟังก์ชันโดยการแอบอ้างบัญชีบริการ
โดยคุณจะแอบอ้างเป็นบัญชีบริการที่สร้างขึ้นใหม่โดยรับโทเค็นรหัสของบัญชี
เพิ่มบทบาทที่จำเป็นสำหรับการแอบอ้างเป็นบุคคลอื่น
หากต้องการแอบอ้างเป็นบัญชีบริการ บัญชีผู้ใช้ของคุณต้องมีบทบาทผู้สร้างโทเค็นบัญชีบริการ (roles/iam.serviceAccountTokenCreator) เพื่อสร้างโทเค็นรหัสสำหรับบัญชีบริการ
คุณเรียกใช้คำสั่งต่อไปนี้เพื่อมอบบทบาทนี้ให้กับบัญชีผู้ใช้ที่ใช้งานอยู่ได้
ACCOUNT_EMAIL=$(gcloud auth list --filter=status:ACTIVE --format="value(account)") gcloud iam service-accounts add-iam-policy-binding $SERVICE_ACCOUNT_ADDRESS \ --member user:$ACCOUNT_EMAIL \ --role='roles/iam.serviceAccountTokenCreator'
ใช้โทเค็นรหัสของบัญชีบริการ
รอสักครู่เพื่อให้สิทธิ์มีผล ตอนนี้คุณสามารถเรียกใช้ฟังก์ชันได้โดยส่งโทเค็นรหัสของบัญชีบริการ
curl $FUNCTION_URL -H "Authorization: bearer $(gcloud auth print-identity-token --impersonate-service-account $SERVICE_ACCOUNT_ADDRESS)"
และคุณจะเห็นข้อมูลต่อไปนี้
WARNING: This command is using service account impersonation. All API calls will be executed as [invoke-functions-codelab@<project-id>.iam.gserviceaccount.com]. Hello World!
6. สถานการณ์ที่ 3: ใช้ไลบรารีของไคลเอ็นต์ Google
สำหรับส่วนสุดท้ายของ Codelab นี้ คุณจะเรียกใช้บริการขนาดเล็กในเครื่องเพื่อสร้างโทเค็นรหัสสำหรับบัญชีบริการ จากนั้นจะเรียกใช้ฟังก์ชันโดยอัตโนมัติโดยใช้ไลบรารีของไคลเอ็นต์ Google Auth และข้อมูลรับรองเริ่มต้นของแอปพลิเคชัน (ADC) อ่านเพิ่มเติมเกี่ยวกับไลบรารีของไคลเอ็นต์ Google ได้ในส่วนคำอธิบายไลบรารีของไคลเอ็นต์ในเอกสารประกอบ
การใช้ ADC มีความสำคัญอย่างยิ่งเมื่อคุณต้องการเขียนและทดสอบฟังก์ชันในเครื่อง (เช่น ในแล็ปท็อป, Cloud Shell ฯลฯ) ขณะโต้ตอบกับทรัพยากรอื่นๆ ของ Google Cloud (เช่น Cloud Storage, Vision API ฯลฯ) ในตัวอย่างนี้ คุณจะเห็นวิธีที่บริการเรียกใช้ฟังก์ชันอื่นที่ต้องมีการตรวจสอบสิทธิ์ ดูข้อมูลเพิ่มเติมเกี่ยวกับ ADC และการพัฒนาในเครื่องได้ที่บล็อกโพสต์วิธีพัฒนาและทดสอบ Cloud Functions ในเครื่อง | บล็อก Google Cloud
เรียกใช้คำสั่ง gcloud เพื่อแอบอ้างบัญชีบริการ
ADC จะค้นหาข้อมูลเข้าสู่ระบบโดยอัตโนมัติตามสภาพแวดล้อมของแอปพลิเคชัน และใช้ข้อมูลเข้าสู่ระบบเหล่านั้นเพื่อตรวจสอบสิทธิ์กับ Google Cloud APIs แฟล็ก –impersonate-service-account ช่วยให้คุณสามารถแอบอ้างเป็นบัญชีบริการได้โดยใช้ข้อมูลประจำตัวของบัญชีเพื่อตรวจสอบสิทธิ์กับ Google Cloud API
หากต้องการแอบอ้างบัญชีบริการ คุณสามารถเรียกใช้คำสั่งต่อไปนี้
gcloud auth application-default login --impersonate-service-account=$SERVICE_ACCOUNT_ADDRESS
ตอนนี้คุณกำลังเรียกใช้คำสั่ง gcloud ในฐานะบัญชีบริการนั้นแทนที่จะเป็นข้อมูลประจำตัวของคุณ
สร้างและเรียกใช้บริการเพื่อเรียกใช้ฟังก์ชันที่ได้รับการตรวจสอบสิทธิ์
รันไทม์แต่ละรายการมีไลบรารีของไคลเอ็นต์ Google Auth ของตัวเองซึ่งคุณสามารถติดตั้งได้ Codelab นี้จะแนะนำวิธีสร้างและเรียกใช้แอป Node.js ในเครื่อง
ขั้นตอนสำหรับ Node.js มีดังนี้
- สร้างไดเรกทอรีใหม่
mkdir local-dev && cd $_
- สร้างแอป Node.js ใหม่
npm init -y
- ติดตั้งไลบรารีของไคลเอ็นต์ Google Auth
npm install google-auth-library
- สร้างไฟล์
index.js - ดึง URL ของฟังก์ชัน Cloud Run ซึ่งคุณจะเพิ่มลงในโค้ดในขั้นตอนถัดไป
echo $FUNCTION_URL
- เพิ่มโค้ดต่อไปนี้ลงใน index.js อย่าลืมเปลี่ยนตัวแปร targetAudience เป็น URL ของฟังก์ชัน Cloud Run
index.js
// Cloud Functions uses your function's url as the `targetAudience` value
const targetAudience = '<YOUR-CLOUD-RUN-FUNCTION-URL>';
// For Cloud Functions, endpoint(`url`) and `targetAudience` should be equal
const url = targetAudience;
const { GoogleAuth } = require('google-auth-library');
const auth = new GoogleAuth();
async function request() {
console.info(`request ${url} with target audience ${targetAudience}`);
// this call retrieves the ID token for the impersonated service account
const client = await auth.getIdTokenClient(targetAudience);
const res = await client.request({ url });
console.info(res.data);
}
request().catch(err => {
console.error(err.message);
process.exitCode = 1;
});
- เรียกใช้แอป
node index.js
และคุณควรเห็นข้อความ "Hello World!" ที่ได้
การแก้ปัญหา
หากเห็นข้อผิดพลาด "ปฏิเสธสิทธิ์ "iam.serviceAccounts.getOpenIdToken" ในทรัพยากร (หรืออาจไม่มีอยู่)" โปรดรอสักครู่เพื่อให้บทบาทผู้สร้างโทเค็นบัญชีบริการมีผล
หากได้รับข้อผิดพลาด "ดึงโทเค็นรหัสในสภาพแวดล้อมนี้ไม่ได้ โปรดใช้ GCE หรือตั้งค่าตัวแปรสภาพแวดล้อม GOOGLE_APPLICATION_CREDENTIALS เป็นไฟล์ JSON ของข้อมูลเข้าสู่ระบบบัญชีบริการ" แสดงว่าคุณอาจลืมเรียกใช้คำสั่ง
gcloud auth application-default login --impersonate-service-account=$SERVICE_ACCOUNT_ADDRESS
7. ยินดีด้วย
ขอแสดงความยินดีที่ทำ Codelab นี้เสร็จสมบูรณ์
เราขอแนะนำให้อ่านเอกสารเกี่ยวกับวิธีรักษาความปลอดภัยให้ฟังก์ชัน Cloud Run
นอกจากนี้ เราขอแนะนำบล็อกโพสต์นี้เกี่ยวกับการพัฒนาในเครื่องด้วยฟังก์ชัน Cloud Run เพื่อเรียนรู้วิธีพัฒนาและทดสอบฟังก์ชัน Cloud Run ในสภาพแวดล้อมการพัฒนาในเครื่อง
สิ่งที่เราได้พูดถึง
- วิธีกำหนดค่าการตรวจสอบสิทธิ์ในฟังก์ชัน Cloud Run และยืนยันว่าได้กำหนดค่าการตรวจสอบสิทธิ์อย่างถูกต้อง
- เรียกใช้ฟังก์ชันที่ได้รับการตรวจสอบสิทธิ์จากสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ในเครื่องโดยระบุโทเค็นสำหรับข้อมูลประจำตัว gcloud
- วิธีสร้างบัญชีบริการและมอบบทบาทที่เหมาะสมเพื่อเรียกใช้ฟังก์ชัน
- วิธีแอบอ้างเป็นบริการจากสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ในเครื่องที่มีบทบาทที่เหมาะสมสำหรับการเรียกใช้ฟังก์ชัน
8. ล้างข้อมูล
หากต้องการหลีกเลี่ยงการเรียกเก็บเงินโดยไม่ตั้งใจ (เช่น Cloud Function นี้ถูกเรียกใช้โดยไม่ตั้งใจมากกว่าการจัดสรรการเรียกใช้ฟังก์ชัน Cloud Run รายเดือนในระดับฟรี) คุณสามารถลบ Cloud Function หรือลบโปรเจ็กต์ที่สร้างในขั้นตอนที่ 2 ก็ได้
หากต้องการหยุดการแอบอ้างเป็นบัญชีบริการ คุณสามารถเข้าสู่ระบบอีกครั้งโดยใช้ข้อมูลประจำตัวของคุณได้โดยทำดังนี้
gcloud auth application-default login
หากต้องการลบฟังก์ชัน Cloud Run ให้ไปที่ Cloud Console ของฟังก์ชัน Cloud Run ที่ https://console.cloud.google.com/functions/ ตรวจสอบว่าโปรเจ็กต์ที่คุณสร้างในขั้นตอนที่ 2 เป็นโปรเจ็กต์ที่เลือกอยู่ในขณะนี้
เลือก my-authenticated-function ที่คุณได้ติดตั้งใช้งานไปก่อนหน้านี้ จากนั้นกดลบ
หากเลือกที่จะลบทั้งโปรเจ็กต์ ให้ไปที่ https://console.cloud.google.com/cloud-resource-manager เลือกโปรเจ็กต์ที่สร้างในขั้นตอนที่ 2 แล้วเลือก "ลบ" หากลบโปรเจ็กต์ คุณจะต้องเปลี่ยนโปรเจ็กต์ใน Cloud SDK คุณดูรายการโปรเจ็กต์ทั้งหมดที่พร้อมใช้งานได้โดยเรียกใช้ gcloud projects list