ทําให้เว็บไซต์ใช้งานได้ด้วย Cloud Run

เว็บไซต์ที่ทํางานอยู่อาจเป็นเรื่องยากด้วยค่าใช้จ่ายในการสร้างและจัดการอินสแตนซ์เครื่องเสมือน (VM), คลัสเตอร์, พ็อด, บริการ และอื่นๆ ทั้งหมด ซึ่งก็เหมาะกับแอปที่มีหลายชั้น แต่ถ้าคุณพยายามทําให้เว็บไซต์ใช้งานได้และมองเห็นได้ก็ใช้งานได้เลยทีเดียว

เมื่อใช้ Cloud Run การติดตั้งใช้งาน Knative ใน Google Cloud จะช่วยให้คุณจัดการและทําให้เว็บไซต์ใช้งานได้โดยไม่ต้องมีค่าใช้จ่ายใดๆ ที่จําเป็นสําหรับการทําให้ใช้งานได้บน VM หรือ Kubernetes วิธีนี้ไม่เพียงแต่เป็นวิธีที่เรียบง่ายในมุมมองการจัดการเท่านั้น แต่ยังทําให้คุณสามารถปรับขนาดเป็น 0 เมื่อไม่มีคําขอมายังเว็บไซต์ของคุณ

Cloud Run ไม่เพียงนําการพัฒนาแบบไร้เซิร์ฟเวอร์ไปยังคอนเทนเนอร์เท่านั้น แต่ยังเรียกใช้บนคลัสเตอร์ Google Kubernetes Engine (GKE) ของคุณเองหรือในแพลตฟอร์มที่มีการจัดการครบวงจรเป็นโซลูชันบริการ (PaaS) ที่ให้บริการโดย Cloud Run ได้อีกด้วย คุณจะทดสอบสถานการณ์หลังใน Codelab นี้

แผนภาพต่อไปนี้จะแสดงขั้นตอนการทําให้ใช้งานได้และโฮสติ้งของ Cloud Run เริ่มต้นด้วยรูปภาพ Docker ที่สร้างผ่าน Cloud Build ซึ่งจะทริกเกอร์ใน Cloud Shell จากนั้นจึงทําให้รูปภาพดังกล่าวใช้งานได้ใน Cloud Run ด้วยคําสั่งใน Cloud Shell

สิ่งที่ต้องมีก่อน

สิ่งที่คุณจะได้เรียนรู้

  • วิธีสร้างรูปภาพ Docker ด้วย Cloud Build และอัปโหลดไปยัง gcr.io
  • วิธีทําให้อิมเมจ Docker ใช้งานได้ใน Cloud Run
  • วิธีจัดการการติดตั้งใช้งาน Cloud Run
  • วิธีตั้งค่าปลายทางสําหรับแอปใน Cloud Run

สิ่งที่คุณจะสร้าง

  • เว็บไซต์แบบคงที่ซึ่งทํางานภายในคอนเทนเนอร์ Docker
  • เวอร์ชันของคอนเทนเนอร์นี้อาศัยอยู่ใน Container Registry
  • การติดตั้งใช้งาน Cloud Run สําหรับเว็บไซต์แบบคงที่

สิ่งที่ต้องมี

  • บัญชี Google ที่มีสิทธิ์การเข้าถึงระดับผู้ดูแลระบบเพื่อสร้างโปรเจ็กต์หรือโปรเจ็กต์ที่มีบทบาทเจ้าของโปรเจ็กต์

การตั้งค่าสภาพแวดล้อมด้วยตนเอง

หากยังไม่มีบัญชี Google คุณต้องสร้างบัญชี จากนั้นลงชื่อเข้าใช้ Google Cloud Console แล้วคลิก Project > Create project

จดจํารหัสโปรเจ็กต์ซึ่งจะป้อนโดยอัตโนมัติภายใต้ชื่อโปรเจ็กต์ รหัสโปรเจ็กต์เป็นชื่อที่ไม่ซ้ํากันในโปรเจ็กต์ Google Cloud ทั้งหมด ระบบจึงใช้ชื่อในภาพหน้าจอดังกล่าวแล้วจึงใช้ไม่ได้ ซึ่งจะเรียกภายหลังว่า PROJECT_ID

จากนั้นให้เปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากรของ Google Cloud และเปิดใช้ Cloud Run API

เปิดใช้ Cloud Run API

