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.
Gunakan App Engine Admin API untuk men-deploy versi aplikasi Anda secara terprogram ke aplikasi App Engine melalui permintaan POST
HTTP.
Sebelum memulai
Sebelum dapat mengirim permintaan deployment HTTP, Anda harus dapat mengizinkan permintaan HTTP, mengakses file bertahap aplikasi Anda, dan memiliki file konfigurasi berformat JSON. Lihat topik berikut untuk membantu Anda dengan prasyarat ini:
Men-deploy aplikasi Anda ke App Engine dengan Admin API
Untuk men-deploy versi aplikasi Anda ke aplikasi di App Engine:
Mengizinkan permintaan HTTP Anda, misalnya mendapatkan token akses.
Mengizinkan akses ke Admin API dapat dilakukan dengan alur OAuth yang berbeda, bergantung pada kebutuhan aplikasi API Anda. Untuk informasi selengkapnya, lihat Mengakses API.
Kirim permintaan
POST
HTTP menggunakan token akses Anda dan Admin API untuk men-deploy versi ke aplikasi App Engine Anda:Untuk men-deploy versi, kirim permintaan
POST
HTTP yang menentukan file konfigurasi JSON dan menentukan resourceVersion
pada layanan target dan aplikasi App Engine.Misalnya, Anda dapat menggunakan permintaan
POST
HTTP berikut untuk men-deploy versi yang ditentukan dalam file konfigurasi JSON, ke layanandefault
aplikasiMY_PROJECT_ID
:POST https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/versions app.json
Contoh perintah cURL:
curl -X POST -T "app.json" -H "Content-Type: application/json" -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/versions
Dengan keterangan:
[MY_ACCESS_TOKEN]
adalah token akses yang Anda dapatkan untuk mengizinkan permintaan HTTP Anda.[MY_PROJECT_ID]
adalah ID project tempat Anda ingin men-deploy versi.
Contoh respons:
{ "metadata": { "@type": "type.googleapis.com/google.appengine.v1.OperationMetadataV1", "insertTime": "2015-05-29T17:12:44.679Z", "method": "google.appengine.v1.Versions.CreateVersion", "target": "apps/[MY_PROJECT_ID]/services/default/versions/v1", "user": "me@example.com" } "name": "apps/[MY_PROJECT_ID]/operations/89729825-ef1f-4ffa-b3e3-e2c25eb66a85" }
Pastikan versi Anda telah di-deploy ke aplikasi App Engine:
Lihat status operasi deployment yang sebenarnya:
Permintaan
POST
HTTP yang Anda gunakan di langkah sebelumnya akan menampilkan nama operasi di kolomname
, yang digunakan bersama metodeGET
dari koleksiapps.operations
untuk memeriksa status operasi deployment.Misalnya, jika kolom
name
respons adalah:"name": "apps/[MY_PROJECT_ID]/operations/89729825-ef1f-4ffa-b3e3-e2c25eb66a85"
Kemudian, kirim permintaan
GET
HTTP berikut:GET https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/operations/89729825-ef1f-4ffa-b3e3-e2c25eb66a85
Contoh perintah cURL:
curl -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/operations/89729825-ef1f-4ffa-b3e3-e2c25eb66a85
Dengan
[MY_ACCESS_TOKEN]
sebagai token akses Anda dan[MY_PROJECT_ID]
sebagai ID project tempat Anda men-deploy versi.Contoh respons:
{ "done": true, "metadata": { "@type": "type.googleapis.com/google.appengine.v1.OperationMetadataV1", "endTime": "2015-05-29T17:13:20.424Z", "insertTime": "2015-05-29T17:12:44.679Z", "method": "google.appengine.v1.Versions.CreateVersion", "target": "apps/[MY_PROJECT_ID]/services/default/versions/v1", "user": "me@example.com" }, "name": "apps/[MY_PROJECT_ID]/operations/89729825-ef1f-4ffa-b3e3-e2c25eb66a85", "response": { "@type": "type.googleapis.com/google.appengine.v1.Version", "creationTime": "2015-05-29T17:12:46.000Z", "deployer": "me@example.com", "id": "v1", "name": "apps/[MY_PROJECT_ID]/services/default/versions/v1", "runtime": "python27", "servingStatus": "SERVING", "threadsafe": true, } }
Untuk mempelajari lebih lanjut cara melakukan polling operasi yang berjalan lama, lihat referensi RPC google.longrunning.
Pastikan versi telah dibuat di aplikasi App Engine Anda:
Untuk melihat detail tentang versi, Anda dapat menggunakan metode
GET
dari koleksiapps.services.versions
. Anda harus menentukan versi yang di-deploy dalam permintaanGET
HTTP, misalnya:GET https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/versions/v1
Contoh perintah cURL:
curl -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/versions/v1
Dengan
[MY_ACCESS_TOKEN]
sebagai token akses Anda dan[MY_PROJECT_ID]
sebagai ID project tempat Anda men-deploy versi.Contoh respons:
{ "creationTime": "2015-05-29T17:12:46.000Z", "deployer": "me@example.com", "deployment": { "files": { "my-python-app.py": { "sha1Sum": "7cffbdaa9fcfa46e5e58269bfe336dd815de0566", "sourceUrl": "https://storage.googleapis.com/[YOUR_BUCKET_ID]/my-application/logo.jpg", }, "logo.jpg": { "sha1Sum": "13f7ea1e24f7cd2de5c66660525f2b509da37c14", "sourceUrl": "https://storage.googleapis.com/[YOUR_BUCKET_ID]/my-application/my-python-app.py" } } }, "handlers": [ { "authFailAction": "AUTH_FAIL_ACTION_REDIRECT", "login": "LOGIN_OPTIONAL", "script": { "scriptPath": "my-python-app.application", }, "securityLevel": "SECURE_OPTIONAL", "urlRegex": "/.*" } ] "id": "v1", "name": "apps/[MY_PROJECT_ID]/services/default/versions/v1", "runtime": "python27", "servingStatus": "SERVING", "threadsafe": true, }
GET https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/versions/v1?view=FULL
Opsional: Untuk meluncurkan browser dan melihat aplikasi di
https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com
, Anda dapat menjalankan perintah berikut:gcloud app browse -v [MY_VERSION_ID]
Konfigurasikan jumlah traffic yang seharusnya diterima oleh versi yang baru saja Anda deploy.
Secara default, versi awal yang Anda deploy ke aplikasi App Engine akan otomatis dikonfigurasi untuk menerima 100% traffic. Namun, semua versi berikutnya yang Anda deploy ke aplikasi App Engine yang sama harus dikonfigurasi secara manual agar dapat menerima traffic.
Untuk mengetahui detail tentang cara mengonfigurasi traffic untuk versi Anda, baca bagian Memigrasi dan Memisahkan Traffic.
Men-deploy versi dan layanan tambahan
Langkah-langkah untuk men-deploy versi aplikasi Anda berikutnya, termasuk membuat layanan tambahan, hampir sama dengan langkah deployment yang dibahas dalam tugas ini. Jika ingin mengganti versi saat ini yang berjalan di aplikasi App Engine Anda, atau jika ingin menambahkan layanan lain, Anda dapat men-deploy versi baru setelah membuat beberapa modifikasi pada file konfigurasi.
Lihat contoh berikut untuk mengetahui cara men-deploy versi tambahan ke aplikasi App Engine Anda. Ingat, setelah men-deploy versi, Anda perlu mengonfigurasi traffic-nya.
Contoh: Men-deploy versi tambahan
Jika versi lama atau yang salah berjalan di App Engine, Anda dapat mengganti versi tersebut dengan men-deploy versi lain ke aplikasi App Engine Anda, lalu melakukan perutean traffic ke versi tersebut. Misalnya, setelah memodifikasi kode sumber aplikasi, Anda dapat mengubah nilai version
dalam file app.yaml
, membuat file app.json
baru, lalu men-deploy versi v2
aplikasi Anda dengan permintaan POST
HTTP lain:
Contoh file app.yaml
yang diperbarui:
service: default
version: v2
runtime: python27
threadsafe: true
handlers:
- url: /.*
script: my-python-app.application
Contoh permintaan HTTP POST
untuk versi v2
:
POST https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/versions app.json
Setelah melakukan langkah-langkah untuk memastikan versi berhasil di-deploy, Anda dapat mengirim permintaan PATCH
HTTP untuk melakukan perutean semua traffic ke versi baru, misalnya:
PATCH https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/?updateMask=split {"split": { "allocations": { "v2": "1" } } }
Untuk informasi tentang cara merutekan traffic, lihat Memigrasikan dan Memisahkan Traffic.
Contoh: Men-deploy beberapa layanan
Jika Anda memiliki versi v1
yang berjalan di aplikasi App Engine dan ingin men-deploy layanan tambahan, misalnya backend
, lakukan langkah-langkah deployment yang sama.
Misalnya, untuk men-deploy versi v1
yang membuat layanan backend
:
- Buat kode dan file sumber baru untuk layanan
backend
. - Tempatkan resource aplikasi untuk layanan
backend
Anda di bucket Cloud Storage. - Buat file konfigurasi
backend/app.json
. Gunakan permintaan HTTP untuk men-deploy versi
v1
layananbackend
ke aplikasi App Engine Anda:Contoh permintaan
POST
HTTP:POST https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/backend/versions backend/app.json
Contoh permintaan
GET
HTTP untuk memverifikasi bahwa versiv1
dalam layananbackend
telah dibuat:GET https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services
Contoh respons:
{ "services": [ { "name": "apps/[MY_PROJECT_ID]/services/default", "id": "default", "split": { "allocations": { "v2": 1 } } }, { "name": "apps/[MY_PROJECT_ID]/services/backend", "id": "backend", "split": { "allocations": { "v1": 1 } } } ] }