Mulai Menggunakan fungsi Cloud Run (HTTP)

1. Pengantar

Ringkasan

Fungsi Cloud Run adalah cara baru untuk men-deploy workload menggunakan paradigma peristiwa GCF dan tanda tangan fungsi yang sudah dikenal. Daripada menggunakan proses build dan konfigurasi deployment yang tidak dapat berubah, fungsi Cloud Run memberi Anda kontrol langsung atas Layanan dasar yang dibuat di Cloud Run.

Dengan fungsi Cloud Run, kami menyediakan UX deployment sumber Cloud Run yang sederhana, memberi developer kontrol penuh atas beban kerja mereka menggunakan konfigurasi Cloud Run.

Codelab ini menggunakan contoh nodejs pada contoh di bawah. Namun, Anda dapat menggunakan contoh kode Cloud Functions generasi ke-2 dalam bahasa pilihan Anda:

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 Anda aktifkan. 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 {i>cd<i} ke direktori tersebut.

mkdir -p cloud-run-functions/$SERVICE_NAME && cd $_

Lalu, 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 cloud function

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 buildpacks untuk mengubah kode sumber fungsi Anda menjadi image container 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
  • penanda –function (baru) digunakan untuk menyetel titik masuk layanan baru menjadi tanda tangan fungsi yang ingin dipanggil
  • (opsional) the –no-allow-unauthenticated untuk mencegah fungsi Anda 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 prinsip yang memiliki peran Cloud Run Invoker, seperti yang ditunjukkan di bawah ini:

# 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 fungsi Cloud Run

Yang telah kita bahas

  • Cara men-deploy fungsi Cloud Run yang dipicu oleh permintaan HTTP

7. Pembersihan

Untuk menghindari tagihan yang tidak disengaja, (misalnya, jika layanan Cloud Run secara tidak sengaja dipanggil lebih sering daripada alokasi panggilan Cloud Run bulanan Anda di paket gratis), Anda dapat menghapus Cloud Run atau menghapus project yang Anda buat di Langkah 2.

Untuk menghapus fungsi Cloud Run, buka Konsol Cloud Cloud Run di https://console.cloud.google.com/run dan hapus layanan crf-http-codelab.

Jika memilih untuk menghapus seluruh project, Anda dapat membuka https://console.cloud.google.com/cloud-resource-manager, pilih project yang dibuat pada Langkah 2, lalu pilih Hapus. Jika project dihapus, Anda harus mengubah project di Cloud SDK. Anda dapat melihat daftar semua project yang tersedia dengan menjalankan gcloud projects list.