คลิกเมนูการนําทาง ☰ > API & &;; บริการ> หน้าแดชบอร์ด> เปิดใช้ API และบริการ

ค้นหา "Cloud Run API&&tt; จากนั้นคลิก Cloud Run API> Enable

การเรียกใช้ Codelab นี้ไม่ควรมีค่าใช้จ่ายมากกว่า 2-3 ดอลลาร์ แต่อาจมากกว่านั้นหากคุณตัดสินใจใช้ทรัพยากรเพิ่มเติมหรือปล่อยให้ทรัพยากรทํางาน (ดูการล้างข้อมูลในตอนท้าย) ดูข้อมูลเพิ่มเติมได้ที่ราคา

ผู้ใช้ใหม่ของ Google Cloud มีสิทธิ์รับช่วงทดลองใช้ฟรี $300

Cloud Shell

แม้ว่า Google Cloud และ Cloud Run จะทํางานจากแล็ปท็อปได้จากระยะไกล แต่คุณใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคําสั่งที่ทํางานใน Google Cloud ได้ ระบบจะกําหนดค่าสภาพแวดล้อมไว้ล่วงหน้าด้วยไลบรารีและเฟรมเวิร์กของไคลเอ็นต์ทั้งหมดที่คุณต้องการ

เครื่องเสมือนบน Debian นี้เต็มไปด้วยเครื่องมือการพัฒนาทั้งหมดที่คุณต้องการ โดยมีไดเรกทอรีหน้าแรกขนาด 5 GB ถาวรและทํางานอยู่ใน Google Cloud ซึ่งช่วยปรับปรุงประสิทธิภาพและการตรวจสอบสิทธิ์ของเครือข่ายได้อย่างมาก ซึ่งหมายความว่า เพียงแค่ใช้ Codelab นี้ คุณก็สามารถใช้เบราว์เซอร์ได้ (ใช่บนอุปกรณ์ Chromebook)

หากต้องการเปิดใช้งาน Google Cloud Shell เพียงคลิกปุ่มด้านขวาบนของคอนโซลของนักพัฒนาซอฟต์แวร์ (ใช้เวลาเพียงไม่กี่นาทีในการจัดสรรและเชื่อมต่อกับสภาพแวดล้อม) โดยทําดังนี้

เมื่อเปิดใช้งาน CloudShell

คลิกปุ่ม "เริ่ม Cloud Shell"

Screen Shot 2017-06-14 เวลา 22.13.43 น. (png)

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

gcloud auth list

เอาต์พุตจากคําสั่ง

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
gcloud config list project

เอาต์พุตจากคําสั่ง

[core]
project = <PROJECT_ID>

นอกจากนี้ Cloud Shell จะตั้งค่าตัวแปรสภาพแวดล้อมโดยค่าเริ่มต้นด้วย ซึ่งอาจเป็นประโยชน์เมื่อเรียกใช้คําสั่งในอนาคต

echo $GOOGLE_CLOUD_PROJECT

เอาต์พุตจากคําสั่ง

<PROJECT_ID>

หากไม่ได้ตั้งค่าโปรเจ็กต์ไว้ด้วยเหตุผลบางประการ เพียงใช้คําสั่งต่อไปนี้

gcloud config set project <PROJECT_ID>

กําลังมองหา PROJECT_ID ของคุณอยู่ใช่ไหม โปรดดูรหัสที่คุณใช้ในขั้นตอนการตั้งค่าหรือค้นหาในแดชบอร์ดของคอนโซล

Project_ID.png

ข้อสําคัญ: สุดท้าย กําหนดโซนเริ่มต้นและการกําหนดค่าโปรเจ็กต์ดังนี้

gcloud config set compute/zone us-central1-f

คุณเลือกได้หลายโซน ดูข้อมูลเพิ่มเติมในเอกสารประกอบเกี่ยวกับภูมิภาคและภูมิภาค

เนื่องจากคุณทําให้เว็บไซต์ที่มีอยู่ใช้งานได้ คุณจึงต้องโคลนแหล่งที่มาจากที่เก็บเท่านั้น คุณจึงมุ่งเน้นไปที่การสร้างรูปภาพ Docker และทําให้ใช้งานได้กับ Cloud Run

เรียกใช้คําสั่งต่อไปนี้เพื่อโคลนที่เก็บกับอินสแตนซ์ Cloud Shell และเปลี่ยนเป็นไดเรกทอรีที่เหมาะสม คุณจะต้องติดตั้งทรัพยากร Dependency ของ Node.js ด้วย เพื่อให้สามารถทดสอบแอปก่อนการทําให้ใช้งานได้

