เจาะลึก Artifact Registry

1. ภาพรวม

เนื่องจากเป็นการพัฒนาของ Container Registry ทำให้ Artifact Registry เป็นจุดเดียวสำหรับองค์กรของคุณในการจัดการอิมเมจคอนเทนเนอร์และแพ็กเกจภาษา (เช่น Maven และ NPM) โดยผสานรวมกับเครื่องมือและรันไทม์ของ Google Cloud อย่างเต็มรูปแบบ รวมถึงรองรับการจัดการทรัพยากรตามภาษาเพื่อใช้กับเครื่องมือต่างๆ เช่น npm และ Maven ซึ่งช่วยให้คุณผสานรวมเครื่องมือ CI/CD เข้ากับเครื่องมือ CI/CD เพื่อตั้งค่าไปป์ไลน์อัตโนมัติได้อย่างง่ายดาย

ห้องทดลองนี้จะแนะนำฟีเจอร์บางอย่างที่มีอยู่ในที่เก็บอาร์ติแฟกต์

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

วัตถุประสงค์การเรียนรู้ของห้องทดลองนี้คืออะไร

  • สร้างที่เก็บสำหรับคอนเทนเนอร์และแพ็กเกจภาษา
  • จัดการอิมเมจคอนเทนเนอร์ด้วย Artifact Registry
  • ผสานรวม Artifact Registry กับโค้ดระบบคลาวด์
  • กำหนดค่า Maven ให้ใช้ Artifact Registry สําหรับการอ้างอิง Java

2. การตั้งค่าและข้อกําหนด

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

  1. ลงชื่อเข้าใช้ Google Cloud Console แล้วสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ เป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้และคุณอัปเดตได้ทุกเมื่อ
  • รหัสโปรเจ็กต์ต้องไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมดและจะเปลี่ยนแปลงไม่ได้ (เปลี่ยนแปลงไม่ได้หลังจากตั้งค่าแล้ว) Cloud Console จะสร้างสตริงที่ไม่ซ้ำกันขึ้นมาโดยอัตโนมัติ ซึ่งโดยมากคุณไม่สนใจก็ได้ว่านี่คืออะไร ใน Codelab ส่วนใหญ่คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (และมักจะระบุเป็น PROJECT_ID) ดังนั้นหากคุณไม่ชอบรหัสนี้จะสุ่มขึ้นมาอีก 1 รหัส หรือคุณจะลองใช้รหัสของคุณเองแล้วดูว่าใช้ได้หรือไม่ จากนั้นระบบจะ "หยุด" โปรเจ็กต์ไว้หลังจากสร้างโปรเจ็กต์แล้ว
  • ค่าที่ 3 คือหมายเลขโปรเจ็กต์ที่ API บางรายการใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 รายการนี้ได้ในเอกสารประกอบ
  1. ถัดไป คุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำงานในโค้ดแล็บนี้แทบจะไม่เสียค่าใช้จ่ายใดๆ เลย หากต้องการปิดใช้ทรัพยากรเพื่อไม่ให้มีการเรียกเก็บเงินหลังจากบทแนะนำนี้ ให้ทําตามวิธีการ "ล้างข้อมูล" ที่แสดงอยู่ท้าย Codelab ผู้ใช้ใหม่ของ Google Cloud มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD

ตั้งค่า gcloud

ใน Cloud Shell ให้ตั้งค่ารหัสโปรเจ็กต์และหมายเลขโปรเจ็กต์ บันทึกเป็นตัวแปร PROJECT_ID และ PROJECT_NUMBER

export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')

เปิดใช้บริการของ Google

gcloud services enable \
  cloudresourcemanager.googleapis.com \
  container.googleapis.com \
  artifactregistry.googleapis.com \
  containerregistry.googleapis.com \
  containerscanning.googleapis.com

รับซอร์สโค้ด

ซอร์สโค้ดของห้องทดลองนี้อยู่ในองค์กร GoogleCloudPlatform บน GitHub โคลนไฟล์ด้วยคำสั่งด้านล่างแล้วเปลี่ยนเป็นไดเรกทอรี

git clone https://github.com/GoogleCloudPlatform/cloud-code-samples/

จัดสรรโครงสร้างพื้นฐานที่ใช้ในห้องทดลองนี้

คุณจะทำให้โค้ดใช้งานได้กับ GKE ในห้องทดลองนี้ สคริปต์การตั้งค่าด้านล่างจะเตรียมโครงสร้างพื้นฐานนี้ให้คุณ

gcloud container clusters create container-dev-cluster --zone=us-central1-b

3. การทำงานกับอิมเมจคอนเทนเนอร์

สร้างที่เก็บ Docker ใน Artifact Registry

Artifact Registry รองรับการจัดการอิมเมจคอนเทนเนอร์และแพ็กเกจภาษา อาร์ติแฟกต์แต่ละประเภทมีข้อกำหนดที่แตกต่างกัน เช่น คำขอสำหรับ Dependency ของ Maven จะแตกต่างจากคำขอสำหรับ Dependency ของ Node

Artifact Registry จำเป็นต้องทราบว่าคุณต้องการให้การตอบกลับ API ใช้รูปแบบใดเพื่อรองรับข้อกำหนด API ที่แตกต่างกัน โดยคุณจะสร้างที่เก็บและส่ง Flag --repository-format ที่ระบุประเภทที่เก็บที่ต้องการ

จาก Cloud Shell ให้เรียกใช้คําสั่งต่อไปนี้เพื่อสร้างที่เก็บสำหรับอิมเมจ Docker

gcloud artifacts repositories create container-dev-repo --repository-format=docker \
--location=us-central1 --description="Docker repository for Container Dev Workshop"

คลิก "ให้สิทธิ์" หากข้อความแจ้งการให้สิทธิ์ Cloud Shell ปรากฏขึ้น

ไปที่ Google Cloud Console - Artifact Registry - Repositories และสังเกตที่เก็บ Docker ที่สร้างใหม่ชื่อ container-dev-repo หากคลิก คุณจะเห็นว่าตอนนี้ว่างเปล่า

กำหนดค่าการตรวจสอบสิทธิ์ Docker ไปยัง Artifact Registry

เมื่อเชื่อมต่อกับ Artifact Registry คุณต้องใช้ข้อมูลเข้าสู่ระบบเพื่อให้สิทธิ์เข้าถึง คุณกำหนดค่า Docker ให้ใช้ข้อมูลเข้าสู่ระบบ gcloud ได้อย่างราบรื่นแทนการตั้งค่าข้อมูลเข้าสู่ระบบแยกต่างหากได้

จาก Cloud Shell ให้เรียกใช้คําสั่งต่อไปนี้เพื่อกําหนดค่า Docker ให้ใช้ CLI ของ Google Cloud เพื่อตรวจสอบสิทธิ์คําขอไปยัง Artifact Registry ในภูมิภาค us-central1

gcloud auth configure-docker us-central1-docker.pkg.dev

คำสั่งจะแสดงข้อความให้ยืนยันเพื่อเปลี่ยนการกำหนดค่า Docker ของ Cloud Shell แล้วกด Enter

สำรวจแอปพลิเคชันตัวอย่าง

ตัวอย่างแอปพลิเคชันจะอยู่ในที่เก็บ Git ที่คุณโคลนไว้ในขั้นตอนก่อนหน้า เปลี่ยนเป็นไดเรกทอรี java และตรวจสอบโค้ดแอปพลิเคชัน

cd cloud-code-samples/java/java-hello-world

โฟลเดอร์นี้มีตัวอย่างแอปพลิเคชัน Java ที่แสดงผลหน้าเว็บอย่างง่าย นอกจากไฟล์ต่างๆ ที่ไม่เกี่ยวข้องกับห้องทดลองนี้ โฟลเดอร์ยังมีซอร์สโค้ดอยู่ในโฟลเดอร์ src และ Dockerfile ที่เราจะใช้สร้างอิมเมจคอนเทนเนอร์ในเครื่อง

สร้างอิมเมจคอนเทนเนอร์

คุณจะต้องสร้างอิมเมจคอนเทนเนอร์ใน Artifact Registry ก่อนจึงจะจัดเก็บได้

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

docker build -t us-central1-docker.pkg.dev/$PROJECT_ID/container-dev-repo/java-hello-world:tag1 .

พุชอิมเมจคอนเทนเนอร์ไปยัง Artifact Registry

เรียกใช้คำสั่งต่อไปนี้เพื่อพุชอิมเมจคอนเทนเนอร์ไปยังที่เก็บข้อมูลที่สร้างขึ้นก่อนหน้านี้

docker push us-central1-docker.pkg.dev/$PROJECT_ID/container-dev-repo/java-hello-world:tag1

ตรวจสอบอิมเมจใน Artifact Registry

ไปที่ Cloud Console - Artifact Registry - Repositories ของ Google. คลิก container-dev-repo แล้วตรวจสอบว่ามีอิมเมจ java-hello-world อยู่ คลิกรูปภาพและดูรูปภาพที่ติดแท็ก tag1 คุณจะเห็นการสแกนช่องโหว่ที่ทำงานอยู่หรือเสร็จสิ้นแล้ว และจะเห็นจำนวนช่องโหว่ที่ตรวจพบ

