Membuat dan men-deploy fungsi Cloud Run HTTP dengan .NET
Panduan ini akan memandu Anda dalam proses penulisan fungsi Cloud Run menggunakan C# bahasa runtime .NET. Ada dua jenis fungsi Cloud Run:
- Fungsi HTTP, yang Anda panggil dari permintaan HTTP standar.
- Fungsi berbasis peristiwa, yang dipicu oleh peristiwa di infrastruktur Cloud Anda, seperti pesan pada topik Pub/Sub atau perubahan dalam bucket Cloud Storage.
Untuk mengetahui detail selengkapnya, baca 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 Google Cloud SDK.
- Update dan instal komponen
gcloud
dengan perintah berikut.gcloud components update
-
Siapkan lingkungan pengembangan Anda.
Membuat fungsi
Bagian ini menjelaskan cara membuat fungsi .NET secara manual. Atau, Anda dapat menggunakan template Functions Framework) untuk membuat fungsi.
Untuk membuat fungsi:
Buat direktori di sistem lokal Anda untuk kode fungsi:
Windows
mkdir %HOMEPATH%\helloworld cd %HOMEPATH%\helloworld
Linux atau Mac OS X
mkdir ~/helloworld cd ~/helloworld
Buat file bernama
Function.cs
di direktorihelloworld
dengan konten berikut:
Menentukan dependensi
Fungsi Cloud Run memerlukan sekumpulan library yang disebut Functions Framework. Agar Functions Framework tersedia untuk build Anda, lakukan langkah-langkah berikut:
Ubah direktori ke direktori
helloworld
yang baru saja Anda buat:cd ~/helloworld
Buat file bernama
HelloWorld.csproj
di direktorihelloworld
dengan konten berikut:
Untuk mempelajari cara menyediakan library lain untuk build Anda, baik melalui file project maupun dalam kode melalui injeksi dependensi, lihat Penyesuaian melalui class Functions Startup.
Membangun dan menguji fungsi secara lokal
Bangun dan jalankan fungsi Anda secara lokal dengan perintah berikut:
dotnet run
Uji fungsi Anda dengan membuka
http://localhost:8080
di browser atau dengan menjalankancurl localhost:8080
dari jendela lain. Jika Anda menggunakan Cloud Shell, klik ikon dan pilih Preview on port 8080 untuk melihat output fungsi.Lihat Mengirim permintaan ke fungsi lokal untuk mengetahui detail selengkapnya.
Men-deploy fungsi
Untuk men-deploy fungsi Anda, jalankan perintah berikut di direktori helloworld
:
gcloud functions deploy csharp-http-function \
--gen2 \
--entry-point=HelloWorld.Function \
--runtime=dotnet8 \
--region=REGION \
--source=. \
--trigger-http \
--allow-unauthenticated
Ganti REGION dengan nama region Google Cloud tempat Anda ingin men-deploy fungsi (misalnya us-west1
).
csharp-http-function
adalah nama terdaftar yang akan digunakan untuk mengidentifikasi fungsi Anda di Konsol Google Cloud, dan --entry-point
menentukan nama class yang sepenuhnya memenuhi syarat (FQN) dari fungsi Anda.
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 csharp-http-function \ --region=REGION
Ganti REGION dengan nama region Google Cloud tempat Anda men-deploy fungsi (misalnya,
us-west1
).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.
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 \
csharp-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: my-first-function
TIME_UTC: 2023-06-01 12:47:42.221
LOG: Request finished HTTP/1.1 GET http://my-first-function-l5vqvupfzq-uw.a.run.app/favicon.ico - - - 404 0 - 0.9393ms
LEVEL: I
NAME: my-first-function
TIME_UTC: 2023-06-01 12:47:42.220
LOG: Request starting HTTP/1.1 GET http://my-first-function-l5vqvupfzq-uw.a.run.app/favicon.ico - -
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.
Membuat fungsi dengan paket template
Petunjuk ini telah membantu Anda membuat fungsi sederhana. Dalam praktiknya, Anda mungkin akan memilih menggunakan template Functions Framework untuk membuat fungsi.
Untuk menggunakan template Functions Framework guna membuat, membangun, dan menguji fungsi:
Instal .NET SDK. Langkah ini dapat dilewati jika Anda menggunakan Cloud Shell.
Instal paket template:
dotnet new install Google.Cloud.Functions.Templates
Buat direktori untuk project Anda, dan fungsi HTTP kosong:
mkdir HelloFunctions cd HelloFunctions dotnet new gcf-http
Tindakan ini akan membuat
HelloFunctions.csproj
danFunction.cs
dalam direktori saat ini. BukaFunction.cs
untuk meninjau kode, dan berikan pesan kustom jika ingin.Jika ingin, ikuti petunjuk sebelumnya untuk membangun dan menguji fungsi secara lokal.
Jalankan perintah
gcloud deploy
berikut untuk men-deploy fungsi Anda:gcloud functions deploy HelloFunctions.Function \ --gen2 \ --entry-point=HelloWorld.Function \ --runtime=dotnet8 \ --region=REGION \ --source=. \ --trigger-http \ --allow-unauthenticated
Ganti REGION dengan nama region Google Cloud tempat Anda men-deploy fungsi (misalnya,
us-west1
).
Untuk informasi selengkapnya tentang Functions Framework, lihat dokumentasi Functions Framework.