Membuat dan men-deploy fungsi HTTP Cloud Run menggunakan PHP (generasi ke-1)
Panduan ini membawa Anda melalui proses penulisan fungsi Cloud Run menggunakan runtime PHP. Ada 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.
Contoh ini menunjukkan cara membuat fungsi HTTP sederhana.
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Cloud Functions and Cloud Build.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Cloud Functions and Cloud Build.
- Instal dan lakukan inisialisasi gcloud CLI.
- Update dan instal komponen
gcloud
:gcloud components update
- Menyiapkan lingkungan pengembangan.
Membuat 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.
Menentukan dependensi
Anda menggunakan Composer untuk mengelola dependensi di PHP. Jika belum menginstal Composer, Anda dapat melakukannya sebagai berikut:
Download Composer ke lokasi mana pun yang Anda inginkan.
Setelah didownload, pindahkan file
composer.phar
ke direktori yang ada di jalur sistem Anda, misalnya:mv composer.phar /usr/local/bin/composer
Selanjutnya, tentukan dependensi fungsi Anda:
Tambahkan file
composer.json
yang berisi dependensi ke direktori kode fungsi, denganFUNCTION_TARGET=FUNCTION_NAME
menunjukkan nama fungsi Anda. Dalam contoh ini,FUNCTION_NAME
adalahhelloHttp
:Dalam direktori yang berisi kode fungsi Anda (yang juga harus berisi file
composer.json
yang baru saja Anda buat), jalankan perintah berikut:composer require google/cloud-functions-framework
Tindakan ini akan menambahkan Functions Framework ke
composer.json
Anda. Ini juga membuat direktorivendor/
dalam direktori kode fungsi Anda yang berisi dependensi.
Membuat dan menguji secara lokal
Setelah Anda menyelesaikan langkah-langkah dalam Tentukan dependensi, Anda dapat membuat dan menguji fungsi secara lokal.
Perintah berikut akan membuat server web lokal yang menjalankan fungsi helloHttp
Anda:
export FUNCTION_TARGET=helloHttp
php -S localhost:8080 vendor/bin/router.php
Jika fungsi berhasil dibuat, fungsi tersebut akan menampilkan URL. Anda dapat membuka URL ini
dengan browser web Anda:
http://localhost:8080/
. Anda akan melihat pesan Hello World!
.
Atau, Anda dapat mengirim permintaan ke fungsi ini menggunakan curl
dari jendela terminal lain:
curl localhost:8080
# Output: Hello World!
Men-deploy cloud function
Untuk men-deploy fungsi dengan pemicu HTTP, jalankan perintah
berikut di direktori helloworld_http
:
gcloud functions deploy helloHttp --no-gen2 --runtime php82 --trigger-http --allow-unauthenticated
Flag --allow-unauthenticated
memungkinkan Anda menjangkau fungsi tanpa autentikasi.
Untuk mewajibkan autentikasi, hilangkan flag.
Menguji fungsi yang di-deploy
Setelah fungsi selesai di-deploy, catat properti
httpsTrigger.url
atau temukan menggunakan perintah berikut:gcloud functions describe helloHttp
Kodenya akan terlihat seperti berikut:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/helloHttp
Kunjungi URL ini di browser Anda. Anda akan melihat pesan "Halo Dunia!".
Coba teruskan sebuah nama dalam permintaan HTTP, seperti yang ditunjukkan dalam contoh URL ini:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/helloHttp?name=NAME
Anda akan melihat pesan "Halo
NAME
!"
Lihat log
Log untuk fungsi Cloud Run dapat dilihat menggunakan Google Cloud CLI, dan di UI Cloud Logging.
Menggunakan alat command line
Untuk melihat log fungsi Anda dengan gcloud CLI, gunakan
perintah gcloud logs read
,
diikuti dengan nama fungsi:
gcloud functions logs read helloHttp
Output akan terlihat seperti berikut:
LEVEL NAME EXECUTION_ID TIME_UTC LOG D helloHttp rvb9j0axfclb 2019-09-18 22:06:25.983 Function execution started D helloHttp rvb9j0axfclb 2019-09-18 22:06:26.001 Function execution took 19 ms, finished with status code: 200
Menggunakan dasbor Logging
Anda juga dapat melihat log untuk fungsi Cloud Run dari Konsol Google Cloud.