9cb46d3689b3ed2.png

คลิกจำนวนช่องโหว่ แล้วคุณจะเห็นรายการช่องโหว่ที่ตรวจพบในรูปภาพ พร้อมชื่อกระดานข่าวสาร CVE และความรุนแรง คุณสามารถคลิก "ดู" บนช่องโหว่แต่ละรายการที่แสดงเพื่อดูรายละเอียดเพิ่มเติม

2b17e9d26d9dd7ea.png

4. การผสานรวมกับ Cloud Code

ในส่วนนี้ คุณจะได้ทราบวิธีใช้ที่เก็บอิมเมจ Docker ของ Artifact Registry กับ Cloud Code

ทำให้แอปพลิเคชันใช้งานได้ในคลัสเตอร์ GKE จาก Cloud Code

เรียกใช้คำสั่งต่อไปนี้จากโฟลเดอร์ java-hello-world เพื่อเปิด Cloud Shell Editor และเพิ่มโฟลเดอร์แอปพลิเคชันลงในพื้นที่ทํางาน

cloudshell workspace .

ตัวแก้ไข Cloud Shell จะเปิดขึ้นพร้อมตัวสำรวจในโฟลเดอร์แอปพลิเคชัน

หากได้รับป๊อปอัปที่ขอให้ยกเว้นไฟล์การตั้งค่าโปรเจ็กต์ Java ออกจากพื้นที่ทำงาน ให้คลิก Exclude in workspace

ขั้นตอนต่อไปนี้จะกำหนดให้คุณป้อนตำแหน่งที่เก็บข้อมูล Artifact Registry รูปแบบของสถานที่ตั้งมีดังนี้

us-central1-docker.pkg.dev/<PROJECT_ID>/container-dev-repo

หากต้องการค้นหา PROJECT_ID ให้เรียกใช้คําสั่งต่อไปนี้ในเทอร์มินัล

gcloud config get project

คลิกแถบสถานะของ Cloud Code (ที่มุมล่างซ้าย) แล้วเลือก Run on Kubernetes

e6e2b06467228e18.png

เมื่อได้รับข้อความแจ้ง ให้เลือก Yes เพื่อใช้บริบทปัจจุบันใน kubeconfig ที่ชี้ไปยังคลัสเตอร์ GKE container-dev-cluster ที่เตรียมไว้สําหรับห้องทดลอง

ในพรอมต์สำหรับรีจิสทรีรูปภาพ ให้ใส่ตำแหน่งที่อยู่ที่คุณพบก่อนหน้านี้ อย่าลืมแทนที่ <PROJECT_ID> ด้วยค่าจริง

us-central1-docker.pkg.dev/<PROJECT_ID>/container-dev-repo

เมื่อเรียกใช้ "เรียกใช้บน Kubernetes" เป็นครั้งแรก Cloud Code จะแจ้งให้คุณระบุตำแหน่งที่เก็บข้อมูลรูปภาพเป้าหมาย เมื่อระบุแล้ว ระบบจะจัดเก็บ URL ของที่เก็บไว้ในไฟล์ .vscode/launch.json ซึ่งสร้างขึ้นในโฟลเดอร์แอปพลิเคชัน

ในแผงเอาต์พุต คุณจะเห็นการเริ่มสร้างสำหรับรูปภาพแอปพลิเคชัน java-hello-world, ระบบจะอัปโหลดรูปภาพไปยังที่เก็บ Artifact Registry ที่กําหนดค่าไว้ก่อนหน้านี้

ไปที่ Cloud Console - Artifact Registry - Repositories คลิก container-dev-repo แล้วตรวจสอบว่ารูปภาพ java-hello-world และติดแท็กรูปภาพใหม่latest

ตรวจสอบแอปพลิเคชันที่ทำให้ใช้งานได้แล้ว

กลับไปที่ Cloud Shell Editor: เมื่อการทำให้ใช้งานได้เสร็จสมบูรณ์แล้ว Skaffold/Cloud Code จะพิมพ์ URL ที่เปิดเผยซึ่งมีการส่งต่อบริการแล้ว คลิกลิงก์ - เปิดตัวอย่างเว็บ:

33257a43826b88ff.png

ในหน้าต่างเบราว์เซอร์ใหม่ คุณจะเห็นหน้าแอป Hello World

d3e49693b0383a5d.png

