Menyebarkan aplikasi web Go ke Azure Container Apps
Dalam mulai cepat ini, Anda belajar menyebarkan aplikasi web Go dalam kontainer ke Azure Container Apps.
Azure Container Apps memungkinkan Anda menjalankan kode aplikasi yang dikemas dalam kontainer apa pun tanpa harus mengelola infrastruktur cloud yang rumit atau orkestrator kontainer yang kompleks, dan tanpa khawatir tentang runtime atau model pemrograman. Penggunaan umum Azure Container Apps meliputi: Menyebarkan titik akhir API, menghosting aplikasi pemrosesan latar belakang, menangani pemrosesan berbasis peristiwa, dan menjalankan layanan mikro.
Ikuti tutorial ini untuk menelusuri pembuatan gambar Docker, menyebarkan gambar tersebut ke Azure Container Registry, dan menyebarkan aplikasi web Go ke Azure Container Apps.
Prasyarat
- Langganan Azure: Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum memulai.
- Go yang terinstal: Versi 1.18 atau yang lebih baru
- Desktop Docker
Siapkan
Untuk masuk ke Azure dari CLI, jalankan perintah az login dan ikuti perintah untuk menyelesaikan proses autentikasi.
az login
Untuk memastikan Anda menjalankan CLI versi terbaru, jalankan perintah az upgrade .
az upgrade
Selanjutnya, instal atau perbarui ekstensi Azure Container Apps untuk CLI.
Jika Anda menerima kesalahan tentang parameter yang hilang saat menjalankan az containerapp
perintah di Azure CLI, pastikan Anda memiliki versi terbaru ekstensi Azure Container Apps yang terinstal.
az extension add --name containerapp --upgrade
Catatan
Mulai Mei 2024, ekstensi Azure CLI tidak lagi mengaktifkan fitur pratinjau secara default. Untuk mengakses fitur pratinjau Container Apps, instal ekstensi Container Apps dengan --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Sekarang setelah ekstensi atau modul saat ini diinstal, daftarkan Microsoft.App
namespace layanan dan Microsoft.OperationalInsights
.
Catatan
Sumber daya Azure Container Apps telah bermigrasi dari namespace layanan Microsoft.Web
ke namespace layanan Microsoft.App
. Lihat Migrasi Namespace layanan dari Microsoft.Web ke Microsoft.App pada bulan Maret 2022 untuk detail selengkapnya.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Mengunduh aplikasi sampel
Untuk mengikuti tutorial ini, Anda memerlukan aplikasi sampel untuk kontainer. Contoh aplikasi web Go disediakan di repositori GitHub msdocs-go-webapp-quickstart . Unduh atau klon aplikasi contoh ke stasiun kerja lokal Anda.
git clone https://github.com/Azure-Samples/msdocs-go-webapp-quickstart.git
cd msdocs-go-webapp-quickstart
Membuat Azure Container Registry
Azure Container Registry memungkinkan Anda membuat, menyimpan, dan mengelola gambar kontainer. Anda akan menggunakannya untuk menyimpan gambar Docker yang berisi sampel aplikasi web Go yang disediakan dalam repositori sampel yang disebutkan sebelumnya.
Jalankan perintah berikut untuk membuat Azure Container Registry:
Buat grup sumber daya Azure dengan perintah pembuatan grupaz.
az group create \ --name <resourceGroupName> \ --location eastus
Buat Azure Container Registry dengan perintah az acr create .
az acr create \ --resource-group <resourceGroupName> \ --name <azureContainerRegistryName> \ --sku basic
Masuk ke instans kontainer Azure dengan perintah az acr login .
az acr login --name <azureContainerRegistryName>
Ganti <resourceGroupName>
dan <azureContainerRegistryName>
dengan nilai yang sesuai. Nama Azure Container Registry Anda harus unik secara global.
Catatan
Jika Anda mendapatkan kesalahan yang mirip dengan yang berikut ini saat menjalankan az acr login
perintah, pastikan deamon docker berjalan pada sistem Anda:
You may want to use 'az acr login -n <azureContainerRegistryName> --expose-token' to get an access token, which does not require Docker to be installed.
2024-09-12 17:25:25.127779 An error occurred: DOCKER_COMMAND_ERROR
Membangun dan mendorong gambar Docker
Setelah Anda membuat Azure Container Registry, buat dan dorong gambar Docker dari sampel aplikasi web Go.
Jalankan perintah berikut membangun dan mendorong gambar ke registri:
Dapatkan informasi server masuk dengan perintah az acr show .
az acr show \ --name <azureContainerRegistryName> \ --resource-group <resourceGroupName> \ --query loginServer \ --output tsv
Buat gambar Docker secara lokal.
docker build -t <loginServer>/<imageName>:latest .
Dorong gambar Docker ke Azure Container Registry.
docker push <loginServer>/<imageName>:latest
Verifikasi bahwa gambar berhasil didorong ke Azure Container Registry dengan perintah az acr repository list .
az acr repository list \ --name <azureContainerRegistryName> \ --output table
Ganti loginServer
, imageName
dan azureContainerRegistryName
dengan nilai yang sesuai. Nama gambar adalah gambar Docker yang didorong ke Azure Container Registry dan kemudian digunakan untuk menyebarkan ke Azure Container Apps.
Sekarang setelah Anda memiliki gambar yang tersedia di Azure Container Registry, Anda siap untuk menyebarkan Aplikasi Kontainer Azure dan lingkungannya.
Membuat lingkungan Azure Container Apps
Azure Container Apps tidak memiliki kompleksitas orkestrator kontainer, tetapi masih memerlukan beberapa cara untuk menetapkan batas aman, di mana lingkungan Azure Container Apps masuk. Aplikasi Kontainer yang disebarkan di lingkungan yang sama berbagi jaringan virtual yang sama dan menulis log ke ruang kerja Analitik Log yang sama. Sebelum dapat menyebarkan Aplikasi Kontainer Azure, Anda memerlukan lingkungan untuk disebarkan.
Jalankan perintah az containerapp env create untuk membuat lingkungan Azure Container Apps.
az containerapp env create \ --name <containerAppEnvName> \ --resource-group <resourceGroupName> \ --location "East US"
Menyebarkan ke Azure Container Apps
Pada titik ini, Anda telah membuat Azure Container Registry, membangun dan mendorong gambar Docker ke dalamnya, dan membuat lingkungan Azure Container Apps. Yang tersisa hanyalah menyebarkan aplikasi.
Jalankan perintah az containerapp create untuk menyebarkan aplikasi web Go ke Azure Container Apps.
az containerapp create \
--name <containerAppName> \
--resource-group <resourceGroupName> \
--environment <containerAppEnvName> \
--image "<loginServer>/<imageName>:latest" \
--registry-server "<loginServer>" \
--registry-identity system \
--target-port 8080 \
--ingress external
Parameter --registry-identity system
mengonfigurasi identitas terkelola yang ditetapkan sistem pada aplikasi kontainer. Aplikasi kontainer menggunakan identitas ini daripada nama pengguna/kata sandi, yang kurang aman, untuk mengautentikasi dengan registri kontainer. Perintah ini juga secara otomatis membuat AcrPull
penetapan peran untuk identitas, sehingga diotorisasi untuk menarik gambar dari registri. Untuk menggunakan identitas terkelola untuk autentikasi dan otorisasi, registri harus merupakan Azure Container Registry.
Memverifikasi URL aplikasi web
Jalankan perintah az containerapp show untuk mendapatkan FQDN (Nama Domain Yang Sepenuhnya Memenuhi Syarat) dari ingress aplikasi web.
APP_FQDN=$(az containerapp show \
--name <containerAppName> \
--resource-group <resourceGroupName> \
--query properties.configuration.ingress.fqdn \
--output tsv)
Selanjutnya, jalankan perintah curl terhadap FQDN dan konfirmasi output mencerminkan HTML situs web.
curl "https://$APP_FQDN"
Membersihkan sumber daya
Setelah selesai dengan aplikasi contoh, Anda dapat menghapus semua sumber daya untuk aplikasi dari Azure. Melakukannya menghindari biaya yang sedang berlangsung dan menjaga langganan Azure Anda tetap tidak berantakan. Menghapus grup sumber daya juga menghapus semua sumber daya dalam grup sumber daya dan merupakan cara tercepat untuk menghapus semua sumber daya Azure untuk aplikasi Anda.
Jalankan perintah az group delete untuk menghapus grup sumber daya dan sumber dayanya.
az group delete \
--name <resourceGroupName> \
--no-wait