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 mem-build aplikasi di App Engine menggunakan PHP versi 7.4 atau 8.1. Aplikasi contoh memungkinkan pengguna memposting judul, penulis, deskripsi, tanggal publikasi, dan gambar buku favorit mereka ke halaman web. Aplikasi menyimpan data tekstual di database Cloud SQL dan gambar di bucket Cloud Storage.
Struktur panduan
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Instal Composer, alat pengelolaan dependensi PHP. Anda harus menginstal Composer secara global di sistem Linux dan Mac OS X.
Unduh aplikasi contoh
Pelajari kode di GitHub
Download atau clone aplikasi.
git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
Atau download contoh sebagai file ZIP dan ekstrak.
Buka direktori
getting-started
.cd php-docs-samples/appengine/standard/getting-started
Menentukan dependensi dengan composer.json
Aplikasi menggunakan pengontrol depan untuk merutekan permintaan. Kode contoh dalam panduan ini menggunakan Framework Slim, tetapi Anda dapat menggunakan framework web pilihan Anda.
Buka file
composer.json
untuk meninjau semua dependensi langsung:Untuk menginstal dependensi dan menghasilkan file
composer.lock
, jalankan perintah berikut:composer install
File
composer.lock
membantu aplikasi Anda mengambil versi paket yang sama dengan yang digunakan di beberapa build dan lingkungan.
Memulai aplikasi dan menentukan pengontrol depan
File index.php
akan melakukan inisialisasi aplikasi dan meneruskan semua permintaan ke pengontrol
yang ditentukan dalam file ./src/controllers.php
.
Untuk informasi selengkapnya tentang penanganan permintaan, baca pengaktifan aplikasi dan menangani permintaan.
Mengintegrasikan dengan layanan Google Cloud
App Engine mengharuskan aplikasi berintegrasi dengan sistem eksternal untuk penyimpanan data. Aplikasi contoh menyimpan data tekstual di Cloud SQL dan gambar di Cloud Storage.
Lihat halaman Choosing a Storage Option untuk semua opsi penyimpanan Google Cloud.
Menggunakan Cloud SQL
Dalam aplikasi contoh, pengguna memposting buku ke halaman web. Aplikasi ini menggunakan database Cloud SQL untuk menyimpan judul, penulis, tanggal publikasi, dan deskripsi buku.
Anda harus membuat instance Cloud SQL sebelum menambahkan konten ke database aplikasi.
Membuat instance Cloud SQL
Gunakan gcloud CLI untuk membuat instance Cloud SQL:
gcloud sql instances create INSTANCE_NAME --tier=MACHINE_TYPE --region=REGION
Misalnya, jika Anda ingin memberi nama instance bookshelf
dan menggunakan jenis mesin db-n1-standard-2
di region Amerika Serikat bagian tengah:
gcloud sql instances create bookshelf --tier=db-n1-standard-2 --region=us-central1
Menyiapkan pengguna root MySQL
Anda dapat menggunakan gcloud CLI untuk menetapkan sandi pengguna root instance Cloud SQL Anda:
gcloud sql users set-password USER --host=HOST --instance=INSTANCE_NAME --password=PASSWORD
Misalnya, jika Anda ingin menetapkan sandi pengguna root untuk instance Cloud SQL bookshelf
ke passw0rd!
:
gcloud sql users set-password root --host=% --instance=bookshelf --password=passw0rd!
Menyiapkan database pada instance Cloud SQL
Untuk menyimpan penulis, judul, tanggal publikasi, dan deskripsi buku, buat database MySQL:
gcloud sql databases create DATABASE_NAME --instance=INSTANCE_NAME
Misalnya, jika Anda ingin membuat database bernama book-data
di instance Cloud SQL bookshelf
:
gcloud sql databases create book-data --instance=bookshelf
Terhubung ke database Cloud SQL
Aplikasi contoh menggunakan PDO PHP untuk berinteraksi dengan database MySQL.
Untuk tutorial ini, parameter ini ditentukan sebagai variabel lingkungan di bawah ini dalam artikel Mengonfigurasi aplikasi.
Membuat kueri suatu baris
Saat pengguna mengklik buku, aplikasi akan mengkueri database dan menampilkan satu baris yang mencakup judul, penulis, tanggal publikasi, dan deskripsi buku.
Menggunakan Cloud Storage
Aplikasi contoh menggunakan Cloud Storage untuk menyimpan gambar, yang merupakan file biner, yang diupload oleh pengguna.
Membuat bucket Cloud Storage
Cloud Storage menggunakan bucket untuk mengatur dan mengontrol akses ke data Anda.
Gunakan gcloud CLI untuk membuat bucket Cloud Storage:
gcloud storage buckets create gs://BUCKET_NAME/ --location=BUCKET_REGION
Misalnya, jika Anda ingin membuat bucket bernama picture-storage
di region us-central1
:
gcloud storage buckets create gs://picture-storage/ --location=us-central1
Jika berhasil, Anda akan melihat output berikut:
Creating gs://BUCKET_NAME/
Jika tidak berhasil, Anda mungkin akan melihat output berikut:
ServiceException: 409 Bucket BUCKET_NAME already exists
Coba lagi dengan nama bucket yang berbeda.
Menghubungkan project ke bucket Cloud Storage
Untuk menggunakan Cloud Storage, Anda perlu menentukan library Cloud Storage.
Menyimpan gambar
Setelah membuat bucket Cloud Storage dan menyiapkan koneksi, Anda dapat menyimpan gambar. Gambar dapat diupload dengan daftar kontrol akses (ACL) standar untuk mengontrol akses ke image.
Dalam aplikasi contoh ini, gambar yang diupload akan memiliki public-read
ACL yang telah ditetapkan. URL publik dapat diakses melalui properti mediaLink
dari objek Cloud Storage Anda. Anda dapat menggunakan URL ini di tag gambar HTML.
Untuk petunjuk cara membaca objek Cloud Storage pribadi, lihat halaman Mendownload Objek.
Menghapus beberapa gambar
Saat pengguna menghapus buku dari aplikasi, kode ini akan menghapus gambar dari bucket Cloud Storage.
Mengonfigurasi aplikasi
Anda mengonfigurasi aplikasi untuk berjalan di App Engine menggunakan file app.yaml, yang menentukan runtime aplikasi, variabel lingkungan, dan setelan lainnya.
Untuk aplikasi dengan persyaratan konfigurasi minimal, file app.yaml
dapat berupa
satu baris:
PHP 8.1
runtime: php81
PHP 7.4
runtime: php74
Anda dapat menambahkan opsi konfigurasi lebih lanjut dan variabel lingkungan khusus aplikasi ke dalam file konfigurasi app.yaml
.
Menambahkan variabel lingkungan
File app.yaml
adalah tempat konfigurasi lingkungan disediakan untuk aplikasi. Contoh rak buku yang digunakan dalam panduan ini memerlukan konfigurasi yang disediakan sebagai variabel lingkungan untuk mengetahui cara terhubung ke instance Cloud SQL yang benar dan bucket Cloud Storage.
Untuk men-deploy aplikasi, Anda perlu mengedit file konfigurasi app.yaml
:
Tetapkan variabel
GOOGLE_STORAGE_BUCKET
ke nama bucket Cloud Storage Anda.Tetapkan variabel
CLOUDSQL_CONNECTION_NAME
ke app-name:region:instance-name Anda dapat mengambil detail yang diperlukan dengan menggunakan perintahgcloud
berikut:gcloud sql instances describe INSTANCE
Untuk instance Cloud SQL Generasi Kedua,
CLOUDSQL_CONNECTION_NAME
akan memiliki format berikut:your_project_name:your_region:your_instance
Hapus tanda komentar dan tetapkan variabel
CLOUD_SQL_DATABASE_NAME
jika database yang telah Anda buat memiliki nama selainbookshelf
. Dalam contoh ini, database te dibuat dengan namabook-data
.Tinjau file
app.yaml
Anda, yang seharusnya terlihat seperti ini:
PHP 8.1
runtime: php81
env_variables:
GOOGLE_STORAGE_BUCKET: picture-storage
CLOUDSQL_CONNECTION_NAME: sample-application:us-central1:bookshelf
CLOUDSQL_USER: root
CLOUDSQL_PASSWORD: passw0rd!
CLOUDSQL_DATABASE_NAME: book-data
PHP 7.4
runtime: php74
env_variables:
GOOGLE_STORAGE_BUCKET: picture-storage
CLOUDSQL_CONNECTION_NAME: sample-application:us-central1:bookshelf
CLOUDSQL_USER: root
CLOUDSQL_PASSWORD: passw0rd!
CLOUDSQL_DATABASE_NAME: book-data
Men-deploy aplikasi
Untuk men-deploy aplikasi, buka direktori
getting-started
dan jalankan perintah berikut:gcloud app deploy
Saat permintaan lokasi muncul, pilih lokasi di dekat pengguna aplikasi Anda. App Engine bersifat regional, yang berarti infrastruktur yang menjalankan aplikasi Anda terletak di area geografis tertentu. Misalnya, tutorial ini telah menggunakan region
us-central1
untuk men-deploy resource penyimpanannya. Deploy aplikasi di region yang sama untuk mengurangi latensi dan meningkatkan performa.Secara umum, memilih lokasi di dekat pengguna merupakan ide yang bagus, tetapi sebaiknya men-deploy aplikasi yang dekat dengan lokasi resource-nya. Baca lokasi App Engine dan lokasi resource yang tersedia.
Melihat aplikasi:
gcloud app browse
Pembersihan
Hapus project Google Cloud Anda untuk menghentikan penagihan resource yang digunakan dalam project tersebut.
Untuk menghapus project Anda menggunakan perintah berikut:
gcloud projects delete PROJECT_ID
Untuk memverifikasi bahwa project sudah dihapus, cantumkan project Anda:
gcloud projects list
Langkah berikutnya
- Pelajari cara mengautentikasi pengguna.
- Pelajari lebih lanjut cara menulis log aplikasi dan menafsirkan log sistem di Membaca dan menulis log aplikasi.
- Pelajari cara melakukan pekerjaan di latar belakang secara asinkron setelah permintaan Anda menggunakan Cloud Tasks.
- Baca penanganan permintaan dan pemilihan rute permintaan.
- Untuk mempelajari lebih lanjut cara kerja App Engine, lihat lingkungan runtime PHP.