Tutorial ini menunjukkan cara men-deploy layanan Cloud Run terautentikasi yang menerima peristiwa dari Cloud Storage menggunakan Cloud Audit Logs. Gunakan tutorial ini untuk men-deploy workload produksi. Pemicu Eventarc memfilter peristiwa berdasarkan entri Cloud Audit Logs. Untuk mengetahui informasi selengkapnya, lihat Menentukan filter peristiwa untuk Cloud Audit Logs.
Anda dapat menyelesaikan tutorial ini menggunakan konsol Google Cloud atau Google Cloud CLI.
Membuat repositori standar Artifact Registry
Buat repositori standar Artifact Registry untuk menyimpan image container Anda.Konsol
- Di konsol Google Cloud , buka halaman Repositories.
- Klik Buat repositori.
- Konfigurasi repositori Anda:
- Masukkan Nama yang unik.
- Untuk Format, pilih Docker.
- Untuk Mode, pilih Standard.
- Untuk Jenis lokasi, pilih Region.
- Di daftar Region, pilih us-central1 (Iowa).
- Setujui setelan default lainnya, lalu klik Create.
gcloud
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=$REGION
Ganti REPOSITORY
dengan nama unik untuk repositori Artifact Registry.
Membuat bucket Cloud Storage
Tutorial ini menggunakan Cloud Storage sebagai sumber peristiwa. Untuk membuat bucket penyimpanan:
Konsol
- Di konsol Google Cloud , buka halaman Buckets.
- Klik Create bucket.
- Masukkan informasi bucket Anda, lalu klik Lanjutkan untuk menyelesaikan setiap langkah:
- Masukkan Nama yang unik. Contoh,
eventarcbucket
. - Pilih Region sebagai Jenis Lokasi.
- Pilih us-central1 (Iowa) sebagai Location.
- Pilih Standard untuk default storage class.
- Pilih Seragam untuk Kontrol akses.
- Masukkan Nama yang unik. Contoh,
- Klik Buat.
gcloud
gcloud storage buckets create gs://events-tutorial-PROJECT_ID/ --location=$REGION
Setelah sumber peristiwa dibuat, Anda dapat men-deploy layanan penerima peristiwa di Cloud Run.
Men-deploy layanan penerima peristiwa ke Cloud Run
Deploy layanan Cloud Run yang menerima dan mencatat peristiwa ke dalam log. Untuk men-deploy layanan penerima peristiwa sampel:
Konsol
- Clone repositori contoh ke akun GitHub Anda:
- Di GitHub, buka GoogleCloudPlatform/golang-samples
- Klik Fork.
- Jika diminta, pilih lokasi tempat Anda ingin membuat fork repositori.
- Di GitHub, buka GoogleCloudPlatform/java-docs-samples.
- Klik Fork.
- Jika diminta, pilih lokasi tempat Anda ingin membuat fork repositori.
- Di GitHub, buka GoogleCloudPlatform/dotnet-docs-samples.
- Klik Fork.
- Jika diminta, pilih lokasi tempat Anda ingin membuat fork repositori.
- Di GitHub, buka GoogleCloudPlatform/nodejs-docs-samples.
- Klik Fork.
- Jika diminta, pilih lokasi tempat Anda ingin membuat fork repositori.
- Di GitHub, buka GoogleCloudPlatform/python-docs-samples.
- Klik Fork.
- Jika diminta, pilih lokasi tempat Anda ingin membuat fork repositori.
- Di konsol Google Cloud , buka halaman Services.
- Klik Buat layanan untuk menampilkan formulir Buat layanan.
- Pilih Deploy berkelanjutan dari repositori.
Perubahan pada repositori GitHub Anda secara otomatis dicakup ke dalam image container di Artifact Registry dan di-deploy ke Cloud Run.
- Klik Siapkan dengan Cloud Build untuk membuka formulir Siapkan dengan Cloud Build.
- Jika diminta, aktifkan Cloud Build API dan Artifact Analysis API.
- Pilih GitHub sebagai Penyedia Repositori.
- Jika diminta, klik Install Google Cloud Build.
- Pilih repositori GitHub yang Anda fork sebagai Repositori.
- Klik Berikutnya.
- Di kolom Cabang, masukkan
^main$
. - Pilih Dockerfile sebagai Build Type dan berikan lokasi sumber
Dockerfile:
eventarc/audit-storage/Dockerfile
atau
eventarc/audit_storage/Dockerfile
(Mulai)
- Klik Simpan.
- Di formulir Buat layanan, masukkan nama layanan.
Contoh,
helloworld-events
. - Pilih us-central1(Iowa) sebagai Region tempat Anda ingin layanan Anda berada.
- Pilih salah satu opsi Ingress berdasarkan traffic masuk yang ingin Anda izinkan di layanan Cloud Run.
- Pilih Wajibkan autentikasi
- Klik Buat.
Go

Java

.NET

Node.js

Python

