1. Ringkasan
ASP.NET Core adalah framework open source dan lintas platform baru untuk membangun aplikasi berbasis cloud dan terhubung ke internet modern menggunakan bahasa pemrograman C#.
Di lab ini, Anda akan men-deploy aplikasi ASP.NET Core sederhana ke lingkungan fleksibel App Engine. Codelab ini dibuat berdasarkan codelab Membangun dan meluncurkan aplikasi ASP.NET Core dari Google Cloud Shell. Sebaiknya selesaikan lab tersebut terlebih dahulu sebelum mencoba lab ini.
Aplikasi Google App Engine mudah dibuat, dipelihara, dan diskalakan seiring perubahan kebutuhan traffic dan penyimpanan data Anda. Dengan App Engine, Anda tidak perlu mengelola server. Anda cukup mengupload aplikasi dan aplikasi siap digunakan.
Aplikasi App Engine otomatis diskalakan berdasarkan traffic yang masuk. App Engine secara native mendukung load balancing, microservice, otorisasi, database SQL dan NoSQL, Memcache, pemisahan traffic, logging, penelusuran, pembuatan versi, peluncuran dan rollback, serta pemindaian keamanan, yang semuanya sangat dapat disesuaikan.
Lingkungan App Engine, lingkungan standar dan lingkungan fleksibel, mendukung berbagai bahasa pemrograman, termasuk C#, Java, Python, PHP, Node.js, Go, dan lainnya. Kedua lingkungan ini memberikan fleksibilitas maksimum kepada pengguna dalam cara kerja aplikasi mereka, karena setiap lingkungan memiliki kelebihan tertentu. Untuk mengetahui informasi selengkapnya, baca Memilih Lingkungan App Engine.
Yang akan Anda pelajari
- Cara mengemas aplikasi ASP.NET Core sederhana sebagai container Docker.
- Cara men-deploy aplikasi ASP.NET Core sederhana ke App Engine.
Yang Anda butuhkan
Bagaimana Anda akan menggunakan tutorial ini?
Bagaimana penilaian Anda terhadap pengalaman dengan Google Cloud Platform?
2. Penyiapan dan Persyaratan
Penyiapan lingkungan mandiri
- 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.



- Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API, dan Anda dapat memperbaruinya kapan saja.
- Project ID harus unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis menghasilkan string unik; biasanya Anda tidak peduli dengan kata-katanya. Pada sebagian besar codelab, Anda harus mereferensikan Project ID (dan biasanya diidentifikasi sebagai
PROJECT_ID). Jadi, jika Anda tidak menyukainya, buat ID acak lain, atau, Anda dapat mencoba sendiri dan melihat apakah tersedia. Kemudian file akan "dibekukan" setelah project dibuat. - Ada nilai ketiga, Nomor Project yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
- Selanjutnya, Anda harus mengaktifkan penagihan di Cloud Console untuk menggunakan API/resource Cloud. Menjalankan operasi dalam codelab ini seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Untuk menonaktifkan resource agar tidak menimbulkan penagihan di luar tutorial ini, ikuti petunjuk "pembersihan" yang ada di akhir codelab. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.
Mulai Cloud Shell
Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.
Mengaktifkan Cloud Shell
- Dari Cloud Console, klik Aktifkan Cloud Shell
.

Jika belum pernah memulai Cloud Shell, Anda akan melihat layar perantara (di paruh bawah) yang menjelaskan apa itu Cloud Shell. Jika demikian, klik Continue (dan Anda tidak akan pernah melihatnya lagi). Berikut tampilan layar sekali-tampil tersebut:

Perlu waktu beberapa saat untuk menyediakan dan terhubung ke Cloud Shell.

