Terhubung dari Cloud Run
Panduan memulai ini memandu Anda melalui proses men-deploy aplikasi contoh di layanan Cloud Run dengan menggunakan Google Cloud konsol dan aplikasi klien. Aplikasi contoh ini menghubungkan Cloud Run ke AlloyDB untuk PostgreSQL.
Contoh kode aplikasi
Kode aplikasi contoh untuk panduan memulai ini terletak di direktori examples/go
repositori GitHub GoogleCloudPlatform/alloydb-auth-proxy.
Aplikasi ini ditulis dalam bahasa pemrograman Go dan berfungsi sebagai alat
untuk mengumpulkan suara. Logika utama terdapat dalam file main.go, yang memulai server web dan menangani permintaan pengguna.
Koneksi database dikonfigurasi menggunakan variabel lingkungan, yang Anda siapkan saat membuat layanan Cloud Run. Variabel ini memberi tahu aplikasi cara terhubung ke instance AlloyDB Anda, termasuk nama database, pengguna, sandi, dan alamat IP instance. Kode ini menggunakan variabel tersebut untuk membuat koneksi yang aman ke database AlloyDB Anda.
Repositori kode
Repositori alloydb-auth-proxy berisi Proxy Auth AlloyDB,
alat yang membantu Anda terhubung ke instance AlloyDB dengan aman.
Repositori ini juga mencakup library dan contoh terkait, seperti aplikasi Go yang digunakan dalam panduan memulai ini.
Anda tidak memerlukan seluruh project alloydb-auth-proxy untuk terhubung ke
AlloyDB dari Cloud Run. Perintah cloudshell_open meng-clone seluruh repositori untuk memudahkan Anda, tetapi hanya file yang digunakan untuk membangun container untuk panduan memulai ini yang berada di direktori examples/go.
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine, Cloud Run, AlloyDB, Cloud Resource Manager, Service Networking, Cloud Build, and Container Registry APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine, Cloud Run, AlloyDB, Cloud Resource Manager, Service Networking, Cloud Build, and Container Registry APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.- Pastikan Anda memiliki cluster dan instance utama AlloyDB. Untuk mengetahui informasi selengkapnya, lihat Membuat cluster dan instance utamanya.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk terhubung dari Cloud Run, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:
-
Compute Network Admin (
roles/compute.networkAdmin) -
Admin AlloyDB (
roles/alloydb.admin) -
Administrator Artifact Registry (
roles/artifactregistry.admin) -
Admin Cloud Run (
roles/run.admin) -
Storage Admin (
roles/storage.admin) -
Editor Cloud Build (
roles/cloudbuild.builds.editor) -
Container Analysis Admin (
roles/containeranalysis.admin) -
Service Account Token Creator (
roles/iam.serviceAccountTokenCreator) -
Monitoring Metric Writer (
roles/monitoring.metricWriter) -
Dev Ops (
roles/iam.devOps)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Menghubungkan ke instance dan membuat database
Jika Anda tidak berada di halaman Overview cluster yang baru dibuat, buka halaman Clusters di konsol Google Cloud .
Untuk menampilkan halaman Overview cluster, klik nama cluster
my-cluster.Di menu navigasi, klik AlloyDB Studio.
Di daftar Database di halaman Login ke AlloyDB Studio, pilih
postgres.Di menu drop-down Pengguna, pilih
postgres.Di kolom Password, masukkan sandi yang Anda buat di Membuat cluster dan instance primernya.
Klik Autentikasi. Panel Explorer menampilkan daftar objek dalam database Anda.
Di tab Editor 1, buat database:
CREATE DATABASE quickstart_db;Klik Run. Tunggu hingga pesan
Statement executed successfullyditampilkan di panel Results.
Menemukan project ID
Buka halaman Dashboard di konsol Google Cloud .
Temukan project ID di kartu Project info.
Catat project ID Anda. Anda memerlukannya untuk langkah berikutnya dalam panduan memulai ini.
Isi Artifact Registry dengan image aplikasi contoh
Di konsol Google Cloud , buka Cloud Shell.
Di Cloud Shell Editor, gunakan perintah berikut untuk meng-clone repositori dengan kode aplikasi contoh dari GitHub:
cloudshell_open --repo_url \ "https://github.com/GoogleCloudPlatform/alloydb-auth-proxy" \ --dir \ "examples/go" \ --force_new_cloneBuat repositori di Artifact Registry untuk image Docker:
gcloud artifacts repositories create cloud-run-source-deploy --location us-central1 --repository-format=docker --project PROJECT_IDGanti
PROJECT_IDdengan ID project Anda.Di dialog Authorize Cloud Shell, klik Authorize. Perintah ini tidak muncul jika Anda telah melakukan langkah ini sebelumnya.
Untuk membangun container Docker dan memublikasikannya ke Artifact Registry, gunakan perintah berikut:
gcloud builds submit --tag us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy/run-sql --project PROJECT_IDGanti
PROJECT_IDdengan ID project Anda.Kode aplikasi contoh untuk panduan memulai ini terletak di direktori
examples/gorepositori GitHubGoogleCloudPlatform/alloydb-auth-proxy. Perintahcloudshell_opendi langkah sebelumnya akan otomatis meng-clone repositori ini dan membuka direktori yang benar untuk Anda.
Menemukan alamat IP untuk instance baru Anda
Di konsol Google Cloud , buka halaman Clusters.
Temukan baris dalam tabel yang Nama resource-nya adalah
my-primary.Catat Alamat IP pribadi baris tersebut. Anda memerlukannya untuk langkah berikutnya dalam panduan memulai ini.
Contoh format alamat IP adalah
172.19.209.2:5432.
Membuat layanan untuk Cloud Run
Di konsol Google Cloud , buka halaman Cloud Run.
Di tab Services, klik Deploy Container.
Di halaman Create service, pilih opsi Deploy one revision from an existing container image.
Di kolom Container image URL, klik Pilih.
Di panel Select container image, selesaikan langkah-langkah berikut:
- Pilih tab Artifact Registry.
- Luaskan
us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy. - Luaskan
run-sql. - Pilih gambar terbaru.
- Klik Pilih.
Di kolom Nama layanan, masukkan
quickstart-service.Pastikan
us-central1 (Iowa)dipilih di daftar Region secara default.Di bagian Authentication, pilih Allow public access.
Pastikan CPU hanya dialokasikan selama pemrosesan permintaan dipilih di bagian Alokasi CPU dan harga.
Luaskan bagian Container(s), Volumes, Networking, Security.
Di tab Container(s), pilih tab Variables & secrets dan selesaikan langkah-langkah berikut:
Di bagian Environment variables, klik Add variable.
Masukkan hal berikut di kolom
NamedanValue:DB_NAME:quickstart_dbDB_USER:postgresDB_PASS: Sandi yang Anda masukkan saat membuat cluster.DB_PORT:5432INSTANCE_HOST: Alamat IP instance utama cluster Anda, yang Anda temukan di Menemukan alamat IP untuk instance baru Anda. Jangan sertakan nomor port—misalnya, setel ke172.19.209.2, bukan172.19.209.2:5432.
Beralih dari tab Container(s) ke tab Networking dan selesaikan langkah-langkah berikut:
Centang kotak Hubungkan ke VPC untuk traffic keluar.
Pilih opsi Kirim traffic langsung ke VPC.
Di menu drop-down Network, pilih nilai
default.Di menu drop-down Subnet, pastikan nilai
defaultdipilih.
Klik Buat untuk membuat layanan Cloud Run.
Setelah layanan Cloud Run di-deploy, halaman quickstart-service akan menampilkan URL aplikasi contoh di kolom URL.
Aplikasi ini menggunakan AlloyDB sebagai penyimpanan datanya.
Melihat aplikasi contoh
Di konsol Google Cloud , buka halaman Cloud Run.
Di halaman quickstart-service, klik content_copy Copy to clipboard untuk menyalin URL aplikasi.
Di tab browser baru, tempel URL aplikasi yang disalin, lalu klik Enter.
Pembersihan
Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.
Membersihkan cluster
Di konsol Google Cloud , buka halaman Clusters.
Di samping cluster
my-clusteryang ingin Anda hapus, klik more_vert Tindakan, lalu klik delete Hapus.Pada dialog Delete cluster yang muncul, ketik
my-clusterdi kolom my-cluster, yang mengonfirmasi bahwa Anda ingin menghapusnya.Klik Hapus.
Membersihkan layanan
Di konsol Google Cloud , buka halaman Cloud Run.
Pilih kotak centang di samping nama layanan
quickstart-service.Klik delete Hapus di bagian atas halaman Cloud Run.
Di dialog Delete quickstart-service yang muncul, klik Delete untuk mengonfirmasi.