cd ~
git clone https://github.com/googlecodelabs/monolith-to-microservices.git
cd ~/monolith-to-microservices
./setup.sh

ซึ่งจะโคลนที่เก็บของคุณ การเปลี่ยนแปลงในไดเรกทอรี และติดตั้งทรัพยากร Dependency ที่จําเป็นเพื่อเรียกใช้แอปของคุณในระบบ อาจใช้เวลา 2-3 นาทีเพื่อให้สคริปต์ทํางาน

ดําเนินการตรวจสอบและทดสอบแอป เรียกใช้คําสั่งต่อไปนี้เพื่อเริ่มต้นเว็บเซิร์ฟเวอร์ของคุณ

cd ~/monolith-to-microservices/monolith
npm start

เอาต์พุต:

Monolith listening on port 8080!

คุณดูตัวอย่างแอปได้โดยคลิกแสดงตัวอย่างเว็บ แล้วเลือกแสดงตัวอย่างในพอร์ต 8080

ซึ่งจะเปิดหน้าต่างใหม่ให้คุณเห็นร้านแฟนซีจริง

คุณปิดหน้าต่างนี้ได้หลังจากดูเว็บไซต์แล้ว หากต้องการหยุดกระบวนการของเว็บเซิร์ฟเวอร์ ให้กด CONTROL+C (Command+C บน Macintosh) ในหน้าต่าง Terminal

ตอนนี้ไฟล์ต้นฉบับของคุณพร้อมใช้งานแล้ว ถึงเวลาแล้วที่เราจะปรับเปลี่ยนแอปของคุณใหม่

โดยปกติคุณจะต้องใช้ 2 ขั้นตอนในการสร้างคอนเทนเนอร์ Docker แล้วพุชไปยังรีจิสทรีเพื่อจัดเก็บอิมเมจของ GKE ให้ดึงออกมา แต่คุณสามารถสร้างชีวิตได้ง่ายขึ้นโดยใช้ Cloud Build เพื่อสร้างคอนเทนเนอร์ Docker และใส่อิมเมจใน Container Registry ด้วยคําสั่งเดียว! หากต้องการดูกระบวนการด้วยตนเองในการสร้าง Dockerfile และพุช โปรดดูคู่มือเริ่มใช้งานฉบับย่อสําหรับ Registry Registry

Cloud Build จะบีบอัดไฟล์จากไดเรกทอรี และย้ายไฟล์ไปยังที่เก็บข้อมูล Cloud Storage จากนั้นกระบวนการบิลด์จะนําไฟล์ทั้งหมดออกจากที่เก็บข้อมูล และใช้ Dockerfile ที่อยู่ในไดเรกทอรีเดียวกันสําหรับการเรียกใช้กระบวนการบิลด์ของ Docker ในกรณีที่คุณระบุแฟล็ก --tag ที่มีโฮสต์เป็น gcr.io สําหรับรูปภาพ Docker รูปภาพ Docker ที่ได้จะพุชไปยังรีจิสทรีคอนเทนเนอร์

ก่อนอื่น โปรดตรวจสอบว่าคุณได้เปิดใช้ Cloud Build API แล้ว ใช้คําสั่งต่อไปนี้เพื่อเปิดใช้

gcloud services enable cloudbuild.googleapis.com

หลังจากเปิดใช้ API แล้ว ให้เรียกใช้คําสั่งต่อไปนี้ใน Cloud Shell เพื่อเริ่มกระบวนการบิลด์

gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:1.0.0 .

กระบวนการดังกล่าวจะใช้เวลา 2-3 นาที แต่หลังจากทําเสร็จสิ้นแล้ว จะมีเอาต์พุตในเทอร์มินัลในลักษณะดังนี้

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ID                                    CREATE_TIME                DURATION  SOURCE                                                                                  IMAGES                              STATUS
1ae295d9-63cb-482c-959b-bc52e9644d53  2019-08-29T01:56:35+00:00  33S       gs://<PROJECT_ID>_cloudbuild/source/1567043793.94-abfd382011724422bf49af1558b894aa.tgz  gcr.io/<PROJECT_ID>/monolith:1.0.0  SUCCESS

หากต้องการดูประวัติบิลด์หรือดูกระบวนการแบบเรียลไทม์ ให้ไปที่ Cloud Console แล้วคลิกเมนูการนําทาง ☰ > Cloud Build > ประวัติการเข้าชม ที่นั่นคุณจะเห็นรายการบิลด์ก่อนหน้าทั้งหมด แต่ควรมีเฉพาะเวอร์ชันที่คุณสร้างขึ้นเท่านั้น

หากคลิกรหัสบิลด์ คุณจะดูรายละเอียดทั้งหมดของบิลด์นั้นรวมถึงเอาต์พุตบันทึกได้ด้วย คุณสามารถดูรูปภาพคอนเทนเนอร์ที่สร้างขึ้นโดยคลิกลิงก์ข้างรูปภาพ

เมื่อคอนเทนเนอร์เว็บไซต์และพุชไปยัง Container Registry แล้ว ก็ถึงเวลาทําให้ Cloud Run ใช้งานได้

การทําให้ใช้งานได้กับ Cloud Run มี 2 วิธีดังนี้

  • Cloud Run (จัดการครบวงจร) คือโมเดล PaaS ที่จัดการอายุการใช้งานคอนเทนเนอร์ทั้งหมด คุณจะใช้แนวทางนี้สําหรับ Codelab นี้
  • Cloud Run สําหรับ Anthos คือ Cloud Run ที่มีการควบคุมเพิ่มเติมซึ่งช่วยให้คุณนําคลัสเตอร์และพ็อดจาก GKE ได้ โปรดดูข้อมูลเพิ่มเติมที่การตั้งค่า Cloud Run สําหรับ Anthos ใน Google Cloud

ตัวอย่างบรรทัดคําสั่งจะอยู่ใน Cloud Shell โดยใช้ตัวแปรสภาพแวดล้อมที่คุณตั้งค่าไว้ก่อนหน้านี้

บรรทัดคำสั่ง

ใช้คําสั่งต่อไปนี้เพื่อทําให้แอปใช้งานได้

gcloud run deploy --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:1.0.0 --platform managed 

ระบบจะขอให้คุณระบุภูมิภาคที่ต้องการเรียกใช้ เลือกภูมิภาคที่อยู่ใกล้คุณที่สุด แล้วยอมรับชื่อบริการที่แนะนําตามค่าเริ่มต้น (โมโนลิธ)

เพื่อวัตถุประสงค์ในการทดสอบ ให้อนุญาตคําขอที่ไม่ได้ตรวจสอบสิทธิ์ไปยังแอป ป้อน y ที่ข้อความแจ้ง

ยืนยันการทําให้ใช้งานได้

หากต้องการยืนยันว่าระบบสร้างการติดตั้งใช้งานสําเร็จแล้ว ให้เรียกใช้คําสั่งต่อไปนี้ อาจใช้เวลาสักครู่เพื่อให้ Pod status เป็น Running

gcloud run services list

เลือก [1] Cloud Run (จัดการครบวงจร)

เอาต์พุต:

SERVICE   REGION    URL  LAST DEPLOYED BY          LAST DEPLOYED AT
✔  monolith  us-east1 <your url>  <your email>  2019-09-16T21:07:38.267Z

เอาต์พุตจะแสดงสิ่งต่างๆ มากมาย คุณสามารถดูการทําให้ใช้งานได้ รวมถึงผู้ใช้ที่ทําให้ใช้งานได้ (ที่อยู่อีเมลของคุณ) และ URL ที่คุณใช้เข้าถึงแอปได้ ดูเหมือนว่าทุกอย่างจะเสร็จสมบูรณ์แล้ว

เปิด URL ที่อยู่ในรายการบริการในเว็บเบราว์เซอร์ และคุณควรเห็นเว็บไซต์เดียวกันกับเว็บไซต์ที่คุณแสดงตัวอย่างในเครื่อง

ในตอนนี้ ให้ทําให้แอปของคุณใช้งานได้อีกครั้ง แต่ครั้งนี้จะปรับพารามิเตอร์ตัวใดตัวหนึ่ง

โดยค่าเริ่มต้น แอป Cloud Run จะมีค่าเกิดขึ้นพร้อมกันเป็น 80 ซึ่งหมายความว่าอินสแตนซ์คอนเทนเนอร์แต่ละรายการจะแสดงคําขอพร้อมกันได้สูงสุด 80 รายการ นั่นคือเวลาออกเดินทางขนาดใหญ่จากฟังก์ชันในรูปแบบบริการ (FaaS) ซึ่งแต่ละอินสแตนซ์จะจัดการคําขอได้ครั้งละ 1 รายการ

ทําให้รูปภาพคอนเทนเนอร์เดียวกันใช้งานได้โดยมีค่าการเกิดขึ้นพร้อมกันของค่า 1 (เฉพาะเพื่อการทดสอบ) และดูว่าเกิดอะไรขึ้น

gcloud run deploy --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:1.0.0 --platform managed --concurrency 1

ตอบคําถามที่ตามมาเช่นเดียวกับครั้งแรก เมื่อคําสั่งสําเร็จแล้ว ให้ตรวจสอบ Cloud Console เพื่อดูผลลัพธ์

คลิกบริการ monolith เพื่อดูรายละเอียดจากแดชบอร์ด Cloud Run

คลิกแท็บการแก้ไข คุณควรเห็นการแก้ไข 2 รายการที่สร้างขึ้น คลิก monolith-00002 แล้วดูรายละเอียด คุณจะเห็นค่าการเกิดขึ้นพร้อมกันลดลงเป็น 1

]

แม้ว่าการกําหนดค่านั้นเพียงพอสําหรับการทดสอบแล้ว แต่ในสถานการณ์การใช้งานส่วนใหญ่ คุณจะมีคอนเทนเนอร์ที่รองรับคําขอหลายรายการพร้อมกัน

ต่อไปนี้ให้คืนค่าการเกิดขึ้นพร้อมกันแบบเดิมโดยไม่ทําให้ใช้งานได้อีกครั้ง คุณสามารถตั้งค่าการเกิดขึ้นพร้อมกันเป็นค่าเริ่มต้นที่ 80 หรือ 0 ซึ่งจะลบข้อจํากัดการเกิดขึ้นพร้อมกันออกไป และตั้งเป็นค่าเริ่มต้นสูงสุด (ซึ่งคือ 80 ครั้งที่เขียน)

เรียกใช้คําสั่งต่อไปนี้ใน Cloud Shell เพื่ออัปเดตการแก้ไขปัจจุบัน

gcloud run deploy --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:1.0.0 --platform managed --concurrency 80

โปรดสังเกตว่ามีการสร้างการแก้ไขอื่น เปลี่ยนเส้นทางการเข้าชม และเกิดขึ้นพร้อมกันทั้ง 80 รายการ

ทีมการตลาดขอให้คุณเปลี่ยนหน้าแรกของเว็บไซต์บริษัท เราคิดว่ารูปภาพควรให้ข้อมูลมากกว่าว่าบริษัทคืออะไรและขายอะไร ในส่วนนี้ คุณจะได้เพิ่มข้อความลงในหน้าแรกเพื่อให้ทีมการตลาดพึงพอใจ

ดูเหมือนว่านักพัฒนาซอฟต์แวร์ของคุณจะสร้างการเปลี่ยนแปลงโดยใช้ชื่อไฟล์ index.js.new แล้ว คุณเพียงแค่คัดลอกไฟล์ไปยัง index.js แล้วการเปลี่ยนแปลงของคุณควรจะมีผล ทําตามคําแนะนําเพื่อทําการเปลี่ยนแปลงที่เหมาะสม

เรียกใช้คําสั่งต่อไปนี้ คัดลอกไฟล์ที่อัปเดตไปยังชื่อไฟล์ที่ถูกต้อง และพิมพ์เนื้อหาเพื่อยืนยันการเปลี่ยนแปลง

cd ~/monolith-to-microservices/react-app/src/pages/Home
mv index.js.new index.js
cat ~/monolith-to-microservices/react-app/src/pages/Home/index.js

โค้ดที่ได้ควรมีลักษณะดังนี้

/*
Copyright 2019 Google LLC

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

import React from "react";
import { makeStyles } from "@material-ui/core/styles";
import Paper from "@material-ui/core/Paper";
import Typography from "@material-ui/core/Typography";
const useStyles = makeStyles(theme => ({
  root: {
    flexGrow: 1
  },
  paper: {
    width: "800px",
    margin: "0 auto",
    padding: theme.spacing(3, 2)
  }
}));
export default function Home() {
  const classes = useStyles();
  return (
    <div className={classes.root}>
      <Paper className={classes.paper}>
        <Typography variant="h5">
          Fancy Fashion &amp; Style Online
        </Typography>
        <br />
        <Typography variant="body1">
          Tired of mainstream fashion ideas, popular trends and societal norms?
          This line of lifestyle products will help you catch up with the Fancy trend and express your personal style.
          Start shopping Fancy items now!
        </Typography>
      </Paper>
    </div>
  );
}

คุณได้อัปเดตคอมโพเนนต์ React แล้ว แต่ต้องสร้างแอป React เพื่อสร้างไฟล์แบบคงที่ เรียกใช้คําสั่งต่อไปนี้เพื่อสร้างแอป React และคัดลอกลงในไดเรกทอรีสาธารณะแบบโมโนลิธ

cd ~/monolith-to-microservices/react-app
npm run build:monolith

เมื่อระบบอัปเดตโค้ดแล้ว คุณจะต้องสร้างคอนเทนเนอร์ Docker ใหม่และเผยแพร่ลงใน Container Registry คุณใช้คําสั่งเดียวกันกับก่อนหน้านี้ได้ ยกเว้นครั้งนี้คุณจะอัปเดตป้ายกํากับเวอร์ชัน

เรียกใช้คําสั่งต่อไปนี้เพื่อทริกเกอร์ Cloud Build ใหม่ที่มีรูปภาพเวอร์ชันอัปเดต 2.0.0

cd ~/monolith-to-microservices/monolith

#Feel free to test your application
npm start

gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:2.0.0 .

ในส่วนถัดไป คุณจะได้ใช้รูปภาพดังกล่าวเพื่ออัปเดตแอปที่ไม่มีช่วงพัก

การเปลี่ยนแปลงเสร็จสมบูรณ์แล้วและทีมการตลาดก็พอใจกับการอัปเดตของคุณ ถึงเวลาอัปเดตเว็บไซต์โดยไม่รบกวนผู้ใช้

Cloud Run จะถือว่าการทําให้ใช้งานได้แต่ละรายการเป็นการแก้ไขใหม่ ซึ่งจะแสดงทางออนไลน์และเปลี่ยนเส้นทางการเข้าชมไปยังการติดตั้งใช้งาน

ทําตามวิธีการชุดถัดไปเพื่ออัปเดตเว็บไซต์

บรรทัดคำสั่ง

คุณทําให้บริการใช้งานได้อีกครั้งเพื่ออัปเดตรูปภาพเป็นเวอร์ชันใหม่ได้โดยใช้บรรทัดคําสั่งนี้

gcloud run deploy --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:2.0.0 --platform managed

ยืนยันการทําให้ใช้งานได้

ตรวจสอบการอัปเดตการติดตั้งใช้งานโดยเรียกใช้คําสั่งต่อไปนี้

gcloud run services describe monolith --platform managed 

เอาต์พุตจะมีลักษณะดังนี้

apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
  annotations:
    client.knative.dev/user-image: gcr.io/my-cloudrun-codelab/monolith:2.0.0
...

คุณจะเห็นว่าบริการของคุณกําลังใช้รูปภาพเวอร์ชันล่าสุดที่นําไปใช้ในการแก้ไขใหม่

หากต้องการยืนยันการเปลี่ยนแปลง ให้ไปที่ URL ภายนอกของบริการ Cloud Run อีกครั้ง และสังเกตเห็นว่าแอปได้รับการอัปเดตแล้ว

เรียกใช้คําสั่งต่อไปนี้เพื่อแสดงรายการบริการและดูที่อยู่ IP หากคุณลืม

gcloud run services list

ตอนนี้เว็บไซต์ของคุณควรแสดงข้อความที่คุณเพิ่มไว้ในคอมโพเนนต์หน้าแรกแล้ว

ลบรูปภาพรีจิสทรีคอนเทนเนอร์

# Delete the container image for version 1.0.0 of our monolith
gcloud container images delete gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:1.0.0 --quiet

# Delete the container image for version 2.0.0 of our monolith
gcloud container images delete gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:2.0.0 --quiet

ลบอาร์ติแฟกต์ของ Cloud Build จาก Cloud Storage

# The following command will take all source archives from all builds and delete them from cloud storage

# Run this command to print all sources:
# gcloud builds list | awk 'NR > 1 {print $4}' 

gcloud builds list | awk 'NR > 1 {print $4}' | while read line; do gsutil rm $line; done

ลบบริการ Cloud Run

gcloud run services delete monolith --platform managed

คุณใช้งาน ปรับขนาด และอัปเดตเว็บไซต์ด้วย Cloud Run แล้ว

ดูข้อมูลเพิ่มเติม