1. Pengantar
Ringkasan
Fungsi Cloud Run adalah cara baru untuk men-deploy workload menggunakan paradigma peristiwa GCF dan tanda tangan fungsi yang sudah dikenal. Alih-alih menggunakan proses build dan konfigurasi deployment yang kami sarankan, Cloud Run Functions memberi Anda kontrol langsung atas Layanan yang mendasarinya yang dibuat di Cloud Run.
Dengan Cloud Run Functions, kami menyediakan UX sederhana untuk deployment sumber Cloud Run, sehingga developer memiliki kontrol penuh atas beban kerja mereka menggunakan konfigurasi Cloud Run.
Codelab ini menggunakan contoh nodejs dalam contoh di bawah. Namun, Anda dapat menggunakan contoh kode Cloud Functions generasi ke-2 dalam bahasa pilihan Anda:
- Contoh fungsi Python
- Contoh fungsi Nodejs
- Contoh fungsi Go
- Contoh fungsi Java
- Contoh fungsi PHP
- Contoh fungsi Ruby
- Contoh fungsi.NET
Yang akan Anda pelajari
- Cara men-deploy fungsi Cloud Run yang dipicu oleh permintaan HTTP
2. Menetapkan Variabel Lingkungan dan Mengaktifkan API
Mengupgrade gcloud CLI
Pertama, Anda harus menginstal gcloud CLI versi terbaru. Anda dapat mengupdate CLI dengan menjalankan perintah berikut:
gcloud components update
Menyiapkan variabel lingkungan
Anda dapat menetapkan variabel lingkungan yang akan digunakan di seluruh codelab ini.
PROJECT_ID=<YOUR_PROJECT_ID> REGION=<YOUR_REGION, e.g. us-central1> gcloud config set project $PROJECT_ID SERVICE_NAME=crf-http-codelab
Mengaktifkan API
Sebelum Anda dapat mulai menggunakan codelab ini, ada beberapa API yang perlu diaktifkan. Codelab ini memerlukan penggunaan API berikut. Anda dapat mengaktifkan API tersebut dengan menjalankan perintah berikut:
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
storage.googleapis.com \
artifactregistry.googleapis.com
3. Membuat fungsi HTTP
Pertama, buat direktori untuk kode sumber dan cd ke direktori tersebut.
mkdir -p cloud-run-functions/$SERVICE_NAME && cd $_
Kemudian, buat file package.json dengan konten berikut:
{
"dependencies": {
"@google-cloud/functions-framework": "^3.0.0"
}
}
Selanjutnya, buat file index.js dengan konten berikut:
const functions = require("@google-cloud/functions-framework");
functions.http("helloHttp", (req, res) => {
res.send(`Hello ${req.query.name || req.body.name || "World"}!`);
});
4. Men-deploy fungsi
Sekarang Anda dapat men-deploy fungsi Cloud Run dengan menjalankan perintah berikut:
gcloud beta run deploy $SERVICE_NAME \
--source . \
--function helloHttp \
--region us-central1 \
--no-allow-unauthenticated
Perintah ini menggunakan buildpack untuk mengubah kode sumber fungsi Anda menjadi image container yang siap produksi.
Harap perhatikan hal berikut:
- Flag –source digunakan untuk memberi tahu Cloud Run agar membangun fungsi ke dalam layanan berbasis container yang dapat dijalankan
- Flag –function (baru) digunakan untuk menetapkan titik entri layanan baru menjadi tanda tangan fungsi yang ingin Anda panggil
- (opsional) –no-allow-unauthenticated untuk mencegah fungsi Anda dapat dipanggil secara publik
5. Menguji fungsi
Setelah deployment selesai, Anda akan melihat URL layanan. Untuk memanggil fungsi, Anda perlu mengirim permintaan yang diautentikasi dengan token identitas Anda atau token identitas principal yang memiliki peran Cloud Run Invoker, seperti yang ditunjukkan di bawah:
# get the Service URL SERVICE_URL="$(gcloud run services describe $SERVICE_NAME --region us-central1 --format 'value(status.url)')" # invoke the service curl -H "Authorization: bearer $(gcloud auth print-identity-token)" -X GET $SERVICE_URL
6. Selamat!
Selamat, Anda telah menyelesaikan codelab.
Sebaiknya tinjau dokumentasi tentang Cloud Run Functions
Yang telah kita bahas
- Cara men-deploy fungsi Cloud Run yang dipicu oleh permintaan HTTP
7. Pembersihan
Untuk menghindari biaya yang tidak disengaja (misalnya, jika layanan Cloud Run tidak sengaja dipanggil lebih banyak daripada alokasi pemanggilan Cloud Run bulanan Anda di tingkat gratis), Anda dapat menghapus Cloud Run atau menghapus project yang Anda buat di Langkah 2.
Untuk menghapus fungsi Cloud Run, buka Konsol Cloud Run di https://console.cloud.google.com/run, lalu hapus layanan crf-http-codelab.
Jika Anda memilih untuk menghapus seluruh project, Anda dapat membuka https://console.cloud.google.com/cloud-resource-manager, memilih project yang Anda buat di Langkah 2, lalu memilih Hapus. Jika menghapus project, Anda harus mengubah project di Cloud SDK. Anda dapat melihat daftar semua project yang tersedia dengan menjalankan gcloud projects list.