gcloud
- Buat clone repositori GitHub:
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git cd golang-samples/eventarc/audit_storage
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/eventarc/audit-storage
.NET
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git cd dotnet-docs-samples/eventarc/audit-storage
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git cd nodejs-docs-samples/eventarc/audit-storage
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git cd python-docs-samples/eventarc/audit-storage
- Build container dan upload ke Cloud Build:
gcloud builds submit --tag $REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/$SERVICE_NAME:v1
- Men-deploy image container ke Cloud Run
gcloud run deploy $SERVICE_NAME \ --image $REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/$SERVICE_NAME:v1
Pada perintah untuk mengizinkan pemanggilan yang tidak diautentikasi, masukkan
n
.Jika deployment berhasil, command line akan menampilkan URL layanan.
Setelah men-deploy layanan penerima peristiwa yang disebut
helloworld-events
ke Cloud Run, Anda dapat
menyiapkan pemicu.
Membuat pemicu Eventarc
Pemicu Eventarc akan mengirimkan peristiwa dari
bucket Cloud Storage ke layanan Cloud Run helloworld-events
.
Konsol
- Di konsol Google Cloud , buka halaman Pemicu.
- Klik Create trigger.
- Ketik Trigger name.
Ini adalah ID pemicu dan harus diawali dengan huruf. Nama ini dapat berisi hingga 63 huruf kecil, angka, atau tanda hubung.
- Pilih Jenis pemicu:
- Pihak pertama: Memfilter peristiwa yang dikirim dari Google Cloud penyedia (secara langsung atau melalui entri Cloud Audit Logs) atau penyedia menggunakan pesan Pub/Sub.
- Pihak ketiga: Memfilter peristiwa yang dikirim dari penyedia pihak ketiga.
- Dalam daftar Event provider, pilih Cloud Storage sebagai sumber peristiwa.
- Di daftar Jenis peristiwa, pilih storage.objects.create.
- Dalam daftar Region, pilih us-central1 sebagai region untuk menerima peristiwa dari.
- Pilih Service account yang Anda buat. Misalnya,
SERVICE_ACCOUNT_ID@PROJECT_ID
.iam.gserviceaccount.com. - Dalam daftar Tujuan peristiwa, pilih Cloud Run.
- Dalam daftar Select a Cloud Run service, pilih helloworld-events.
- Klik Buat. Perhatikan bahwa Anda juga dapat membuat pemicu Eventarc menggunakan halaman konsol Cloud Run.
gcloud
- Buat pemicu yang memfilter peristiwa Cloud Storage dan yang
menggunakan akun layanan yang Anda buat:
Gantigcloud eventarc triggers create events-tutorial-trigger \ --destination-run-service=$SERVICE_NAME \ --destination-run-region=$REGION \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=storage.googleapis.com" \ --event-filters="methodName=storage.objects.create" \ --service-account=sample-service-account@PROJECT_ID.iam.gserviceaccount.com
PROJECT_ID
dengan Google Cloud project ID.Dengan:
type
: menentukan bahwa log audit dibuat saat kriteria filter pemicu terpenuhi.serviceName
: layanan yang menulis log audit, yaitu Cloud Storage.methodName
: operasi yang diaudit, yaitustorage.objects.create
.
events-tutorial-trigger
. - Untuk mengonfirmasi bahwa
events-tutorial-trigger
berhasil dibuat, jalankan:gcloud eventarc triggers list --location=$REGION
Pemicu,
events-tutorial-trigger
, dicantumkan dengan
target helloworld-events
.
Membuat dan melihat peristiwa
- Untuk membuat acara:
Konsol
- Buat file teks dengan nama file
random.txt
dan teks "Hello World". - Di konsol Google Cloud , buka halaman Buckets.
- Pilih bucket penyimpanan yang Anda buat.
- Di tab Objects, klik Upload files, lalu upload file
random.txt
.
gcloud
Upload file teks ke Cloud Storage:
echo "Hello World" > random.txt gcloud storage cp random.txt gs://events-tutorial-PROJECT_ID/random.txt
- Buat file teks dengan nama file
- Untuk melihat entri log:
- Di konsol Google Cloud , buka halaman Services.
- Dari daftar layanan, klik nama layanan yang Anda buat untuk membuka halaman Service details.
- Klik tab Logs untuk mendapatkan log permintaan dan container untuk semua revisi layanan ini. Pemfilteran dapat dilakukan berdasarkan tingkat keparahan log.
- Cari entri log yang mirip dengan:
denganDetected change in Cloud Storage bucket: storage.googleapis.com/projects/_/buckets/BUCKET_NAME/objects/random.txt
BUCKET_NAME
adalah nama bucket Cloud Storage. -
gcloud logging read "resource.labels.service_name=helloworld-events AND textPayload:random.txt" --format=json
- Cari entri log yang mirip dengan:
denganDetected change in Cloud Storage bucket: storage.googleapis.com/projects/_/buckets/BUCKET_NAME/objects/random.txt
BUCKET_NAME
adalah nama bucket Cloud Storage.
Konsol
gcloud
Anda telah berhasil men-deploy layanan penerima peristiwa ke Cloud Run, membuat pemicu Eventarc, membuat peristiwa dari Cloud Storage, dan menampilkannya di log Cloud Run.