Hello Cloud Run dengan C#

1. Pengantar

89eb4723767d4525.png

Cloud Run adalah platform terkelola yang memungkinkan Anda menjalankan container stateless yang dapat dipanggil melalui permintaan HTTP. Cloud Run bersifat serverless. Platform ini memisahkan semua pengelolaan infrastruktur di lokasi lain, sehingga Anda dapat fokus pada hal terpenting, yakni membuat aplikasi yang andal.

Layanan ini dibangun dari Knative, sehingga Anda dapat memilih untuk menjalankan container secara terkelola sepenuhnya dengan Cloud Run, atau di cluster Google Kubernetes Engine dengan Cloud Run di GKE.

Tujuan codelab ini adalah agar Anda dapat membangun image container dan men-deploy-nya di Cloud Run.

2. Penyiapan dan Persyaratan

Penyiapan lingkungan mandiri

  1. Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
  • Project ID bersifat unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak mementingkan kata-katanya. Di sebagian besar codelab, Anda harus merujuk Project ID-nya (umumnya diidentifikasi sebagai PROJECT_ID). Jika tidak suka dengan ID yang dibuat, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri, dan lihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan tersedia selama durasi project.
  • Sebagai informasi, ada nilai ketiga, Project Number, yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
  1. Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini tidak akan memakan banyak biaya, bahkan mungkin tidak sama sekali. Guna mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus project-nya. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.

Google Cloud Shell

Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, kita akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.

Cloud Shell adalah lingkungan operasi dan pengembangan online yang dapat diakses di mana saja melalui browser Anda. Anda dapat mengelola resource dengan terminal online yang telah dilengkapi dengan utilitas seperti alat command line gcloud, kubectl, dan lainnya. Anda juga dapat mengembangkan, membangun, men-debug, dan men-deploy aplikasi berbasis cloud menggunakan Cloud Shell Editor online.

Virtual machine ini dimuat dengan semua alat pengembangan yang Anda perlukan. VM ini menawarkan direktori beranda tetap sebesar 5 GB dan berjalan langsung di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Ini berarti bahwa semua yang Anda perlukan untuk codelab ini adalah browser (ya, ini berfungsi di Chromebook).

  • Untuk mengaktifkan Cloud Shell dari Cloud Console, cukup klik Activate Cloud Shell :

cb81e7c8e34bc8d.png

Jika ini adalah pertama kalinya Anda memulai Cloud Shell, Anda akan melihat layar perantara yang menjelaskan apa itu Cloud Shell. Jika Anda melihat layar perantara, klik Continue

bfde7b083abc9544.png

Penyediaan lingkungan hanya memerlukan waktu beberapa detik :

cbb597d2be277a14.png

Setelah terhubung ke Cloud Shell, Anda akan melihat bahwa Anda sudah diautentikasi :

gcloud auth list

Output perintah

Credentialed Accounts

ACTIVE: *
ACCOUNT: <my-account>@<mydomain>

Project juga harus sudah disetel ke PROJECT_ID Anda (dengan asumsi Anda telah memilih project di konsol web) :

gcloud config list project

Output perintah

[core]
project = <PROJECT_ID>

Jika, untuk beberapa alasan, project belum disetel, cukup jalankan perintah berikut:

gcloud config set project <PROJECT_ID>

Mencari PROJECT_ID Anda? Lihat drop-down di bagian atas Konsol Cloud :

2c7a57249d954735.png

Anda juga dapat melihat detail project menggunakan bagian "Setelan dan utilitas":

791f101797cfef39.png

Cloud Shell juga menetapkan beberapa variabel lingkungan secara default, yang mungkin berguna saat Anda menjalankan perintah di masa mendatang.

echo $GOOGLE_CLOUD_PROJECT

Output perintah

<PROJECT_ID>
  • Terakhir, Anda dapat menetapkan zona default :
gcloud config set compute/zone us-central1-f

Anda dapat memilih zona yang berbeda. Untuk informasi selengkapnya, lihat Region & Zona.

Aktifkan Cloud Run API

Aktifkan Cloud Run API dari Cloud Shell:

gcloud services enable run.googleapis.com

Perintah di atas akan menampilkan pesan seperti berikut yang menandakan bahwa proses berhasil :

Operation "operations/acf.cc11852d-40af-47ad-9d59-477a12847c9e" finished successfully.

3. Menulis aplikasi contoh

Kita akan membangun aplikasi ASP.NET C# sederhana yang merespons permintaan HTTP.

Untuk membuat aplikasi, gunakan alat command line dotnet di Cloud Shell:

dotnet new web -o helloworld-csharp

Ubah ke direktori helloworld-csharp:

cd helloworld-csharp

Selanjutnya, update Program.cs agar sesuai dengan yang berikut:

var builder = WebApplication.CreateBuilder(args);

var port = Environment.GetEnvironmentVariable("PORT") ?? "8080";
var url = $"http://0.0.0.0:{port}";
builder.WebHost.UseUrls(url);

var app = builder.Build();

app.MapGet("/", () => "Hello World!");

app.Run();

Kode ini menghasilkan server web dasar yang memantau port yang ditentukan oleh variabel lingkungan PORT dan membalas dengan Hello World.

Anda dapat menguji aplikasi dengan menjalankannya secara lokal di Cloud Shell. Anda akan melihatnya memproses di port 8080:

$ dotnet run
Using launch settings from /home/atameldev/helloworld-csharp/Properties/launchSettings.json...
Hosting environment: Development
Content root path: /home/atameldev/helloworld-csharp
Now listening on: http://0.0.0.0:8080
Application started. Press Ctrl+C to shut down.

4. Men-deploy ke Cloud Run

Deploy aplikasi Anda ke Cloud Run dengan perintah berikut:

gcloud run deploy hello-world \
    --allow-unauthenticated \
    --region us-central1 \
    --source .
  • hello-world adalah nama layanan.
  • Flag allow-unauthenticated men-deploy layanan sebagai layanan yang tersedia secara publik tanpa persyaratan autentikasi.
  • us-central1 adalah region tempat aplikasi akan di-deploy.
  • Flag source menentukan lokasi sumber yang akan dibuat. Cloud Run menggunakan buildpack untuk membuat container secara otomatis dari kode sumber.

Tunggu beberapa menit hingga deployment selesai. Jika berhasil, command line akan menampilkan URL layanan:

Service [hello-world] revision [hello-world-00001-yos] has been deployed and is serving 100 percent of traffic.
Service URL: https://helloworld-wdl7fdwaaa-uc.a.run.app

Sekarang Anda dapat melihat container yang telah di-deploy dengan membuka URL layanan di browser web :

85e7fbbd264444c9.png

Selamat! Anda telah men-deploy aplikasi yang dikemas dalam image container ke Cloud Run. Cloud Run meningkatkan skala image container secara otomatis dan horizontal untuk menangani permintaan yang diterima, lalu menurunkan skala saat permintaan berkurang. Anda hanya membayar untuk CPU, memori, dan jaringan yang terpakai selama penanganan permintaan.

5. Saatnya membersihkan

Anda dapat memilih untuk menghapus project GCP Anda untuk menghentikan tagihan, yang artinya akan menghentikan penagihan atas semua resource yang digunakan dalam project tersebut, atau cukup hapus layanan Cloud Run:

gcloud run services delete helloworld

6. Apa langkah selanjutnya?

Langkah selanjutnya yang baik adalah Men-deploy ke Cloud Run di GKE.

Untuk informasi selengkapnya tentang mem-build container HTTP stateless yang cocok untuk Cloud Run dari kode sumber dan mengirimkannya ke Container Registry, buka: