Bagikan melalui


Tutorial: Membangun dan menyebarkan aplikasi Anda ke Azure Container Apps

Artikel ini menunjukkan cara membangun dan menyebarkan layanan mikro ke Azure Container Apps dari repositori sumber menggunakan bahasa pemrograman pilihan Anda.

Ini adalah tutorial pertama dalam rangkaian artikel yang memancang Anda tentang cara menggunakan kemampuan inti dalam Azure Container Apps. Langkah pertama adalah membuat layanan API web back end yang mengembalikan koleksi statis album musik.

Catatan

Anda juga dapat membuat dan menyebarkan aplikasi ini menggunakan az containerapp dengan mengikuti instruksi di Mulai Cepat: Membangun dan menyebarkan aplikasi ke Azure Container Apps dari artikel repositori . Perintah ini az containerapp up adalah cara cepat dan mudah untuk membangun dan menyebarkan aplikasi Anda ke Azure Container Apps menggunakan satu perintah. Namun, ini tidak menyediakan tingkat kustomisasi yang sama untuk aplikasi kontainer Anda.

Tutorial berikutnya dalam seri ini akan membangun dan menyebarkan aplikasi web ujung depan ke Azure Container Apps.

Cuplikan layar berikut menunjukkan output dari API album yang disebarkan dalam tutorial ini.

Cuplikan layar respons dari titik akhir API album.

Prasyarat

Untuk menyelesaikan proyek ini, Anda memerlukan item berikut:

Persyaratan Petunjuk
Akun Azure Jika Anda tidak memilikinya, buat akun secara gratis. Anda memerlukan izin Administrator Akses Pengguna atau Pemilik pada langganan Azure untuk melanjutkan. Pastikan untuk menggunakan peran yang paling ketat untuk konteks Anda.

Lihat Menetapkan peran Azure menggunakan peran portal Azure dan Azure, peran Microsoft Entra, dan peranadministrator langganan klasik untuk detailnya.
Akun GitHub Mendaftar secara gratis.
git Instal git
Azure CLI Instal Azure CLI.
Persyaratan Petunjuk
Akun Azure Jika Anda tidak memilikinya, buat akun secara gratis. Anda memerlukan izin Kontributor atau Pemilik pada langganan Azure untuk melanjutkan. Lihat Menetapkan peran Azure menggunakan portal Azure untuk detailnya.
Akun GitHub Mendaftar secara gratis.
git Instal git
Azure CLI Instal Azure CLI.
Desktop Docker Docker menyediakan alat penginstal yang mengonfigurasi lingkungan Docker di macOS, Windows, dan Linux.

Dari prompt perintah Anda, ketik docker untuk memastikan Docker berjalan.

Siapkan

Untuk masuk ke Azure dari CLI, jalankan perintah berikut dan ikuti perintah untuk menyelesaikan proses autentikasi.

az login

Untuk memastikan Anda menjalankan CLI versi terbaru, jalankan perintah peningkatan.

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 atau cmdlet dari Az.App modul di PowerShell, pastikan Anda memiliki versi terbaru ekstensi Azure Container Apps yang diinstal.

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 .

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Membuat variabel lingkungan

Setelah penyiapan Azure CLI selesai, Anda dapat menentukan variabel lingkungan yang digunakan di seluruh artikel ini.

Tentukan variabel berikut dalam shell bash Anda.

RESOURCE_GROUP="album-containerapps"
LOCATION="canadacentral"
ENVIRONMENT="env-album-containerapps"
API_NAME="album-api"
FRONTEND_NAME="album-ui"
GITHUB_USERNAME="<YOUR_GITHUB_USERNAME>"

Sebelum Anda menjalankan perintah ini, pastikan untuk mengganti <YOUR_GITHUB_USERNAME> dengan nama pengguna GitHub Anda.

Selanjutnya, tentukan nama registri kontainer yang unik untuk Anda.

ACR_NAME="acaalbums"$GITHUB_USERNAME

Menyiapkan repositori GitHub

Navigasi ke repositori untuk bahasa pilihan Anda dan fork repositori.

Pilih tombol Fork di bagian atas repositori API album untuk membuat fork repositori ke akun Anda.

Sekarang Anda dapat mengkloning fork repositori sampel Anda.

Gunakan perintah git berikut untuk mengkloning repositori fork Anda ke folder code-to-cloud :

git clone https://github.com/$GITHUB_USERNAME/containerapps-albumapi-csharp.git code-to-cloud

Selanjutnya, ubah direktori menjadi akar repositori kloning.

cd code-to-cloud/src

Membuat Grup Sumber Daya Azure

Buat grup sumber daya untuk mengatur layanan yang terkait dengan penyebaran aplikasi kontainer Anda.

az group create \
  --name $RESOURCE_GROUP \
  --location "$LOCATION"

Membuat Azure Container Registry

  1. Setelah gambar kontainer API album dibuat, buat instans Azure Container Registry (ACR) di grup sumber daya Anda untuk menyimpannya.

    az acr create \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION \
        --name $ACR_NAME \
        --sku Basic
    
  2. Registri kontainer Anda harus mengizinkan token audiens Azure Resource Manager (ARM) untuk autentikasi agar dapat menggunakan identitas terkelola untuk menarik gambar.

    Gunakan perintah berikut untuk memeriksa apakah token ARM diizinkan untuk mengakses Azure Container Registry (ACR) Anda.

    az acr config authentication-as-arm show --registry "$ACR_NAME"
    

    Jika token ARM diizinkan, perintah akan menghasilkan yang berikut.

    {
      "status": "enabled"
    }
    

    status Jika adalah disabled, izinkan token ARM dengan perintah berikut.

    az acr config authentication-as-arm update --registry "$ACR_NAME" --status enabled
    