Virtual machine ini dimuat dengan semua alat pengembangan yang Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Sebagian besar pekerjaan Anda dalam codelab ini dapat dilakukan hanya dengan browser atau Chromebook.
Setelah terhubung ke Cloud Shell, Anda akan melihat bahwa Anda sudah diautentikasi dan project sudah ditetapkan ke project ID Anda.
- Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa Anda telah diautentikasi:
gcloud auth list
Output perintah
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa perintah gcloud mengetahui project Anda:
gcloud config list project
Output perintah
[core] project = <PROJECT_ID>
Jika tidak, Anda dapat menyetelnya dengan perintah ini:
gcloud config set project <PROJECT_ID>
Output perintah
Updated property [core/project].
3. Membuat aplikasi ASP.NET Core di Cloud Shell
Di prompt Cloud Shell, Anda dapat memverifikasi bahwa alat command line dotnet sudah terinstal dengan mencantumkan SDK .NET yang terinstal:
dotnet --list-sdks
Selanjutnya, buat aplikasi web ASP.NET Core skeleton baru dengan framework target netcoreapp3.1:
dotnet new mvc -o HelloWorldAspNetCore -f netcoreapp3.1
Perintah ini akan membuat project dan memulihkan dependensinya. Anda seharusnya melihat pesan yang mirip seperti di bawah ini.
Restore completed in 11.44 sec for HelloWorldAspNetCore.csproj.
Restore succeeded.
4. Jalankan aplikasi ASP.NET Core
Aplikasi hampir siap untuk dijalankan. Buka folder aplikasi.
cd HelloWorldAspNetCore
Terakhir, jalankan aplikasi.
dotnet run --urls=http://localhost:8080
Aplikasi mulai memproses di port 8080.
Hosting environment: Production
Content root path: /home/atameldev/HelloWorldAspNetCore
Now listening on: http://[::]:8080
Application started. Press Ctrl+C to shut down.
Untuk memastikan aplikasi sudah berjalan, klik tombol pratinjau web di kanan atas, lalu pilih ‘Pratinjau di port 8080'.

Anda akan melihat halaman web ASP.NET Core default:

