Membuat dan men-deploy fungsi Cloud Run HTTP dengan PHP
Panduan ini akan memandu Anda dalam proses penulisan fungsi Cloud Run menggunakan runtime PHP, lalu menguji dan men-deploy fungsi HTTP.
Anda dapat membuat dua jenis fungsi Cloud Run:
- Fungsi HTTP, yang Anda panggil dari permintaan HTTP standar.
- Fungsi berbasis peristiwa, yang Anda gunakan untuk menangani peristiwa dari infrastruktur Cloud, seperti pesan di topik Pub/Sub, atau perubahan dalam bucket Cloud Storage.
Untuk mengetahui detail selengkapnya, lihat artikel tentang menulis fungsi HTTP dan menulis fungsi berbasis peristiwa.
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 Functions, Cloud Build, Artifact Registry, Cloud Run, and Cloud Logging APIs.
-
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 Functions, Cloud Build, Artifact Registry, Cloud Run, and Cloud Logging APIs.
- Instal dan lakukan inisialisasi gcloud CLI.
- Update dan instal komponen
gcloud
dengan perintah berikut.gcloud components update
-
Menyiapkan lingkungan pengembangan.
Buat fungsi
Buat direktori di sistem lokal Anda untuk kode fungsi:
Linux atau Mac OS X
mkdir ~/helloworld_http cd ~/helloworld_http
Windows
mkdir %HOMEPATH%\helloworld_http cd %HOMEPATH%\helloworld_http
Buat file
index.php
di direktorihelloworld_http
dengan konten berikut:Fungsi contoh ini mengambil nama yang diberikan dalam permintaan HTTP dan menampilkan salam, atau "Halo Dunia!" jika tidak ada nama yang diberikan. Untuk pembahasan lebih lanjut tentang struktur dan elemen yang diperlukan dalam fungsi HTTP PHP, lihat Menulis fungsi HTTP.
Menentukan dependensi
PHP menggunakan Composer untuk mengelola dependensi. Jika Anda menggunakan Cloud Shell, composer sudah diinstal sebelumnya. Jika tidak, ikuti petunjuk penginstalan Composer.
Tentukan dependensi fungsi Anda:
Tambahkan file
composer.json
dengan konten berikut ke direktorihelloworld_http
:
Baris
FUNCTION_TARGET
menentukan titik entri fungsi Anda.- Jalankan perintah berikut di direktori
helloworld_http
:
composer require google/cloud-functions-framework
Tindakan ini akan menambahkan Framework Functions ke
composer.json
dan membuat direktorivendor
di dalamhelloworld_http
yang berisi dependensi.
Membangun dan menguji fungsi secara lokal
Untuk mem-build dan menguji fungsi secara lokal sebelum men-deploy-nya, lakukan langkah-langkah berikut:
Buat server web lokal yang menjalankan fungsi
helloHttp
Anda:export FUNCTION_TARGET=helloHttp composer start
Uji fungsi Anda dengan membuka
http://localhost:8080
di browser atau dengan menjalankancurl localhost:8080
dari jendela lain.Lihat Mengirim permintaan ke fungsi lokal untuk mengetahui detail selengkapnya.
Fungsi contoh ini menampilkan pesan "Halo, Dunia!" yang ceria.
Men-deploy fungsi
Untuk men-deploy fungsi Anda, jalankan perintah berikut di direktori helloworld_http
:
gcloud functions deploy php-http-function \
--gen2 \
--runtime=php83 \
--region=REGION \
--source=. \
--entry-point=helloHttp \
--trigger-http \
--allow-unauthenticated
Ganti REGION dengan nama region Google Cloud tempat Anda ingin men-deploy fungsi (misalnya us-west1
).
Flag --allow-unauthenticated
opsional memungkinkan Anda menjangkau fungsi
tanpa autentikasi.
Menguji fungsi yang di-deploy
Setelah fungsi di-deploy, catat properti
uri
dari output perintahgcloud functions deploy
, atau ambil dengan perintah berikut:gcloud functions describe php-http-function \ --region=REGION
Ganti REGION dengan nama region Google Cloud tempat Anda men-deploy fungsi (misalnya
us-west1
).Kunjungi URL ini di browser Anda. Fungsi ini menampilkan pesan "Halo Dunia!".
Anda juga dapat menemukan URL ini di Google Cloud Console. Buka halaman Ringkasan fungsi Cloud Run, lalu klik nama fungsi Anda untuk membuka halaman Detail fungsi. Buka tab TRIGGER untuk melihat URL fungsi Anda.
Melihat log fungsi Anda
Melihat log dengan alat command line
Anda dapat meninjau log fungsi dengan UI Cloud Logging atau melalui Google Cloud CLI.
Untuk melihat log fungsi Anda dengan gcloud CLI, gunakan perintah logs read
:
gcloud functions logs read \
--gen2 \
--limit=10 \
--region=REGION \
php-http-function
Ganti REGION dengan nama region Google Cloud tempat Anda men-deploy fungsi
(misalnya us-west1
).
Outputnya akan terlihat seperti berikut:
LEVEL: I
NAME: hellohttp
TIME_UTC: 2023-06-02 19:01:36.067
LOG:
LEVEL: I
NAME: hellohttp
TIME_UTC: 2023-06-02 19:01:22.814
LOG: Default STARTUP TCP probe succeeded after 1 attempt for container "hello_http-1" on port 8080.
LEVEL: I
NAME: hellohttp
TIME_UTC: 2023-06-02 19:01:22.777
LOG: [pid1-nginx] Starting nginx (pid 17): /usr/sbin/nginx -c /tmp/nginxconf-953701689/nginx.conf [session:R8F8ZJ5]
LEVEL: I
NAME: hellohttp
TIME_UTC: 2023-06-02 19:01:22.766
LOG: [pid1-nginx] Successfully connected to /tmp/google-config/app.sock after 556.430499ms [session:R8F8ZJ5]
Melihat log dengan dasbor logging
Untuk melihat log fungsi Anda dengan dasbor logging, buka halaman Ringkasan fungsi Cloud Run, lalu klik nama fungsi Anda dari daftar, lalu klik tab Log.