Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 mengelola infrastruktur cloud yang rumit atau orkestrator kontainer yang kompleks. Ini juga menghilangkan kebutuhan untuk 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.Appnamespace , Microsoft.ContainerRegistry, dan Microsoft.OperationalInsights .
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.ContainerRegistry
az provider register --namespace Microsoft.OperationalInsights
Catatan
Sumber daya Azure Container Apps dimigrasikan dari namespace Microsoft.Web ke namespace Microsoft.App. Untuk informasi selengkapnya, lihat Migrasi namespace layanan dari Microsoft.Web ke Microsoft.App pada bulan Maret 2022.
Mengunduh aplikasi sampel
Untuk mengikuti tutorial ini, Anda memerlukan aplikasi sampel untuk kontainer. Repositori GitHub msdocs-go-webapp-quickstart menyediakan sampel aplikasi web Go. 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. Gunakan untuk menyimpan gambar Docker yang berisi sampel aplikasi web Go yang disediakan di repositori sampel yang disebutkan sebelumnya.
Jalankan perintah berikut untuk membuat Azure Container Registry:
Atur variabel lingkungan untuk sumber daya yang akan Anda buat. Ganti teks tempat penampung dalam tanda kurung siku dengan nilai yang sesuai. Nama Azure Container Registry Anda harus unik secara global.
RESOURCE_GROUP_NAME="<resourceGroupName>" # Name of the Azure resource group to create LOCATION="<location>" # Azure region (For example, "eastus", "westus2") ACR_NAME="<azureContainerRegistryName>" # Globally unique name for Azure Container RegistryContoh perintah untuk mengatur variabel lingkungan adalah untuk shell Bash. Jika Anda menggunakan shell yang berbeda, sesuaikan perintahnya.
Buat grup sumber daya Azure dengan perintah pembuatan grupaz.
az group create \ --name $RESOURCE_GROUP_NAME \ --location $LOCATIONBuat Azure Container Registry dengan perintah az acr create .
az acr create \ --resource-group $RESOURCE_GROUP_NAME \ --name $ACR_NAME \ --sku basicMasuk ke instans kontainer Azure dengan perintah az acr login .
az acr login --name $ACR_NAMECatatan
Jika Anda mendapatkan kesalahan yang mirip dengan kesalahan berikut saat menjalankan
az acr loginperintah, pastikan daemon Docker berjalan di sistem Anda:You may want to use 'az acr login -n $ACR_NAME --expose-token' to get an access token, which doesn't require Docker to be installed. An error occurred: DOCKER_COMMAND_ERROR
Membangun dan mendorong gambar Docker
Setelah Anda membuat Azure Container Registry, susun dan unggah Docker image dari aplikasi web Go yang berupa sampel.
Jalankan perintah berikut untuk membangun dan mendorong gambar ke registri.
Atur variabel lingkungan untuk gambar Docker yang akan Anda buat. Ganti teks placeholder dalam kurung siku dengan nilai yang sesuai.
IMAGE_NAME="go-webapp" # Name for the Docker imageContoh perintah untuk mengatur variabel lingkungan adalah untuk shell Bash. Jika Anda menggunakan shell yang berbeda, sesuaikan perintahnya.
Dapatkan informasi server masuk dengan perintah az acr show dan simpan dalam variabel lingkungan.
LOGIN_SERVER=$(az acr show \ --name $ACR_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query loginServer \ --output tsv) echo "Login server: $LOGIN_SERVER"Buat gambar Docker secara lokal.
docker build -t $LOGIN_SERVER/$IMAGE_NAME:latest .Dorong gambar Docker ke Azure Container Registry.
docker push $LOGIN_SERVER/$IMAGE_NAME:latestVerifikasi bahwa gambar berhasil didorong ke Azure Container Registry dengan perintah az acr repository list .
az acr repository list \ --name $ACR_NAME \ --output table
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 yang aman. Lingkungan Azure Container Apps menyediakan kemampuan ini. 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.
Atur variabel lingkungan untuk sumber daya yang akan Anda buat. Ganti teks placeholder dalam tanda kurung dengan nilai yang sesuai.
CONTAINER_APP_ENV="mygoappenv" # Name for the Container Apps environment CONTAINER_APP_NAME="mygoapp" # Name for your container appContoh perintah untuk mengatur variabel lingkungan adalah untuk shell Bash. Jika Anda menggunakan shell yang berbeda, sesuaikan perintahnya.
Jalankan perintah az containerapp env create untuk membuat lingkungan Azure Container Apps.
az containerapp env create \ --name $CONTAINER_APP_ENV \ --resource-group $RESOURCE_GROUP_NAME \ --location $LOCATION
Menyebarkan ke Azure Container Apps
Pada titik ini, Anda telah menyelesaikan langkah-langkah berikut:
- Membuat Azure Container Registry.
- Membuat dan mengunggah Docker image ke registri.
- Siapkan lingkungan Azure Container Apps.
Langkah terakhir adalah menyebarkan aplikasi.
Jalankan perintah az containerapp create untuk menyebarkan aplikasi web Go ke Azure Container Apps.
az containerapp create \
--name $CONTAINER_APP_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--environment $CONTAINER_APP_ENV \
--image "$LOGIN_SERVER/$IMAGE_NAME:latest" \
--registry-server "$LOGIN_SERVER" \
--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 dan kata sandi, yang kurang aman, untuk mengautentikasi dengan registri kontainer. Perintah ini juga secara otomatis membuat penugasan peran AcrPull bagi identitas ini, mengotorisasinya untuk mengambil 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 $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query properties.configuration.ingress.fqdn \ --output tsv) echo "App URL: https://$APP_FQDN"Jalankan perintah curl terhadap FQDN dan verifikasi bahwa output mencerminkan HTML dari situs web. Anda juga dapat membuka URL di browser web untuk berinteraksi dengan aplikasi web.
curl "https://$APP_FQDN"'Perintah mengembalikan HTML untuk beranda aplikasi web yang mirip dengan yang berikut ini:
<!DOCTYPE html> <html> <head> <title>Hello Azure - Go Quickstart</title> <link rel="stylesheet" href="/assets/main.css"> <link rel="icon" type="image/x-icon" href="/assets/favicon.ico"> </head> <header> <h1>Welcome to Azure</h1> </header> <section> <img src="/assets/images/azure-icon.svg"> <form method="post"> <label for="form-label">Could you please tell me your name?</label><br> <input type="text" id="name" name="name" style="max-width: 256px;"><br> <button type="submit">Say Hello</button> </form> </section> </html>
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 $RESOURCE_GROUP_NAME \
--no-wait