Selama pengembangan, Anda dapat menjalankan dan menguji image container secara lokal sebelum men-deploy. Anda dapat menggunakan Cloud Code atau Docker yang diinstal secara lokal untuk menjalankan dan menguji secara lokal, termasuk berjalan secara lokal dengan akses ke layanan Google Cloud.
Sebelum memulai
Jika ini pertama kalinya Anda mencoba menjalankan secara lokal, Anda mungkin tidak memiliki semua izin yang diperlukan untuk mengakses image dari container registry yang didukung yang Anda gunakan.
Periksa dokumentasi container registry yang didukung tentang cara mendapatkan akses. Anda dapat mengonfigurasi Docker untuk mendapatkan akses ke Artifact Registry menggunakan Pemandu kredensial gcloud CLI
gcloud auth configure-docker LOCATION-docker.pkg.dev
Menguji secara lokal
Anda dapat menguji secara lokal menggunakan Docker, Docker dengan Google Cloud Access, emulator Cloud Code atau Google Cloud CLI. Pilih tab yang sesuai untuk mendapatkan petunjuk.
Docker
Untuk menguji image container secara lokal menggunakan Docker:
Gunakan perintah Docker:
PORT=8080 && docker run -p 9090:${PORT} -e PORT=${PORT} IMAGE_URL
Ganti IMAGE_URL dengan referensi ke image container, contohnya,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. Struktur URL-nya adalahLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Variabel lingkungan
PORT
menentukan port yang akan digunakan aplikasi Anda untuk memproses permintaan HTTP atau HTTPS Ini adalah persyaratan dari kontrak runtime Container. Dalam contoh ini, kita menggunakan port 8080.Buka http://localhost:9090 di browser Anda.
Jika Anda baru mulai menggunakan container, sebaiknya Anda meninjau panduan Memulai Docker. Untuk mempelajari perintah Docker lebih lanjut, lihat panduan dokumentasi Docker.
Docker dengan Akses Google Cloud
Jika Anda menggunakan library klien Google Cloud untuk mengintegrasikan aplikasi Anda dengan layanan Google Cloud, dan belum mengamankan layanan tersebut untuk mengontrol akses eksternal, Anda dapat menyiapkan container lokal untuk melakukan autentikasi dengan layanan Google Cloud menggunakan Kredensial Default Aplikasi.
Untuk menjalankan secara lokal:
Lihat Mulai Menggunakan Autentikasi untuk mendapatkan petunjuk tentang cara membuat, mengambil, dan mengonfigurasi kredensial Akun Layanan Anda.
Berikut bagaimana menjalankan flag Docker tersebut untuk masuk ke kredensial dan konfigurasi dari sistem lokal Anda ke dalam container lokal:
- Gunakan flag
--volume
(-v
) untuk memasukkan file kredensial ke dalam container (dengan asumsi Anda telah menetapkan variabel lingkunganGOOGLE_APPLICATION_CREDENTIALS
di mesin Anda):-v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro
- Gunakan tanda
--environment
(-e
) untuk menetapkan variabelGOOGLE_APPLICATION_CREDENTIALS
di dalam container:-e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json
- Gunakan flag
Anda juga dapat menggunakan perintah
run
Docker yang dikonfigurasi sepenuhnya ini:PORT=8080 && docker run \ -p 9090:${PORT} \ -e PORT=${PORT} \ -e K_SERVICE=dev \ -e K_CONFIGURATION=dev \ -e K_REVISION=dev-00001 \ -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json \ -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro \ IMAGE_URL
Perhatikan bahwa jalur
ditampilkan di contoh di atas adalah lokasi yang sesuai untuk menempatkan kredensial Anda di dalam container./tmp/keys/FILE_NAME.json
Namun lokasi direktori lainnya juga dapat berfungsi. Persyaratan pentingnya adalah variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
harus cocok dengan lokasi pemasangan binding di dalam container.Perlu diperhatikan bahwa dengan beberapa layanan Google Cloud, Anda dapat menggunakan konfigurasi alternatif untuk mengisolasi pemecahan masalah lokal dari data dan performa produksi.
Emulator Cloud Code
Plugin Cloud Code untuk VS Code dan JetBrains IDEs memungkinkan Anda menjalankan dan men-debug image container secara lokal di Cloud Run emulator dalam IDE Anda. Dengan emulator, Anda dapat mengonfigurasi lingkungan yang mewakili layanan Anda yang berjalan di Cloud Run.
Anda dapat mengonfigurasi properti seperti CPU dan alokasi memori, menentukan variabel lingkungan, serta menetapkan koneksi database Cloud SQL
- Instal Cloud Code untuk VS Code atau JetBrains IDE.
- Ikuti petunjuk untuk pengembangan dan proses debug secara lokal di dalam IDE Anda
- VS Code: Mengembangkan dan melakukan proses debug secara lokal
- IntelliJ: Mengembangkan dan melakukan proses debug secara lokal
gcloud CLI
Google Cloud CLI berisilingkungan pengembangan lokal untuk mengemulasi Cloud Run yang dapat membangun container dari sumber, menjalankan container di mesin lokal, dan secara otomatis membangun ulang container setelah kode sumber berubah.
Untuk memulai lingkungan pengembangan lokal:
Ubah direktori ke direktori yang berisi kode sumber layanan Anda.
Panggil perintah:
gcloud beta code dev
Jika ada Dockerfile di direktori lokal, Dockerfile akan digunakan untuk membangun container. Jika tidak ada Dockerfile, container dibuat dengan Google Cloud's buildpacks.
Untuk melihat layanan Anda berjalan, buka http://localhost:8080/ di browser Anda.
Jika Anda menentukan port kustom dengan opsi --local-port
, jangan lupa untuk membuka browser ke port tersebut.
Untuk menghentikan server lokal:
- Mac OS dan Linux: Control-C
- Windows: Control+Break
Menyesuaikan konfigurasi layanan
Anda dapat menyesuaikan konfigurasi layanan Cloud Run yang berjalan
secara lokal menggunakan file YAML. Format YAML sama dengan yang dapat digunakan untuk men-deploy layanan Cloud Run, tetapi hanya mendukung sebagian setelan layanan Cloud Run. gcloud beta
code dev
mencari dan menggunakan file yang memiliki.akhiran *.service.dev.yaml
di direktori saat ini. Jika tidak ada yang ditemukan, itu akan menggunakan file apa pun yang berakhiran dengan
*.service.yaml
Anda dapat mengonfigurasi setelan berikut untuk pengembangan lokal:
Kolom image
container tidak diperlukan untuk pengembangan lokal, karena image
dibuat dan diberikan ke layanan saat perintah dijalankan.
Anda dapat menggunakan contoh file service.dev.yaml
berikut untuk pengembangan lokal:
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: my-service-name spec: template: spec: containers: - env: - name: FOO value: bar
Uji menggunakan kredensial
Untuk memberikan izin ke container agar dapat menggunakan layanan Google Cloud, Anda harus memberikan kredensial akses kepada container.
Untuk memberi container akses ke kredensial menggunakan akun Anda, login menggunakan gcloud dan masukan flag
--application-default-credential
:gcloud auth application-default login gcloud beta code dev --dockerfile=PATH_TO_DOCKERFILE --application-default-credential
Untuk memberikan kredensial aplikasi sebagai akun layanan, gunakan flag
--service-account
:gcloud beta code dev --dockerfile=PATH_TO_DOCKERFILE --service-account=SERVICE_ACCOUNT_EMAIL
Flag
--service-account
menyebabkan kunci akun layanan didownload dan di-cache secara lokal. Pengguna bertanggung jawab untuk menjaga kunci tetap aman dan menghapusnya saat tidak diperlukan lagi.
Konfirmasi bahwa kode Anda berjalan secara lokal
Saat melakukan pengujian secara lokal di Cloud Run, Anda dapat mengonfirmasi dalam kode bahwa container Anda berjalan secara lokal dengan memeriksa variabel lingkungan K_REVISION
, yang disediakan Cloud Run untuk semua container.
Docker
Untuk mengonfirmasi bahwa Anda menjalankan kode secara lokal di Google Cloud CLI, Anda dapat mencoba membuat kueri variabel lingkungan K_REVISION
, tetapi karena belum ditetapkan, tidak ada nilai yang akan muncul.
Docker dengan Akses Google Cloud
Jika Anda menggunakan nilai yang tepat dari bagian di atas pada Langkah 3 untuk mengonfirmasi bahwa Anda menjalankan kode secara lokal di Google Cloud CLI, Anda dapat membuat kueri untuk variabel lingkungan K_REVISION
dan mencari nilai dev-00001
untuk mengonfirmasi bahwa sistem
tersebut berjalan secara lokal.
Emulator Cloud Code
Untuk mengonfirmasi bahwa Anda menjalankan kode secara lokal di Cloud Code, Anda dapat membuat kueri variabel lingkungan K_REVISION
dan mencari nilai local
untuk mengonfirmasi bahwa kode tersebut berjalan secara lokal.
gcloud CLI
Untuk mengonfirmasi bahwa Anda menjalankan kode secara lokal di Google Cloud CLI, Anda dapat membuat kueri variabel lingkungan K_REVISION
dan mencari nilai yang dimulai dengan dev-
untuk mengonfirmasi bahwa kode tersebut berjalan secara lokal.
Langkah berikutnya
- Untuk mempelajari cara memecahkan masalah aplikasi Cloud Run yang rusak secara lokal, lihat tutorial Pemecahan masalah lokal untuk layanan Cloud Run.
- Untuk mempelajari cara men-deploy container yang telah dibuat, ikuti Men-deploy layanan.