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.
Azure Container Apps memungkinkan Anda menggunakan Azure Pipelines untuk menerbitkan revisi ke aplikasi kontainer Anda. Saat komit diteruskan ke repositori Azure DevOps Anda, sebuah pipeline dipicu yang memperbarui citra kontainer di dalam registri kontainer. Container Apps membuat revisi baru berdasarkan gambar kontainer yang diperbarui.
Komit ke cabang tertentu di repositori Anda mengaktifkan pipeline. Saat membuat alur, Anda memutuskan cabang mana yang menjadi pemicunya.
Tugas Container Apps di Azure Pipelines
Tugas ini mendukung skenario berikut:
- Buat dari Dockerfile dan sebarkan ke Aplikasi Kontainer.
- Buat dari kode sumber tanpa Dockerfile dan sebarkan ke Aplikasi Kontainer. Bahasa yang didukung termasuk .NET, Java, Node.js, PHP, dan Python.
- Sebarkan gambar kontainer yang ada ke Aplikasi Kontainer.
Dengan rilis produksi, tugas ini dilengkapi dengan Azure DevOps dan tidak memerlukan penginstalan eksplisit. Untuk dokumentasi lengkapnya, lihat AzureContainerApps@1 - Fungsi Azure Container Apps Deploy v1.
Contoh penggunaan
Berikut ini adalah beberapa skenario umum untuk menggunakan tugas. Untuk informasi selengkapnya, lihat dokumentasi tugas.
Bangun dan menerapkan ke Aplikasi Kontainer
Cuplikan berikut menunjukkan cara membuat gambar kontainer dari kode sumber dan menyebarkannya ke Container Apps.
steps:
- task: AzureContainerApps@1
inputs:
appSourcePath: '$(Build.SourcesDirectory)/src'
azureSubscription: 'my-subscription-service-connection'
acrName: 'myregistry'
containerAppName: 'my-container-app'
resourceGroup: 'my-container-app-rg'
Tugas menggunakan Dockerfile di appSourcePath untuk membangun gambar kontainer. Jika tidak ada Dockerfile yang ditemukan, tugas mencoba membangun gambar kontainer dari kode sumber di appSourcePath.
Menyebarkan gambar kontainer yang ada ke Aplikasi Kontainer
Cuplikan berikut menunjukkan cara menyebarkan gambar kontainer yang ada ke Container Apps. Tugas mengautentikasi dengan registri dengan menggunakan koneksi layanan. Jika identitas koneksi layanan tidak diberi peran AcrPush untuk registri, berikan kredensial admin registri dengan menggunakan parameter input acrUsername dan acrPassword.
steps:
- task: AzureContainerApps@1
inputs:
azureSubscription: 'my-subscription-service-connection'
containerAppName: 'my-container-app'
resourceGroup: 'my-container-app-rg'
imageToDeploy: 'myregistry.azurecr.io/my-container-app:$(Build.BuildId)'
Penting
Jika Anda membangun gambar kontainer dalam langkah terpisah, pastikan untuk menggunakan tag unik seperti ID build alih-alih tag stabil seperti latest. Untuk informasi selengkapnya, lihat Praktik tag gambar terbaik.
Mengautentikasi dengan Azure Container Registry
Tugas Container Apps perlu melakukan autentikasi terhadap Azure Container Registry Anda untuk mengunggah citra kontainer. Aplikasi kontainer juga perlu mengautentikasi dengan registri kontainer Anda untuk menarik gambar kontainer.
Untuk mengunggah gambar, tugas secara otomatis mengautentikasi dengan registri kontainer yang ditentukan di acrName menggunakan koneksi layanan yang disediakan di azureSubscription. Jika identitas koneksi layanan tidak diberi AcrPush peran untuk registri, berikan kredensial admin registri dengan menggunakan acrUsername dan acrPassword.
Untuk mengambil image, Container Apps menggunakan identitas terkelola (disarankan) atau kredensial admin untuk mengautentikasi dengan registri kontainer. Untuk menggunakan identitas terkelola, aplikasi kontainer target untuk tugas harus dikonfigurasi untuk menggunakan identitas terkelola. Untuk mengautentikasi menggunakan kredensial admin dari registri, atur input acrUsername dan acrPassword untuk tugas tersebut.
Konfigurasi
Selesaikan langkah-langkah berikut untuk mengonfigurasi alur Azure DevOps untuk disebarkan ke Aplikasi Kontainer.
- Membuat repositori Azure DevOps untuk aplikasi Anda
- Membuat aplikasi kontainer dengan identitas terkelola diaktifkan
-
AcrPullMenetapkan peran untuk registri kontainer ke identitas terkelola aplikasi kontainer - Mengonfigurasi koneksi layanan Azure DevOps untuk langganan Azure Anda
- Membuat alur Azure DevOps
Prasyarat
| Persyaratan | Petunjuk |
|---|---|
| Akun Azure | Jika Anda tidak memilikinya, buat akun secara gratis. Anda memerlukan izin Kontributor atau Pemilik pada langganan Azure untuk menyelesaikan prosedur dalam artikel ini. Untuk informasi selengkapnya, lihat Menetapkan peran Azure menggunakan portal Microsoft Azure. |
| Proyek Azure DevOps | Buka Azure DevOps dan pilih Mulai dengan Azure. Kemudian buat proyek baru. |
| Azure CLI | Instal Azure CLI. |
Membuat repositori Azure DevOps dan mengkloning kode sumber
Sebelum Anda membuat alur, kode sumber untuk aplikasi Anda harus berada di repositori.
Masuk ke Azure DevOps dan buka proyek Anda.
Pilih Repos di panel kiri.
Pilih Impor repositori.
Masukkan nilai berikut, lalu pilih Impor:
Bidang Nilai Jenis repositori Git URL Kloning https://github.com/Azure-Samples/containerapps-albumapi-csharp.git Pilih Import.
Pilih Kloning untuk melihat URL repositori dan menyalinnya.
Buka jendela command prompt dan jalankan perintah berikut:
git clone <REPOSITORY_URL> my-container-appGanti
<REPOSITORY_URL>dengan URL yang Anda salin.
Membuat aplikasi kontainer dan mengonfigurasi identitas terkelola
Buat aplikasi kontainer Anda dengan menyelesaikan langkah-langkah berikut.
az containerapp up Perintah membuat sumber daya Azure, membangun gambar kontainer, menyimpan gambar dalam registri, dan menyebarkan aplikasi kontainer.
Setelah aplikasi dibuat, Anda dapat menambahkan identitas terkelola ke dalam aplikasi dan menetapkan peran AcrPull kepada identitas tersebut untuk memungkinkan identitas mengambil gambar dari registri.
Beralih ke folder src dari repositori yang sudah dikloning:
cd my-container-app cd srcBuat sumber daya Azure dan sebarkan aplikasi kontainer dengan menggunakan
az containerapp upperintah :az containerapp up \ --name my-container-app \ --source . \ --ingress externalTip
Jika build gagal dengan kesalahan repositori Debian, pastikan Anda menggunakan versi Azure CLI terbaru dan ekstensi containerapp dengan menjalankan
az extension add --name containerapp --upgrade. Atau, tambahkan Dockerfile ke proyek Anda untuk kontrol lebih besar atas build.Dalam output perintah, perhatikan nama registri kontainer Azure.
Dapatkan ID sumber daya lengkap dari registri kontainer:
az acr show --name <ACR_NAME> --query id --output tsvGanti
<ACR_NAME>dengan nama register Anda.Aktifkan identitas terkelola untuk aplikasi kontainer:
az containerapp identity assign \ --name my-container-app \ --resource-group my-container-app-rg \ --system-assignedPerhatikan ID utama identitas terkelola dalam output perintah.
Berikan peran
AcrPulluntuk Registri Kontainer kepada identitas terkelola dari aplikasi kontainer.az role assignment create \ --assignee <MANAGED_IDENTITY_PRINCIPAL_ID> \ --role AcrPull \ --scope <ACR_RESOURCE_ID>Ganti
<MANAGED_IDENTITY_PRINCIPAL_ID>dengan ID utama identitas terkelola dan<ACR_RESOURCE_ID>dengan ID sumber daya Container Registry.Konfigurasikan aplikasi kontainer untuk menggunakan identitas terkelola untuk menarik gambar dari registri kontainer:
az containerapp registry set \ --name my-container-app \ --resource-group my-container-app-rg \ --server <ACR_NAME>.azurecr.io \ --identity systemGanti
<ACR_NAME>dengan nama registri kontainer Azure Anda.
Membuat koneksi layanan Azure DevOps
Untuk menyebarkan ke Aplikasi Kontainer, Anda perlu membuat koneksi layanan Azure DevOps untuk langganan Azure Anda.
Di Azure DevOps, pilih Pengaturan proyek.
Pilih Koneksi layanan.
Pilih Buat koneksi layanan.
Pilih Azure Resource Manager, lalu pilih Berikutnya.
Pilih Pendaftaran aplikasi (otomatis), lalu pilih Berikutnya.
Berikan nilai berikut, lalu pilih Simpan:
Bidang Nilai Langganan Pilih langganan Azure Anda. Grup sumber daya Pilih grup sumber daya ( my-container-app-rg) yang berisi aplikasi kontainer dan registri kontainer Anda.Nama koneksi layanan my-subscription-service-connection
Untuk mempelajari selengkapnya tentang koneksi layanan, lihat Menyambungkan ke Microsoft Azure.
Membuat alur YAML Azure DevOps
Di proyek Azure DevOps Anda, pilih Alur.
Pilih Buat alur.
Pilih Azure Repos Git.
Nota
Jika Anda tidak melihat Azure Repos Git sebagai opsi, pastikan kode sumber Anda didorong ke repositori Git di proyek Azure DevOps Anda.
Pilih repositori yang berisi kode sumber Anda (
my-container-app).Pilih Alur pemula.
Di editor, ganti konten file dengan YAML berikut:
trigger: branches: include: - main pool: vmImage: ubuntu-latest steps: - task: AzureContainerApps@1 inputs: appSourcePath: '$(Build.SourcesDirectory)/src' azureSubscription: '<AZURE_SUBSCRIPTION_SERVICE_CONNECTION>' acrName: '<ACR_NAME>' containerAppName: 'my-container-app' resourceGroup: 'my-container-app-rg'Ganti
<AZURE_SUBSCRIPTION_SERVICE_CONNECTION>dengan nama koneksi layanan Azure DevOps (my-subscription-service-connection) yang Anda buat di langkah sebelumnya. Ganti<ACR_NAME>dengan nama registri kontainer Azure Anda.Pilih Simpan dan jalankan.
Proses Azure Pipelines dimulai untuk membangun dan menyebarkan aplikasi kontainer Anda. Untuk memeriksa kemajuannya, buka Pipelines dan pilih jalankan. Selama menjalankan pipeline pertama, Anda mungkin diminta untuk mengizinkan pipeline menggunakan koneksi layanan Anda.
Untuk menyebarkan revisi baru aplikasi Anda, lakukan commit baru ke cabang utama.