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.
Halaman ini menjelaskan cara permintaan HTTP dari pengguna menjangkau versi layanan yang sesuai. Permintaan dapat dirutekan dengan cara berikut:
Jika Anda menguji aplikasi menggunakan server pengembangan
lokal,
fitur perutean dan pengiriman yang tersedia sedikit berbeda. Untuk
membuat URL secara terprogram yang berfungsi dengan server produksi dan
pengembangan, gunakan
metode
ModulesService.getVersionHostname
.
Lihat pemilihan rute di server pengembangan untuk mempelajari lebih lanjut.
Pemilihan rute dengan URL
Setelah aplikasi Anda berjalan di App Engine, Anda dapat menggunakan URL berikut untuk
mengirim permintaan HTTP ke aplikasi:
https://PROJECT_ID.REGION_ID.r.appspot.com
dengan PROJECT_ID
adalah ID project Google Cloud yang berisi aplikasi.
URL ini mengirimkan permintaan ke layanan default aplikasi pada versi yang telah Anda konfigurasi untuk menerima traffic.
URL untuk layanan dan versi
Jika Anda membuat lebih dari satu layanan di aplikasi, setiap layanan memiliki URL-nya sendiri. Setiap versi layanan juga memiliki URL-nya sendiri, sehingga Anda dapat men-deploy dan menguji versi baru sebelum mengonfigurasi versi tersebut untuk menerima traffic.
URL untuk layanan dan versi tertentu ada dalam bentuk berikut:
VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com
Anda dapat menghilangkan VERSION-dot-
jika tidak perlu menargetkan versi tertentu.
Untuk mengambil ID layanan dan versi aplikasi, Anda dapat menggunakan salah satu alat berikut:
Konsol
Di konsol Google Cloud, Anda dapat melihat halaman Instances, Services, dan Versions yang sesuai.
gcloud
Jalankan perintah
gcloud app instances list
untuk mencantumkan ID resource dalam project Google Cloud tertentu.
API
Untuk mengambil ID resource secara terprogram, lihat metode list
di
Admin API.
Contoh URL
Berikut adalah beberapa contoh URL untuk App Engine, yang menunjukkan domain appspot.com
yang ditetapkan App Engine untuk aplikasi Anda dan domain kustom yang dapat Anda siapkan untuk aplikasi Anda ini.
- Mengirim permintaan ke instance layanan
default
yang tersedia: https://PROJECT_ID.REGION_ID.r.appspot.com
https://CUSTOM_DOMAIN
Permintaan diterima oleh semua versi yang dikonfigurasi untuk traffic di layanan
default
.- Mengirim permintaan ke instance layanan
- Mengirim permintaan ke instance layanan tertentu yang tersedia:
https://SERVICE_ID-dot-PROJECT_ID.REGION_ID.r.appspot.com
https://SERVICE_ID.CUSTOM_DOMAIN
Permintaan diterima oleh semua versi yang dikonfigurasi untuk traffic di layanan yang ditargetkan. Jika layanan yang Anda targetkan tidak ada, permintaan akan dirutekan dengan ringan.
- Mengirim permintaan ke instance yang tersedia dari versi tertentu di
- Layanan
default
: https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com
https://VERSION_ID.CUSTOM_DOMAIN
Jika layanan tidak ditargetkan, permintaan akan dikirim ke layanan
default
.
Pemilihan rute ringan
Jika permintaan cocok dengan bagian PROJECT_ID.REGION_ID.r.appspot.com
nama host, tetapi menyertakan layanan, versi, atau nama instance yang tidak ada, permintaan tersebut akan dirutekan ke layanan default
. Pemilihan rute ringan tidak berlaku
untuk domain kustom; permintaan kepadanya akan menampilkan kode status
HTTP 404
jika nama host tidak valid.
Pemilihan rute yang ditargetkan
Pola URL berikut dijamin akan mencapai targetnya, jika ada. Permintaan ini tidak pernah dicegat dan dirutekan ulang oleh pola yang telah Anda tentukan di file dispatch:
- Mengirim permintaan ke instance layanan dan versi tertentu yang tersedia:
https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com
https://VERSION_ID.SERVICE_ID.PROJECT_ID.CUSTOM_DOMAIN
Jika menggunakan layanan yang diskalakan secara manual, Anda dapat menargetkan dan mengirim permintaan ke instance dengan menyertakan ID instance. ID instance adalah bilangan bulat dalam rentang dari
0
hingga jumlah total instance yang berjalan, dan dapat ditentukan sebagai berikut:Mengirim permintaan ke layanan dan versi tertentu dalam instance tertentu:
https://INSTANCE_ID-dot-VERSION_ID-dot-SERVICE_ID-dot-PROJECT_ID.REGION_ID.r.appspot.com https://INSTANCE_ID.VERSION_ID.SERVICE_ID.CUSTOM_DOMAIN
Memilih rute dengan file dispatch
Anda dapat membuat file dispatch untuk mengganti aturan pemilihan rute berbasis URL App Engine dan menentukan aturan pemilihan rute kustom Anda sendiri. Dengan file dispatch, Anda dapat mengirim permintaan masuk ke layanan tertentu berdasarkan jalur atau nama host di URL permintaan.
Membuat file dispatch
Untuk membuat file dispatch:
Buat file bernama
dispatch.yaml
di direktori yang sama dengan yang digunakan untuk file konfigurasi lainnya, seperti app.yaml.Tentukan aturan rute dalam file seperti yang dijelaskan, lihat referensi
dispatch.yaml
.
Perhatikan hal-hal berikut terkait aturan pemilihan rute:
- Anda dapat menentukan hingga 20 aturan pemilihan rute. Setiap aturan harus berisi
elemen
url
danservice
. - Aturan tersebut harus menggunakan pola URL HTTP yang menyertakan notasi "
.
" untuk memisahkan subdomain. URL yang ditentukan dengan notasi "-dot-
" HTTPS tidak didukung. - Aturan ini juga berlaku untuk URL yang Anda tentukan dalam file cron.
Misalnya, Anda dapat membuat file pengiriman untuk merutekan permintaan seluler seperti
https://simple-sample.uc.r.appspot.com/mobile/
ke frontend seluler, dan merutekan permintaan pekerja
seperti https://simple-sample.uc.r.appspot.com/work/
ke backend statis:
dispatch:
# Send all mobile traffic to the mobile frontend.
- url: "*/mobile/*"
service: mobile-frontend
# Send all work to the one static backend.
- url: "*/work/*"
service: static-backend
Men-deploy file dispatch
Untuk men-deploy file konfigurasi dispatch tanpa mengubah versi yang saat ini ditayangkan, gunakan salah satu perintah berikut di direktori yang berisi file dispatch Anda, tergantung pada lingkungannya:gcloud
gcloud app deploy dispatch.yaml
Maven
mvn appengine:deployDispatch dispatch.yaml
Gradle
gradle appengineDeployDispatch dispatch.yaml
IDE
Jika menggunakan IntelliJ atau Eclipse, Anda memilih setiap file konfigurasi yang akan di-deploy menggunakan formulir deployment.
Pemilihan rute dengan Cloud Load Balancing
Cloud Load Balancing adalah produk terpisah yang memungkinkan konfigurasi jaringan lanjutan untuk semua aplikasi Anda yang berjalan di Google Cloud.
Saat Load Balancing HTTP(S) diaktifkan untuk aplikasi serverless, Anda dapat:
Konfigurasi aplikasi serverless untuk menyalurkan dari alamat IP IPv4 dan/atau IPv6 khusus yang tidak digunakan bersama dengan layanan lain.
Gunakan kembali sertifikat SSL dan kunci pribadi yang sama dengan yang Anda gunakan untuk Compute Engine, Google Kubernetes Engine, dan Cloud Storage. Dengan demikian, Anda tidak perlu mengelola sertifikat terpisah untuk aplikasi serverless.
Load balancer tidak mengganggu atau berinteraksi dengan aturan pemilihan rute di file dispatch.yaml
Anda. Aturan dispatch.yaml
tidak dievaluasi hingga NEG serverless mengarahkan traffic ke App Engine.
Perhatikan hal-hal berikut:
- Sebaiknya gunakan kontrol traffic masuk sehingga aplikasi Anda hanya menerima permintaan yang dikirim dari load balancer (dan VPC jika Anda menggunakannya). Jika tidak, pengguna dapat menggunakan URL App Engine aplikasi Anda untuk mengabaikan load balancer, kebijakan keamanan Google Cloud Armor, sertifikat SSL, dan kunci pribadi yang diteruskan melalui load balancer.
Perutean di server pengembangan
Menemukan alamat instance
Server pengembangan lokal membuat semua instance saat startup. Perhatikan bahwa saat ini, instance penskalaan dasar tidak didukung di server pengembangan lokal. Setiap instance yang dibuat akan diberi port-nya sendiri. Penetapan port akan muncul di stream pesan log server. Klien web dapat berkomunikasi dengan instance tertentu dengan menargetkan port-nya. Hanya satu instance (dan port) yang dibuat untuk layanan penskalaan otomatis. Tampilannya seperti ini di log server (perhatikan bahwa layanan sebelumnya disebut modul):
INFO: Module instance service-auto is running at http://localhost:37251/
Port unik ditetapkan ke setiap instance layanan berskala manual:
INFO: Module instance service-manual instance 0 is running at http://localhost:43190/
INFO: Module instance service-manual instance 1 is running at http://localhost:52642/
Selain itu, setiap layanan yang diskalakan secara manual diberi satu port tambahan sehingga klien dapat mengakses layanan tanpa menentukan instance spesifik. Permintaan ke port ini otomatis dirutekan ke salah satu instance yang dikonfigurasi:
INFO: Module instance service-manual is running at http://localhost:12361/
Tabel berikut menunjukkan cara layanan ini dapat dipanggil di server pengembangan dan di lingkungan App Engine:
Layanan | Instance | Alamat server pengembangan | Alamat App Engine |
---|---|---|---|
service-auto | (tidak digunakan) | http://localhost:37251/ |
https://v1-dot-service-auto-dot-PROJECT_ID.REGION_ID.r.appspot.com/ |
service-manual | 0 | http://localhost:43190/ |
https://0-dot-v1-dot-service-manual-dot-PROJECT_ID.REGION_ID.r.appspot.com/ |
digunakan oleh server pengembangan lokal. Untuk mengetahui detailnya, lihat Apache Maven atau Gradle.
File dispatch
Semua file dispatch akan diabaikan saat menjalankan server pengembangan lokal. Satu-satunya cara untuk menargetkan instance adalah melalui port-nya.Membatasi akses ke layanan
Semua layanan bersifat publik secara default. Jika Anda ingin membatasi akses ke layanan,
tambahkan elemen <role-name>admin</role-name>
ke
batasan keamanannya
Detail tambahan tentang URL App Engine
Memahami ID Region di URL
REGION_ID
adalah kode singkat yang Google tetapkan
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 provinsi dan negara 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 ini, ID
region bersifat opsional dalam URL.
Anda dapat menggunakan alat berikut untuk melihat ID region aplikasi Anda:
Konsol
Di konsol Google Cloud, Anda dapat melihat URL untuk Instances, Services, dan Versions aplikasi Anda.
Semua URL ini menyertakan ID region.
gcloud
Saat Anda men-deploy aplikasi atau layanan, perintah gcloud app deploy
akan menampilkan URL setelah deployment berhasil. URL ini menyertakan
ID region.
Untuk melihat URL layanan yang telah di-deploy:
Masukkan perintah
gcloud app versions list
untuk mencantumkan versi layanan tertentu. Misalnya, untuk mencantumkan versi layanan default, masukkangcloud app versions list --service=default
.Masukkan perintah
gcloud app versions describe
. Output perintah tersebut mencakup URL versi dengan ID region aplikasi. Misalnya, untuk menjelaskan versi 20191023t101741 untuk layanan default, masukkangcloud app versions describe 20191023t101741 --service=default
Nama domain disertakan dalam data permintaan
Nama domain yang digunakan untuk permintaan disertakan dalam data permintaan yang
diteruskan ke aplikasi Anda. Oleh karena itu, Anda dapat menggunakan data permintaan untuk mengontrol cara
aplikasi merespons berdasarkan nama domain dalam permintaan. Misalnya, jika ingin
mengalihkan ke domain resmi, Anda dapat membuat kode aplikasi untuk memeriksa header
permintaan Host
, lalu merespons sesuai dengan nama domain tersebut.