Membuat dan men-deploy fungsi HTTP Cloud Run dengan .NET (generasi ke-1)

Panduan ini akan membawa Anda melalui proses penulisan fungsi Cloud Run menggunakan Bahasa runtime .NET C#. Ada dua jenis Fungsi Cloud Run:

  • Fungsi yang dipicu HTTP, yang Anda panggil dari permintaan HTTP standar.
  • Fungsi berbasis peristiwa, yang Anda gunakan untuk menangani peristiwa dari Cloud infrastruktur IT, seperti pesan pada topik Pub/Sub, atau perubahan bucket Cloud Storage.

Sebelum memulai

  1. 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.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Aktifkan API Cloud Functions and Cloud Build.

    Mengaktifkan API

  5. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  6. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  7. Aktifkan API Cloud Functions and Cloud Build.

    Mengaktifkan API

  8. Instal dan lakukan inisialisasi gcloud CLI.
  9. Update dan instal komponen gcloud:
    gcloud components update
  10. Menyiapkan lingkungan pengembangan.

    Buka panduan penyiapan .NET

Membuat fungsi

Bagian ini menjelaskan cara membuat fungsi secara manual dari awal. Atau, Anda dapat menggunakan template yang disediakan oleh paket template.

Untuk membuat fungsi:

  1. 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
    
  2. Buat file bernama Function.cs dengan konten di bawah ini:

    using Google.Cloud.Functions.Framework;
    using Microsoft.AspNetCore.Http;
    using System.Threading.Tasks;
    
    namespace HelloWorld;
    
    public class Function : IHttpFunction
    {
        public async Task HandleAsync(HttpContext context)
        {
            await context.Response.WriteAsync("Hello World!", context.RequestAborted);
        }
    }

    Fungsi contoh ini menghasilkan ucapan "Halo Dunia!"

Menentukan dependensi

Langkah berikutnya adalah menyiapkan dependensi. Ada dua jenis dependensi yang dapat Anda siapkan di fungsi C# Cloud Run:

  • Sediakan Framework Functions. Itulah tugas yang Anda lakukan di bagian ini.
  • Sediakan library lain, baik dari segi file project maupun dalam kode melalui injeksi dependensi. Untuk mempelajari lebih lanjut, lihat Penyesuaian melalui class Startup Functions.

Untuk menyediakan Framework Functions, ubah direktori ke direktori helloworld yang Anda buat di atas:

     cd ~/helloworld

Kemudian buat file bernama HelloWorld.csproj dengan konten di bawah ini:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Google.Cloud.Functions.Hosting" Version="2.2.1" />
  </ItemGroup>
</Project>

Men-deploy cloud function

Untuk men-deploy fungsi dengan pemicu HTTP, jalankan perintah berikut di direktori helloworld:

gcloud functions deploy my-first-function --entry-point HelloWorld.Function --runtime dotnet6 --trigger-http --allow-unauthenticated

dengan my-first-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.

Menguji fungsi yang di-deploy

  1. Setelah fungsi selesai di-deploy, catat properti httpsTrigger.url atau temukan menggunakan perintah berikut:

    gcloud functions describe my-first-function
    

    Kodenya akan terlihat seperti berikut:

    https://GCP_REGION-PROJECT_ID.cloudfunctions.net/my-first-function
  2. Kunjungi URL ini di browser Anda. Anda akan melihat pesan Hello World!.

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 logs read, diikuti dengan nama fungsi:

gcloud functions logs read my-first-function

Output akan terlihat seperti berikut:

LEVEL  NAME               EXECUTION_ID  TIME_UTC                 LOG
D      my-first-function  k2bqgroszo4u  2020-07-24 18:18:01.791  Function execution started
D      my-first-function  k2bqgroszo4u  2020-07-24 18:18:01.958  Function execution took 168 ms, finished with status code: 200
...

Menggunakan dasbor Logging

Anda juga dapat melihat log untuk fungsi Cloud Run dari Konsol Google Cloud.

Menggunakan paket template

Bagian di atas memberi tahu Anda cara membuat fungsi secara manual dari awal. Ke depannya, Anda mungkin akan menggunakan template untuk membuat fungsi baru.

Untuk menggunakan template guna membuat, membuat, dan menguji fungsi:

  1. Instal .NET SDK.

  2. Instal paket template:

    dotnet new install Google.Cloud.Functions.Templates
    
  3. Selanjutnya, buat direktori untuk project Anda, dan gunakan dotnet new untuk membuat fungsi HTTP baru:

    mkdir HelloFunctions
    cd HelloFunctions
    dotnet new gcf-http
    

    Tindakan ini akan membuat HelloFunctions.csproj dan Function.cs dalam direktori saat ini. Buka Function.cs untuk meninjau kode, dan berikan pesan kustom jika ingin.

  4. Build fungsi Anda secara lokal seperti berikut:

    dotnet run
    
  5. Setelah server berjalan, jelajahi http://localhost:8080 untuk memanggil fungsi. Tekan Ctrl-C di konsol untuk menghentikan server.

    Fungsi ini menampilkan pesan "Hello Functions Framework".

Atau, Anda dapat mengirim permintaan ke fungsi ini menggunakan curl dari jendela terminal lain:

curl localhost:8080
# Output: Hello Functions Framework