Setelah Anda memverifikasi bahwa aplikasi sedang berjalan, tekan Ctrl+C untuk mematikan aplikasi.
5. Publikasikan aplikasi ASP.NET Core
Sekarang, publikasikan aplikasi untuk mendapatkan DLL mandiri menggunakan perintah dotnet publish.
dotnet publish -c Release
Menjalankan publish akan menampilkan beberapa pesan beserta daftar DLL yang berhasil dipublikasikan di akhir proses.
...
HelloWorldAspNetCore -> /home/atameldev/HelloWorldAspNetCore/bin/Release/netcoreapp3.1/HelloWorldAspNetCore.dll
HelloWorldAspNetCore -> /home/atameldev/HelloWorldAspNetCore/bin/Release/netcoreapp3.1/HelloWorldAspNetCore.Views.dll
HelloWorldAspNetCore -> /home/atameldev/HelloWorldAspNetCore/bin/Release/netcoreapp3.1/publish/
6. Membuat app.yaml untuk lingkungan fleksibel App Engine
File app.yaml menjelaskan cara men-deploy aplikasi ke App Engine, dalam hal ini, lingkungan fleksibel App Engine.
Pertama, buka folder publish. File ini harus berada di folder bin/Release, tetapi jalur persisnya bergantung pada versi .NET:
cd bin/Release/netcoreapp3.1/publish/
Buat file app.yaml di dalam folder publish:
cat <<EOT >> app.yaml
env: flex
runtime: aspnetcore
EOT
Perhatikan cara file app.yaml menentukan lingkungan sebagai flex dan runtime sebagai aspnetcore.
7. Men-deploy ke App Engine fleksibel
Anda siap men-deploy aplikasi ke App Engine fleksibel menggunakan gcloud. Di dalam direktori publish, jalankan perintah berikut:
gcloud app deploy --version v0
Selama deployment, Anda mungkin diminta untuk memilih region untuk aplikasi Anda. Pilih region tempat Anda ingin menjalankan aplikasi.
Please choose a region for your application. After choosing a region,
you cannot change it. Which region would you like to choose?
[1] europe-west (supports standard and flexible)
[2] us-central (supports standard and flexible)
[3] us-east1 (supports standard and flexible)
[4] asia-northeast1 (supports standard and flexible)
[5] cancel
Tindakan ini akan membuat image untuk aplikasi Anda di cloud, menyimpan image tersebut ke Google Container Registry, dan men-deploy ke App Engine. Selama deployment, Anda dapat melihat image container yang sedang dibuat:
Operation completed over 1 objects/571.8 KiB.
BUILD
Step #0: Pulling image: gcr.io/gcp-runtimes/aspnetcorebuild@sha256:d7b7975acb374fc3a9655a4e529993e6270cfa78023885684626528bc379f8eb
Step #0: sha256:d7b7975acb374fc3a9655a4e529993e6270cfa78023885684626528bc379f8eb: Pulling from gcp-runtimes/aspnetcorebuild
Pada akhirnya, Anda akan melihat bahwa aplikasi telah di-deploy.
...
Deployed service [default] to [https://<project-id>.appspot.com]
Setelah men-deploy aplikasi,kunjungi aplikasi dengan membuka URL http://<project-id>.appspot.com di browser web Anda.
Anda akan melihat halaman web ASP.NET Core default di tab baru.

Anda juga dapat melihat image container yang dibuat untuk Anda di cloud. Di konsol cloud, buka Container Registry > Images, lalu di folder appengine, Anda akan melihat image untuk aplikasi Anda.

8. Men-deploy versi baru layanan Anda
Pada suatu saat, aplikasi yang telah Anda deploy ke produksi akan memerlukan perbaikan bug atau fitur tambahan. App Engine hadir untuk membantu Anda men-deploy versi baru ke produksi tanpa memengaruhi pengguna.
Pertama, mari kita modifikasi aplikasi. Buka editor kode dari Cloud Shell.

Buka Index.cshtml di folder Views/Home dari HelloWorldAspNetCore, lalu perbarui pesan default menjadi:
Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core on Google Cloud Platform!
Simpan perubahan, lalu kembali ke Cloud Shell. Di dalam HelloWorldAspNetCore,publikasikan aplikasi untuk mendapatkan DLL mandiri.
dotnet publish -c Release
Buka direktori publish.
cd bin/Release/netcoreapp3.1/publish/
Sekarang Anda dapat men-deploy versi baru aplikasi Anda (v1 dalam kasus ini).
gcloud app deploy --version v1
Setelah di-deploy, Anda dapat membuka bagian versi App Engine di Konsol Google Cloud untuk melihat versi baru aplikasi Anda yang melayani semua traffic dengan pesan baru.

9. Dasbor dan Pemisahan Traffic
Di App Engine, di bagian Dasbor, Anda dapat melihat sejumlah dasbor untuk aplikasi Anda terkait latensi, CPU, dll. Jelajahi sendiri.

Di bagian Versi, Anda dapat melihat versi aplikasi yang di-deploy dan membagi traffic antar-versi yang berbeda di bagian Pembagian Traffic. Mari kita pisahkan traffic antara dua versi:

10. Selamat!
Cleanup (Pembersihan)
Saatnya menonaktifkan aplikasi untuk menghemat biaya dan menjadi pengguna cloud yang baik secara keseluruhan.
Buka bagian versi App Engine.

Pilih versi dan hentikan.

Setelah versi dihentikan, instance pendukung akan dihapus dan Anda akan melihat jumlah instance turun menjadi nol.

Yang telah kita bahas
Nah! Anda telah membuat aplikasi ASP.NET Core, mengemasnya sebagai container Docker, dan men-deploy-nya ke Google App Engine Fleksibel.
- Cara mengemas aplikasi ASP.NET Core sederhana sebagai container Docker.
- Cara men-deploy aplikasi ASP.NET Core sederhana ke App Engine.
Langkah Berikutnya
- Pelajari lebih lanjut Windows di Google Cloud Platform.
- Pelajari lebih lanjut .NET di Google Cloud Platform.
- Pelajari lebih lanjut SQL Server di Google Cloud Platform.
- Pelajari lebih lanjut Cloud Tools for Visual Studio.
- Pelajari lebih lanjut Cloud Tools for PowerShell.
Lisensi
Karya ini dilisensikan berdasarkan Lisensi Umum Creative Commons Attribution 2.0.