ID region
REGION_ID
adalah kode singkat yang ditetapkan Google berdasarkan region yang Anda pilih saat membuat aplikasi. Kode ini tidak sesuai dengan negara atau provinsi, meskipun beberapa ID region mungkin tampak mirip dengan kode negara dan provinsi yang umum digunakan. Untuk aplikasi yang dibuat setelah Februari 2020, REGION_ID.r
disertakan dalam URL App Engine. Untuk aplikasi lama yang dibuat sebelum tanggal tersebut, ID region bersifat opsional dalam URL.
Pelajari ID region lebih lanjut.
Pelajari cara menjalankan aplikasi secara lokal, men-deploy aplikasi, dan menguji aplikasi di App Engine.
Menjalankan secara lokal
Untuk menguji aplikasi sebelum men-deploy, jalankan aplikasi Anda di lingkungan lokal dengan alat pengembangan yang biasa Anda gunakan.
Men-deploy aplikasi Anda
Deploy aplikasi Anda ke App Engine menggunakan perintahgcloud app deploy
.
Layanan Cloud Build akan otomatis mem-build deployment Anda ke dalam image container dan men-deploy image tersebut ke lingkungan fleksibel App Engine. Container ini menyertakan perubahan lokal yang telah Anda buat pada image runtime.
Untuk men-deploy aplikasi secara terprogram, gunakan Admin API.
Sebelum memulai
Sebelum Anda dapat men-deploy aplikasi:
Pemilik project Google Cloud harus menyiapkan project Google Cloud Anda untuk App Engine.
Pastikan bahwa akun pengguna Anda menyertakan hak istimewa yang diperlukan.
Men-deploy layanan
Anda dapat men-deploy aplikasi ke App Engine dengan men-deploy versi layanan aplikasi Anda dan setiap file konfigurasinya.
Anda dapat men-deploy file konfigurasi lain dari layanan Anda dengan menargetkan dan men-deploy setiap file secara terpisah, misalnya:
gcloud app deploy cron.yaml gcloud app deploy dispatch.yaml gcloud app deploy index.yaml
Untuk menentukan ID versi kustom, gunakan flag
--version
.Untuk mencegah agar traffic tidak dirutekan secara otomatis ke versi baru, gunakan flag
--no-promote
.Untuk men-deploy ke project Google Cloud tertentu, gunakan flag
--project
.
Misalnya, untuk men-deploy layanan yang ditentukan oleh file app.yaml
ke project Google Cloud tertentu, tetapkan ID versi kustom pada layanan tersebut, dan cegah agar traffic tidak dirutekan ke versi baru:
gcloud app deploy --project PROJECT_ID --version VERSION_ID --no-promote
Untuk informasi selengkapnya, lihat referensi gcloud app deploy
.
Anda dapat menetapkan properti
untuk gcloud CLI serta membuat dan mengelola
konfigurasi SDK
sehingga Anda tidak perlu menentukan flag seperti --project
setiap kali melakukan deployment.
Abaikan file
Anda dapat menggunakan file .gcloudignore
untuk menentukan file dan direktori yang tidak boleh diupload ke Google Cloud
saat men-deploy layanan Anda. Hal ini berguna untuk mengabaikan artefak build dan file lain yang tidak perlu diupload dengan deployment Anda.
Pelajari sintaksis file .gcloudignore
lebih lanjut dalam
referensi gcloud
.
Membangun container secara manual untuk deployment
Untuk mem-build image container di luar Google Cloud:
- Upload image Anda ke repositori Artifact Registry. Untuk informasi selengkapnya, lihat Mengirim dan mengambil image.
- Deploy ke App Engine dengan perintah
gcloud app deploy
.
Misalnya, jika Anda mem-build image container secara lokal dengan Docker, Anda dapat mengirim image tersebut ke Artifact Registry dan menentukan URL image Anda di flag --image-url
perintah:
gcloud app deploy --image-url LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE
Ganti:
LOCATION dengan lokasi repositori tempat gambar disimpan.
PROJECT-ID dengan project ID Google Cloud Anda.
REPOSITORY dengan nama repositori tempat gambar disimpan.
IMAGE dengan nama image container Anda.
Menggunakan pipeline deployment berkelanjutan otomatis
Anda dapat menggunakan Cloud Build untuk mengotomatiskan deployment dalam pipeline deployment berkelanjutan. Untuk mengetahui informasi selengkapnya, lihat artikel Men-deploy ke App Engine dan Membuat dan mengelola pemicu build dalam dokumentasi Cloud Build.
Image dasar Docker
Jika Anda ingin mem-build aplikasi runtime kustom, lihat Membuat file Docker.
Melihat permohonan Anda
Setelah men-deploy aplikasi ke App Engine, Anda dapat menjalankan
perintah berikut untuk meluncurkan browser dan melihatnya di
https://PROJECT_ID.REGION_ID.r.appspot.com
:
gcloud app browse
Menguji di App Engine
Sebelum mengonfigurasi versi baru untuk menerima traffic, Anda dapat mengujinyadi App Engine. Misalnya, untuk menguji versi baru layanan
default
Anda:
Deploy versi baru dan sertakan flag
--no-promote
:gcloud app deploy --no-promote
Akses versi baru Anda dengan membuka URL berikut:
https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com
Sekarang Anda dapat menguji versi baru di lingkungan runtime App Engine. Anda dapat men-debug aplikasi dengan melihat log-nya di Logs Explorer pada Konsol Google Cloud. Untuk informasi selengkapnya, lihat Menulis Log Aplikasi.
Permintaan yang dikirim ke
https://PROJECT_ID.REGION_ID.r.appspot.com
akan tetap diarahkan ke versi yang sebelumnya dikonfigurasi untuk menerima traffic.Jika Anda ingin mengirim traffic ke versi baru, gunakan Konsol Google Cloud untuk memigrasikan traffic:
Pilih versi yang baru saja Anda deploy dan klik Migrasikan traffic.
Anda dapat menggunakan proses yang sama untuk menguji versi baru layanan lain dengan mengganti default
di URL dengan nama layanan Anda:
https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com
Untuk mengetahui informasi selengkapnya tentang cara menargetkan layanan dan versi tertentu, lihat Cara permintaan dirutekan.
Menggunakan variabel lingkungan build
Anda dapat menetapkan variabel lingkungan build untuk runtime yang mendukung buildpack.
Variabel lingkungan build adalah key-value pair yang dapat Anda tentukan untuk mengonfigurasi buildpack yang digunakan untuk men-deploy aplikasi. Misalnya, Anda mungkin ingin menentukan opsi compiler.
Sebelum memulai:
- Kunci harus diawali dengan huruf ASCII besar, dan dapat menyertakan huruf ASCII besar, angka, dan garis bawah.
- Sebaiknya jangan membuat variabel dengan imbuhan kunci
GOOGLE_*
. - Kunci berikut dicadangkan untuk penggunaan Google:
GOOGLE_RUNTIME
GOOGLE_RUNTIME_VERSION
GOOGLE_ENTRYPOINT
GOOGLE_DEVMODE
- Anda dapat menggunakan kunci apa pun yang didukung oleh buildpack.
Untuk menggunakan variabel lingkungan dengan buildpack, tentukan kolom build_env_variables
dalam file app.yaml
Anda.
Pelajari buildpack lebih lanjut.
Menggunakan Cloud Trace
Cloud Trace berguna untuk memahami cara permintaan diterapkan melalui aplikasi Anda. Anda dapat memeriksa informasi latensi yang mendetail untuk sebuah permintaan atau melihat latensi agregat di seluruh aplikasi.
Anda dapat melihat detail trace. Di Trace explorer, Anda dapat memfilter berdasarkan layanan dan versi App Engine tertentu.
Memecahkan masalah
Berikut adalah pesan error umum yang mungkin Anda temui saat men-deploy aplikasi:
PERMISSION_DENIED: Operation not allowed
The "appengine.applications.create" permission is required.
- Jika project Google Cloud tidak menyertakan aplikasi App Engine
yang diperlukan
, perintah
gcloud app deploy
bisa gagal saat mencoba menjalankan perintahgcloud app create
. Hanya akun dengan peran Pemilik yang memiliki izin yang diperlukan untuk membuat aplikasi App Engine. 502 Bad Gateway
- Project Google Cloud dapat gagal dimulai jika
app.yaml
salah dikonfigurasi. Periksa log aplikasi untuk melihat pesan error yang lebih mendetail. [13] An internal error occurred while creating a Cloud Storage bucket.
App Engine membuat bucket multi-regional Cloud Storage default atas nama Anda di region yang sama tempat App Engine membuat aplikasi Anda. Bucket ini diperlukan untuk menyimpan konten aplikasi Anda. Error akan ditampilkan saat bucket ini tidak dapat dibuat, seperti dalam skenario berikut:
Agen layanan lingkungan fleksibel App Engine tidak ada dalam project Anda atau tidak memiliki peran
App Engine flexible environment Service Agent
. Anda dapat menambahkan kembali akun layanan agen ke project Anda dengan memberikan izin IAM yang benar. Lihat Memulihkan agen layanan yang dihapus.Akun layanan App Engine default tidak ada dalam project Anda. Jika akun layanan App Engine dihapus sebelum 30 hari sejak penghapusannya, Anda dapat memulihkannya.
Project Anda berada di organisasi yang menerapkan kebijakan
constraints/gcp.resourceLocations
dan organisasi tersebut tidak mengizinkan pembuatan resource di region yang sama tempat App Engine dibuat. Anda harus mengganti kebijakanconstraints/gcp.resourceLocations
yang diterapkan untuk project Anda dan mengizinkan lokasi multi-region di region yang sama tempat aplikasi App Engine Anda dibuat.
Misalnya, jika aplikasi App Engine Anda dibuat di region
europe-west
, meskipun region tersebut dipetakan ke lokasieurope-west1
, Anda harus mengubah batasan untuk mengizinkan resource diin:eu-locations
, yang mencakup semua regionEU
. Hal ini diperlukan karena bucket yang dibuat App Engine bersifat multi-regional. Jika aplikasi App Engine Anda dibuat di regionUS
, Anda harus mengizinkanin:us-locations
, dan jika aplikasi Anda dibuat di regionASIA
, Anda harus mengizinkanin:asia-locations
.[13] An internal error occurred.
Error ini dapat terjadi jika Anda men-deploy layanan dengan konfigurasi jaringan yang menggunakan penyiapan VPC Bersama. Coba langkah berikut untuk mengatasinya:
- Pastikan konfigurasi
app.yaml
Anda valid. - Pastikan lingkungan fleksibel App Engine Anda memenuhi semua persyaratan untuk penyiapan VPC Bersama. Lihat Menggunakan lingkungan fleksibel App Engine di jaringan VPC Bersama.
- Pastikan Anda telah memiliki akun layanan yang dikonfigurasi di project Anda. Jika tidak, Anda harus memulihkan akun. Region subnet dalam project host VPC Bersama harus cocok dengan lokasi tempat lingkungan App Engine Anda dibuat.
- Pastikan konfigurasi
Jika masalah berlanjut, deploy ulang layanan Anda menggunakan Google Cloud SDK. Pastikan untuk menambahkan flag
--verbosity=debug
. Hubungi Dukungan Google Cloud dan berikan output perintahnya.IP space of {USER_SUBNETWORK_NAME} is exhausted and needs to be expanded.
Jika deployment gagal dengan pesan error ini, jaringan yang dikonfigurasi untuk layanan App Engine tidak memiliki alamat yang tersisa untuk dialokasikan ke instance layanan baru. Untuk mengatasi masalah ini, perluas rentang VPC di subnet yang dikonfigurasi untuk layanan lingkungan fleksibel App Engine Anda.