Membuat identitas terkelola yang ditetapkan pengguna

Untuk menghindari penggunaan kredensial administratif, tarik gambar dari repositori privat di Microsoft Azure Container Registry menggunakan identitas terkelola untuk autentikasi. Jika memungkinkan, gunakan identitas terkelola yang ditetapkan pengguna untuk menarik gambar.

  1. Buat identitas terkelola yang ditetapkan pengguna. Sebelum Anda menjalankan perintah berikut, pilih nama untuk identitas terkelola \<PLACEHOLDER\> Anda dan ganti dengan nama.

    IDENTITY="<YOUR_IDENTITY_NAME>"
    
    az identity create \
        --name $IDENTITY \
        --resource-group $RESOURCE_GROUP
    
  2. Dapatkan ID sumber daya identitas.

    IDENTITY_ID=$(az identity show \
        --name $IDENTITY \
        --resource-group $RESOURCE_GROUP \
        --query id \
        --output tsv)
    

Bangun aplikasi Anda

Dengan tugas ACR, Anda dapat membangun dan mendorong gambar docker untuk API album tanpa menginstal Docker secara lokal.

Membangun kontainer dengan ACR

Jalankan perintah berikut untuk memulai proses pembuatan dan pendorongan gambar menggunakan ACR. . Di akhir perintah mewakili konteks build docker, yang berarti perintah ini harus dijalankan dalam folder src tempat Dockerfile berada.

az acr build --registry $ACR_NAME --image $API_NAME .

Output dari az acr build perintah menunjukkan kemajuan pengunggahan kode sumber ke Azure dan detail docker build operasi dan docker push .

Bangun aplikasi Anda

Langkah-langkah berikut menunjukkan cara membangun gambar kontainer Anda secara lokal menggunakan Docker dan mendorong gambar ke registri kontainer baru.

Membangun kontainer dengan Docker

Perintah berikut membangun gambar kontainer untuk API album dan menandainya dengan nama server login ACR yang sepenuhnya memenuhi syarat. . Di akhir perintah mewakili konteks build docker, yang berarti perintah ini harus dijalankan dalam folder src tempat Dockerfile berada.

docker build --tag $ACR_NAME.azurecr.io/$API_NAME .

Dorong gambar ke registri kontainer Anda

Pertama, masuk ke Azure Container Registry Anda.

az acr login --name $ACR_NAME

Sekarang, dorong gambar ke registri Anda.

docker push $ACR_NAME.azurecr.io/$API_NAME

Membuat lingkungan Aplikasi Kontainer

Lingkungan Azure Container Apps bertindak sebagai batas aman di sekitar sekelompok aplikasi kontainer.

Buat lingkungan Container Apps menggunakan perintah berikut.

az containerapp env create \
  --name $ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION"

Menyebarkan gambar Anda ke aplikasi kontainer

Setelah membuat lingkungan, Anda dapat membuat dan menyebarkan aplikasi kontainer dengan az containerapp create perintah .

Buat dan sebarkan aplikasi kontainer Anda dengan perintah berikut.

az containerapp create \
  --name $API_NAME \
  --resource-group $RESOURCE_GROUP \
  --environment $ENVIRONMENT \
  --image $ACR_NAME.azurecr.io/$API_NAME \
  --target-port 8080 \
  --ingress external \
  --registry-server $ACR_NAME.azurecr.io \
  --user-assigned "$IDENTITY_ID" \
  --registry-identity "$IDENTITY_ID" \
  --query properties.configuration.ingress.fqdn
  • Dengan mengatur --ingress ke external, aplikasi kontainer Anda dapat diakses dari internet publik.

  • target-port diatur ke 8080 agar sesuai dengan port yang didengarkan kontainer untuk permintaan.

  • query Tanpa properti, panggilan untuk az containerapp create mengembalikan respons JSON yang menyertakan serangkaian detail yang kaya tentang aplikasi. Menambahkan parameter kueri memfilter output hanya ke nama domain aplikasi yang sepenuhnya memenuhi syarat (FQDN).

  • Perintah ini menambahkan peran ke acrPull identitas terkelola yang ditetapkan pengguna Anda, sehingga dapat menarik gambar dari registri kontainer Anda.

Verifikasi penyebaran

Salin FQDN ke browser web. Dari browser web Anda, navigasikan ke /albums titik akhir FQDN.

Cuplikan layar respons dari titik akhir API album.

Membersihkan sumber daya

Jika Anda tidak akan melanjutkan ke tutorial Komunikasi antara layanan mikro , Anda dapat menghapus sumber daya Azure yang dibuat selama mulai cepat ini. Jalankan perintah berikut untuk menghapus grup sumber daya bersama dengan semua sumber daya yang dibuat dalam mulai cepat ini.

az group delete --name $RESOURCE_GROUP

Tip

Mengalami masalah? Beri tahu kami di GitHub dengan membuka masalah di repositori Azure Container Apps.

Langkah berikutnya

Mulai cepat ini adalah titik masuk untuk serangkaian tutorial progresif yang menampilkan berbagai fitur dalam Azure Container Apps. Lanjutkan untuk mempelajari cara mengaktifkan komunikasi dari front end web yang memanggil API yang Anda sebarkan dalam artikel ini.