Tutorial ini menunjukkan cara men-deploy aplikasi dalam container menggunakan layanan Cloud Run terautentikasi yang menerima peristiwa menggunakan Pub/Sub. Pub/Sub adalah layanan pesan real-time terkelola sepenuhnya yang memungkinkan Anda mengirim dan menerima pesan antar-aplikasi independen.
Membuat repositori standar Artifact Registry
Buat repositori standar Artifact Registry untuk menyimpan image container Anda:
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=$REGION
Ganti REPOSITORY
dengan nama unik untuk
repositori.
Men-deploy penerima peristiwa ke Cloud Run
Deploy layanan Cloud Run yang mencatat konten peristiwa ke dalam log.
Buat clone repositori GitHub:
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Atau, Anda dapat mendownload contoh dalam file ZIP dan mengekstraknya.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Atau, Anda dapat mendownload contoh dalam file ZIP dan mengekstraknya.
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
Atau, Anda dapat mendownload contoh dalam file ZIP dan mengekstraknya.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Atau, Anda dapat mendownload contoh sebagai file ZIP dan mengekstraknya.
Ruby
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git
Atau, Anda dapat mendownload contoh sebagai file ZIP dan mengekstraknya.
C#
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git
Atau, Anda dapat mendownload contoh sebagai file ZIP dan mengekstraknya.
Ubah ke direktori yang berisi kode contoh Cloud Run:
Node.js
cd nodejs-docs-samples/eventarc/pubsub/
Python
cd python-docs-samples/eventarc/pubsub/
Go
cd golang-samples/eventarc/pubsub/
Java
cd java-docs-samples/eventarc/pubsub/
Ruby
cd ruby-docs-samples/eventarc/pubsub/
C#
cd dotnet-docs-samples/eventarc/pubsub/
Build container dan upload ke Cloud Build:
gcloud builds submit --tag $REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/trigger-pubsub:v1
Men-deploy image container ke Cloud Run
gcloud run deploy ${SERVICE_NAME} \ --image $REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/trigger-pubsub:v1
Pada perintah Allow unauthenticated invocations to trigger-pubsub (y/N)?, respons
n
dengan "No".
Jika Anda melihat URL layanan Cloud Run, berarti deployment telah selesai.
Membuat pemicu Eventarc
Saat pesan dipublikasikan ke topik Pub/Sub, peristiwa memicu layanan Cloud Run.
Buat pemicu untuk memproses pesan Pub/Sub:
Topik pub/sub baru
gcloud eventarc triggers create ${SERVICE_NAME} \ --destination-run-service=${SERVICE_NAME} \ --destination-run-region=${REGION} \ --location=${REGION} \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \ --service-account=PROJECT_NUMBER-compute@developer.gserviceaccount.com
Tindakan ini akan membuat topik Pub/Sub baru dan pemicu untuk topik tersebut yang disebut
trigger-pubsub
.Topik Pub/Sub yang ada
gcloud eventarc triggers create ${SERVICE_NAME} \ --destination-run-service=${SERVICE_NAME} \ --destination-run-region=${REGION} \ --location=${REGION} \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \ --transport-topic=projects/PROJECT_ID/topics/TOPIC_ID \ --service-account=PROJECT_NUMBER-compute@developer.gserviceaccount.com
Ganti kode berikut:
PROJECT_ID
: Google Cloud project ID AndaTOPIC_ID
: ID topik Pub/Sub yang ada
Tindakan ini akan membuat pemicu yang disebut
trigger-pubsub
untuk topik Pub/Sub yang ada.Perhatikan bahwa saat membuat pemicu Eventarc untuk pertama kalinya dalam project Google Cloud , mungkin akan ada penundaan dalam penyediaan agen layanan Eventarc. Masalah ini biasanya dapat diatasi dengan mencoba membuat ulang pemicu. Untuk mengetahui informasi selengkapnya, lihat Error izin ditolak.
Konfirmasi bahwa pemicu telah berhasil dibuat. Perhatikan bahwa meskipun pemicu Anda langsung dibuat, diperlukan waktu hingga dua menit agar pemicu berfungsi sepenuhnya.
gcloud eventarc triggers list --location=${REGION}
Status pemicu yang ditampilkan harus
ACTIVE: Yes
.
Membuat dan melihat peristiwa
Publikasikan pesan ke topik Pub/Sub untuk membuat peristiwa dan memicu layanan Cloud Run. Layanan Cloud Run mencatat pesan di log layanan.
Cari dan tetapkan topik Pub/Sub sebagai variabel lingkungan:
export TOPIC_ID=$(gcloud eventarc triggers describe ${SERVICE_NAME} \ --format='value(transport.pubsub.topic)')
Kirim pesan ke topik Pub/Sub untuk membuat peristiwa:
gcloud pubsub topics publish $TOPIC_ID --message "Hello there"
Peristiwa dikirim ke layanan Cloud Run, yang mencatat pesan peristiwa.
Lihat entri log terkait peristiwa yang dibuat oleh layanan Anda:
gcloud logging read 'textPayload: "Hello there!"'
Entri log akan terlihat seperti berikut:
textPayload: 'Hello, Hello there!'
Log mungkin memerlukan waktu beberapa saat untuk ditampilkan. Jika Anda tidak melihatnya, periksa lagi setelah satu menit.