อัปเดตโค้ดแอปพลิเคชัน

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

เปิด HelloWorldController.java ในโฟลเดอร์ src/main/java/cloudcode/helloworld/web ใน Cloud Shell Editor

เปลี่ยนข้อความในแถว 20 จาก "ข้อความทำงานอยู่" เป็น "มีการอัปเดตแล้ว" คุณควรจะเห็นขั้นตอนการสร้างและการทำให้ใช้งานได้เริ่มต้นขึ้นทันที

เมื่อสิ้นสุดการทำให้ใช้งานได้ ให้คลิก URL ที่ส่งต่ออีกครั้ง หรือรีเฟรชหน้าต่างเบราว์เซอร์ด้วยแอปพลิเคชันเพื่อดูการนำการเปลี่ยนแปลงไปใช้ ดังนี้

41787b1da54ff137.png

ไปที่ Cloud Console - Artifact Registry - Repositories อีกครั้ง คลิก container-dev-repo แล้วตรวจสอบว่ามีรูปภาพ java-hello-world และบันทึกรูปภาพใหม่

5. การทำงานกับแพ็กเกจภาษา

ในส่วนนี้ คุณจะได้ทราบถึงวิธีตั้งค่าที่เก็บ Artifact Registry Java และอัปโหลดแพ็กเกจไปยังที่เก็บดังกล่าว โดยใช้ประโยชน์จากที่เก็บดังกล่าวในแอปพลิเคชันต่างๆ

สร้างที่เก็บแพ็กเกจ Java

จาก Cloud Shell ให้เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างที่เก็บสำหรับอาร์ติแฟกต์ Java

gcloud artifacts repositories create container-dev-java-repo \
    --repository-format=maven \
    --location=us-central1 \
    --description="Java package repository for Container Dev Workshop"

คลิก "ให้สิทธิ์" หากข้อความแจ้งการให้สิทธิ์ Cloud Shell ปรากฏขึ้น

ไปที่ Google Cloud Console - Artifact Registry - Repositories และสังเกตที่เก็บ Maven ที่สร้างขึ้นใหม่ชื่อ container-dev-java-repo เมื่อคลิกที่เก็บนี้ คุณจะเห็นว่ามันว่างเปล่าในขณะนี้

ตั้งค่าการตรวจสอบสิทธิ์กับที่เก็บอาร์ติแฟกต์

ใช้คำสั่งต่อไปนี้เพื่ออัปเดตตำแหน่งที่รู้จักสำหรับข้อมูลรับรองเริ่มต้นของแอปพลิเคชัน (ADC) ด้วยข้อมูลเข้าสู่ระบบของบัญชีผู้ใช้ เพื่อให้ผู้ช่วยข้อมูลเข้าสู่ระบบ Artifact Registry สามารถตรวจสอบสิทธิ์การใช้ตำแหน่งดังกล่าวเมื่อเชื่อมต่อกับที่เก็บ

gcloud auth login --update-adc

กำหนดค่า Maven สำหรับ Artifact Registry

เรียกใช้คำสั่งต่อไปนี้เพื่อพิมพ์การกำหนดค่าที่เก็บเพื่อเพิ่มในโปรเจ็กต์ Java

gcloud artifacts print-settings mvn \
    --repository=container-dev-java-repo \
    --location=us-central1

เปิด pom.xml ใน Cloud Shell Editor แล้วเพิ่มการตั้งค่าที่แสดงผลลงในส่วนที่เหมาะสมในไฟล์

อัปเดตส่วน distributionManagement

<distributionManagement>
   <snapshotRepository>
     <id>artifact-registry</id>
     <url>artifactregistry://us-central1-maven.pkg.dev/<PROJECT>/container-dev-java-repo</url>
   </snapshotRepository>
   <repository>
     <id>artifact-registry</id>
     <url>artifactregistry://us-central1-maven.pkg.dev/<PROJECT>/container-dev-java-repo</url>
   </repository>
</distributionManagement>

อัปเดตส่วน repositories

 <repositories>
   <repository>
     <id>artifact-registry</id>
     <url>artifactregistry://us-central1-maven.pkg.dev/<PROJECT>/container-dev-java-repo</url>
     <releases>
       <enabled>true</enabled>
     </releases>
     <snapshots>
       <enabled>true</enabled>
     </snapshots>
   </repository>
 </repositories>

อัปเดตส่วนขยาย

<extensions>
     <extension>
       <groupId>com.google.cloud.artifactregistry</groupId>
       <artifactId>artifactregistry-maven-wagon</artifactId>
       <version>2.1.0</version>
     </extension>
   </extensions>

