Deploy aplikasi Anda untuk diupload dan menjalankannya di App Engine Saat men-deploy aplikasi, Anda membuat beberapa versi aplikasi tersebut dan layanan yang sesuai di App Engine. Anda dapat men-deploy seluruh aplikasi, termasuk semua kode sumber dan file konfigurasi, atau Anda dapat men-deploy dan mengupdate versi satu per satu atau file konfigurasi.
Untuk men-deploy aplikasi secara terprogram, gunakan Admin API.
Sebelum memulai
Sebelum Anda dapat men-deploy aplikasi Anda:
Pemilik project Google Cloud harus membuat aplikasi App Engine.
Pastikan bahwa akun pengguna Anda menyertakan hak istimewa yang diperlukan.
Beri Cloud Build izin untuk men-deploy aplikasi di project Anda. Saat Anda men-deploy aplikasi, App Engine akan menggunakan Cloud Build untuk membangun aplikasi ke dalam container dan men-deploy container ke runtime di region aplikasi. Cloud Build tidak memiliki izin untuk men-deploy aplikasi PHP 5 secara default, sehingga Anda perlu memberikan izin sebelum dapat men-deploy aplikasi.
Menginstal gcloud CLI
Untuk men-deploy aplikasi dengan gcloud CLI, Anda harus mendownload, menginstal, dan melakukan inisialisasi gcloud CLI.
Jika Anda sudah menginstal gcloud CLI dan ingin mengonfigurasinya untuk menggunakan ID project Google Cloud selain yang Anda inisialisasi, lihat Mengelola Konfigurasi gcloud CLI.
Menggunakan proxy
Jika Anda menjalankan perintah deployment dari sistem yang menggunakan proxy HTTP atau HTTPS, Anda harus mengonfigurasi alat tersebut agar dapat berkomunikasi melalui proxy.
Jalankan perintah berikut untuk mengonfigurasi gcloud CLI:
gcloud config set proxy/type [PROXY_TYPE]
gcloud config set proxy/address [PROXY_ADDRESS]
gcloud config set proxy/port [PROXY_PORT]
Anda juga dapat menyetel username
dan password
untuk proxy. Untuk mengetahui
informasi selengkapnya, lihat konfigurasi gcloud.
Men-deploy aplikasi
Untuk men-deploy aplikasi Anda ke App Engine, gunakan
gcloud app deploy
perintah
dari tempat file
konfigurasi berada, misalnya
app.yaml
.
Memilih ID versi yang unik
Untuk instance yang diskalakan secara manual, ID versi Anda harus dimulai dengan huruf untuk membedakannya dari ID instance numerik. Hal ini memastikan bahwa permintaan dirutekan ke tujuan yang benar dan menghindari ambiguitas dengan pola URL seperti123-dot-my-service.[REGION_ID].r.appspot.com
, yang dapat ditafsirkan
dengan dua cara:
- Jika versi
123
ada, permintaan akan dirutekan ke versi123
layananmy-service
. - Jika versi
123
tidak ada, permintaan akan dirutekan ke ID instance123
tempat versi layananmy-service
dijalankan.
Anda dapat memberi nama versi sesuai keinginan untuk instance yang dikonfigurasi untuk penskalaan otomatis atau penskalaan dasar karena penargetan instance tersebut tidak didukung.
gcloud app deploy [CONFIGURATION_FILES]
Secara default, perintah tersebut men-deploy file konfigurasi app.yaml
dari direktori
saat ini. Jika Anda menjalankan perintah dari direktori yang tidak memuat
app.yaml
aplikasi Anda, atau jika Anda ingin men-deploy beberapa aplikasi,
ganti [CONFIGURATION_FILES]
dengan jalur ke satu atau beberapa file konfigurasi.
Gunakan satu spasi kosong untuk memisahkan nama jalur.
Flag opsional:
--version
: Menentukan ID versi khusus. Secara default, App Engine membuat ID versi.--no-promote
: Men-deploy aplikasi tanpa otomatis merutekan semua traffic ke versi tersebut. Secara default, setiap versi yang Anda deploy akan otomatis dikonfigurasi untuk menerima 100% traffic.--project
: Menentukan project ID Google Cloud alternatif dengan yang Anda inisialisasi sebagai default di gcloud CLI.
Untuk mengetahui informasi selengkapnya, lihat referensi gcloud app deploy
atau jalankan gcloud help
dari command line.
Contoh:
gcloud app deploy
gcloud app deploy app.yaml dos.yaml index.yaml
gcloud app deploy --version [YOUR_VERSION_ID] --no-promote --project [YOUR_PROJECT_ID]
Jika Anda men-deploy versi yang menentukan ID versi yang sama dengan versi yang sudah ada di App Engine, file yang Anda deploy akan menimpa versi yang ada. Hal ini dapat menjadi masalah jika versi menayangkan traffic karena traffic ke aplikasi Anda mungkin terganggu. Anda dapat menghindari gangguan traffic jika Anda men-deploy versi baru dengan ID versi yang berbeda, lalu memindahkan traffic ke versi tersebut.
Men-deploy beberapa aplikasi layanan
Jika aplikasi Anda diperhitungkan dalam beberapa layanan, Anda dapat men-deploy dan mengupdate layanan yang ditargetkan satu per satu atau semua layanan secara bersamaan. Men-deploy update ke layanan dapat mencakup mengupdate setiap file konfigurasi atau mengupdate kode sumber dalam versi yang sesuai.
Misalnya, Anda dapat men-deploy dan membuat dua versi di App Engine, dengan setiap versi berjalan di layanannya sendiri. Versi pertama berfungsi sebagai layanan frontend dan versi lainnya sebagai backend aplikasi Anda. Selanjutnya, Anda dapat men-deploy setiap file konfigurasi untuk memperbarui setelan layanan saja. Anda juga dapat memilih untuk men-deploy versi baru ke layanan guna memperbarui kode sumber frontend, backend, atau keduanya secara bersamaan.
Persyaratan untuk beberapa layanan
Gunakan perintah deployment yang sama untuk men-deploy dan mengupdate beberapa layanan aplikasi Anda dengan persyaratan berikut:
Pertama-tama, Anda harus men-deploy versi aplikasi ke layanan
default
sebelum dapat membuat dan men-deploy layanan berikutnya.Anda harus menentukan ID layanan di file konfigurasi
app.yaml
versi yang sesuai. Untuk menentukan ID layanan, Anda menyertakan definisi elemenservice: [YOUR_SERVICE_ID]
di setiap file konfigurasi. Secara default, mengecualikan definisi elemen ini dari file konfigurasi Anda akan men-deploy versi tersebut ke layanandefault
.Anda harus menentukan semua file konfigurasi
app.yaml
yang sesuai dalam perintah deployment untuk men-deploy beberapa layanan secara bersamaan.
Untuk men-deploy beberapa layanan
Dari direktori utama aplikasi tempat file konfigurasi berada, Anda dapat menjalankan
perintah deployment dan menentukan jalur relatif serta nama file
untuk setiap file app.yaml
layanan.
gcloud app deploy [CONFIGURATION_FILES]
Dengan [CONFIGURATION_FILES]
adalah satu atau beberapa jalur dan nama file konfigurasi
yang dipisahkan oleh satu spasi kosong.
Contoh
gcloud app deploy main/app.yaml service1/app.yaml service2/app.yaml
Anda akan menerima verifikasi melalui command line setiap kali suatu layanan berhasil di-deploy.
Melihat log build
Cloud Build melakukan streaming log build dan deploy yang dapat dilihat di bagian histori Cloud Build di konsol Google Cloud. Untuk melihat build dalam region aplikasi, gunakan menu drop-down Region di bagian atas halaman untuk memilih region yang ingin Anda filter.
Pemecahan masalah
Berikut adalah pesan error umum yang mungkin Anda lihat:
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. Command not found
- Lihat Menggunakan server pengembangan lokal untuk mengetahui petunjuk tentang cara menyiapkan alat server pengembangan lokal.
Import Error
- Jika Anda menginstal gcloud CLI dan App Engine SDK yang asli, entri ke JALUR Anda mungkin saling bertentangan dan menyebabkan error impor. Jika Anda menerima error saat menjalankan perintah gcloud CLI, ikuti petunjuk untuk menjalankan server pengembangan lokal.
[400] The first service (module) you upload to a new application must be the 'default' service (module)
- Sebelum dapat men-deploy dan membuat beberapa layanan aplikasi,
Anda harus men-deploy dan membuat
layanan
default
terlebih dahulu. Untuk mengetahui detail cara men-deploy versi ke layanandefault
, lihat Men-deploy beberapa aplikasi layanan. Too Many Versions (403)
- App Engine memiliki batas jumlah versi yang di-deploy untuk aplikasi Anda. Batasan ini berbeda untuk aplikasi gratis dan aplikasi yang di-deploy. Anda dapat menggunakan konsol Google Cloud untuk menghapus versi yang lebih lama, lalu mengupload kode terbaru.
[13] An internal error occurred while creating a Cloud Storage bucket.
App Engine membuat bucket multi-regional Cloud Storage default untuk Anda, pada region yang sama tempat aplikasi Anda dibuat. Bucket ini diperlukan untuk menyimpan konten aplikasi Anda. Error ini ditampilkan jika bucket ini tidak dapat dibuat, dalam skenario berikut:
Akun layanan App Engine default tidak ada dalam project Anda. Jika akun Anda dihapus sebelum 30 hari berlalu 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 dibuat.
[13] An internal error occurred
Error ini dapat terjadi jika file konfigurasi
app.yaml
App Engine berisiname
resource yang tidak valid pada kuncivpc_access_connector
. Pastikan kolomname
berisi project dan region yang benar tempat konektor Akses VPC Serverless dibuat.Jika masalah berlanjut setelah memastikan konfigurasi
app.yaml
Anda valid, gunakan Google Cloud SDK untuk men-deploy ulang layanan Anda, menambahkan flag--verbosity=debug
, dan hubungi Dukungan Cloud dengan memberikan output perintah.- Error deployment lainnya
Jika deployment gagal, pastikan Cloud Build API diaktifkan di project Anda. App Engine mengaktifkan API ini secara otomatis saat pertama kali Anda men-deploy aplikasi, namun, jika seseorang telah menonaktifkan API tersebut, deployment akan gagal.
Langkah berikutnya
- Gunakan layanan untuk membangun aplikasi besar.
- Pisahkan traffic atau migrasikan traffic untuk merutekan traffic ke versi yang Anda deploy.
- Tinjau argumen dan
flag command line
gcloud app deploy
.