ต่อไปนี้คือตัวอย่างไฟล์ที่สมบูรณ์สำหรับใช้อ้างอิง อย่าลืมแทนที่ <PROJECT> ด้วยรหัสโปรเจ็กต์ของคุณ

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 
 <artifactId>hello-world</artifactId>
 <packaging>jar</packaging>
 <name>Cloud Code Hello World</name>
 <description>Getting started with Cloud Code</description>
 <version>1.0.0</version>
<distributionManagement>
   <snapshotRepository>
     <id>artifact-registry</id>
     <url>artifactregistry://us-central1-maven.pkg.dev/<PROJECT>/container-dev-java-repo</url>
   </snapshotRepository>
   <repository>
     <id>artifact-registry</id>
     <url>artifactregistry://us-central1-maven.pkg.dev/<PROJECT>/container-dev-java-repo</url>
   </repository>
 </distributionManagement>
 
 <repositories>
   <repository>
     <id>artifact-registry</id>
     <url>artifactregistry://us-central1-maven.pkg.dev/<PROJECT>/container-dev-java-repo</url>
     <releases>
       <enabled>true</enabled>
     </releases>
     <snapshots>
       <enabled>true</enabled>
     </snapshots>
   </repository>
 </repositories>
 
 <parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.6.3</version>
 </parent>
 
 <properties>
   <java.version>1.8</java.version>
   <checkstyle.config.location>./checkstyle.xml</checkstyle.config.location>
 </properties>
 
 <build>
   <plugins>
     <plugin>
       <groupId>com.google.cloud.tools</groupId>
       <artifactId>jib-maven-plugin</artifactId>
       <version>3.2.0</version>
     </plugin>
     <plugin>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-maven-plugin</artifactId>
     </plugin>
     <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-checkstyle-plugin</artifactId>
       <version>3.1.2</version>
     </plugin>
   </plugins>
   <extensions>
     <extension>
       <groupId>com.google.cloud.artifactregistry</groupId>
       <artifactId>artifactregistry-maven-wagon</artifactId>
       <version>2.1.0</version>
     </extension>
   </extensions>
 </build>
 
 <!-- The Spring Cloud GCP BOM will manage spring-cloud-gcp version numbers for you. -->
 <dependencyManagement>
   <dependencies>
     <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-gcp-dependencies</artifactId>
       <version>1.2.8.RELEASE</version>
       <type>pom</type>
       <scope>import</scope>
     </dependency>
   </dependencies>
 </dependencyManagement>
  
 <dependencies>
 
   <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter</artifactId>
   </dependency>
 
   <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-jetty</artifactId>
   </dependency>
 
   <dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-webmvc</artifactId>
   </dependency>
 
   <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-thymeleaf</artifactId>
   </dependency>
 
   <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-test</artifactId>
     <scope>test</scope>
   </dependency>
 
   <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-gcp-starter-logging</artifactId>
   </dependency>
      
 </dependencies>
 
</project>

อัปโหลดแพ็กเกจ Java ไปยัง Artifact Registry

เมื่อกำหนดค่า Artifact Registry ใน Maven แล้ว คุณจะใช้ Artifact Registry เพื่อจัดเก็บไฟล์ Java Jar ไว้ให้โปรเจ็กต์อื่นๆ ในองค์กรของคุณใช้ได้

เรียกใช้คำสั่งต่อไปนี้เพื่ออัปโหลดแพ็กเกจ Java ไปยัง Artifact Registry

mvn deploy

ตรวจสอบแพ็กเกจ Java ใน Artifact Registry

ไปที่ Cloud Console - Artifact Registry - Repositories คลิก container-dev-java-repo แล้วตรวจสอบว่ามีอาร์ติแฟกต์ไบนารี hello-world อยู่

e348d976ac1ac107.png

6. ยินดีด้วย

ยินดีด้วย คุณทำ Codelab เสร็จแล้ว

สิ่งที่คุณได้ครอบคลุม

  • สร้างที่เก็บสำหรับคอนเทนเนอร์และแพ็กเกจภาษาแล้ว
  • อิมเมจคอนเทนเนอร์ที่มีการจัดการด้วย Artifact Registry
  • Artifact Registry ที่ผสานรวมกับ Cloud Code
  • กำหนดค่า Maven ให้ใช้ Artifact Registry สําหรับการอ้างอิง Java

ล้างข้อมูล

เรียกใช้คำสั่งต่อไปนี้เพื่อลบโปรเจ็กต์

gcloud projects delete $PROJECT_ID