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 Developer CLI (azd) dapat membangun, menerbitkan, dan menyebarkan gambar kontainer di beberapa layanan hosting Azure. Alur kerja kontainer menggabungkan target hosting dengan lokasi build dan pendekatan penerbitan. Kombinasi terbaik tergantung pada aplikasi Anda, alat yang tersedia tim Anda, dan cara Anda mempromosikan gambar antar lingkungan.
Gunakan artikel ini untuk mencocokkan pilihan tersebut dengan kebutuhan Anda. Ini membandingkan keputusan berikut:
- Layanan Azure mana yang menghosting kontainer Anda.
- Apakah
azdmembangun gambar secara lokal, membangunnya dari jarak jauh di Azure Container Registry (ACR), atau menggunakan gambar yang ada. - Apakah
azdmenerbitkan dan menyebarkan gambar bersama-sama atau sebagai langkah terpisah.
Artikel ini membandingkan layanan hosting tujuan umum ini:
Mulailah dengan membandingkan target hosting dan opsi pembuatan image. Setelah Anda memahami pilihan tersebut, gunakan untuk mengidentifikasi alur kerja kandidat di bagian Membandingkan alur kerja penyebaran kontainer .
Membandingkan target hosting kontainer
Properti host dalam azure.yaml mengidentifikasi layanan Azure yang azd menyebarkan kontainer Anda. Pilih host secara terpisah dari lokasi build image.
| Nilai host | target hosting Azure | Alur kerja kontainer | Considerations |
|---|---|---|---|
containerapp |
pekerjaan Azure Container Apps dan Aplikasi Kontainer | Buat dari proyek dan Dockerfile, atau sebarkan gambar bawaan. | Mendukung variabel lingkungan tingkat layanan dan strategi penyebaran khusus Container Apps. Gunakan nilai host yang sama untuk job Container Apps. |
appservice |
Aplikasi Web Linux untuk Kontainer di Azure App Service | Bangun dari proyek dan Dockerfile, atau terapkan image yang sudah dibangun sebelumnya. | Infrastruktur Anda harus menyediakan situs siap kontainer Linux dan mengonfigurasi akses identitas terkelola ke ACR.
azd deploy hanya memperbarui referensi gambar. |
aks |
Azure Kubernetes Service | Buat gambar dan sebarkan manifes Kubernetes, bagan Helm, atau konfigurasi Kustomisasi. | Menyediakan kontrol paling besar, tetapi mengharuskan Anda untuk mengelola kluster dan konfigurasi Kubernetes. Menggunakan Helm atau Kustomize dengan azd memerlukan pengaktifan bendera fitur alfa. |
Host ai.endpoint dan azure.ai.agent juga mendukung konfigurasi Docker untuk skenario Microsoft Foundry khusus. Untuk beban kerja tersebut, lihat Menyebarkan ke titik akhir online Microsoft Foundry dan ekstensi agen Microsoft Foundry.
Bandingkan opsi pembuatan image
Definisi layanan menentukan apakah azd membangun gambar atau dimulai dengan gambar yang ada.
| Opsi kompilasi | Konfigurasi yang diperlukan | Tempat build dijalankan | Mesin kontainer lokal | Paling cocok untuk |
|---|---|---|---|---|
| Build lokal |
project dan, secara opsional, docker |
Lingkungan pengembangan atau runner CI Anda | Required | Iterasi pengembangan yang cepat dan membangun lingkungan yang sudah menyediakan Docker atau Podman. |
| Build ACR jarak jauh |
project dan docker.remoteBuild: true |
Azure Container Registry | Tidak diperlukan kecuali azd beralih ke opsi cadangan setelah kegagalan build jarak jauh |
Proses build cloud dan lingkungan yang konsisten tanpa engine kontainer lokal. Alur kerja build jarak jauh yang didokumenasikan menargetkan Azure Container Apps. |
Gambar yang ada dikelola oleh azd |
image |
Tidak ada build sumber | Mungkin diperlukan untuk operasi siklus hidup gambar | Image yang sudah ada secara lokal atau di registri dan yang azd dapat ambil, beri tag, dan dorong. |
| Penerusan gambar jarak jauh |
image dan docker.imagePassthrough: true |
Tidak ada kompilasi | Tidak diperlukan | Gambar jarak jauh berkualifikasi lengkap yang harus digunakan oleh sumber daya host apa adanya. |
Ingatlah perbedaan konseptual ini saat Anda membaca artikel konfigurasi per opsi:
-
Gambar bawaan menggunakan
imageproperti alih-alihproject, danazdmasih dapat menarik, menandai, dan mendorongnya. - Build jarak jauh ACR akan beralih ke build Docker atau Podman lokal saat build jarak jauh gagal dan engine kontainer yang didukung tersedia.
-
Penerusan image memerlukan referensi image jarak jauh yang memenuhi syarat lengkap dan menyertakan registri, tidak dapat digabungkan dengan
remoteBuild, dan tidak mendukung opsiazd publish --from-packageatauazd publish --tokarenaazdtidak mengelola image.
Untuk konfigurasi lengkap setiap opsi, lihat Dukungan build jarak jauh dengan Azure Container Registry, Menggunakan registri kontainer pihak ketiga, penyebaran kontainer App Service dengan Azure Developer CLI, dan docker skema.
Membandingkan alur kerja penyebaran kontainer
Setelah Anda membandingkan target hosting di Membandingkan target hosting kontainer dan opsi build di Membandingkan opsi build gambar, gunakan tabel berikut untuk mengidentifikasi alur kerja yang paling mungkin untuk kebutuhan Anda.
| Jika Anda perlu | Mulai dengan | Mengapa |
|---|---|---|
| Menyebarkan aplikasi dalam kontainer ke platform tanpa server | Azure Container Apps dengan build lokal | Alur kerja ini membangun dan menyebarkan proyek berbasis Dockerfile dalam satu alur kerja pengembangan. |
| Membangun tanpa menginstal Docker atau Podman secara lokal | Azure Container Apps dengan build jarak jauh ACR | ACR membangun gambar dari proyek Anda dan Dockerfile di Azure. |
| Menyebarkan gambar yang dihasilkan sistem build lain | Azure Container Apps atau App Service dengan gambar bawaan | Properti image mengidentifikasi gambar yang ada alih-alih kode sumber untuk dibuat. |
| Menggunakan kembali citra remote tanpa mengunduh, memberi tag, atau mengunggahnya | Azure Container Apps dengan passthrough gambar |
azd meneruskan referensi gambar yang sepenuhnya memenuhi syarat langsung ke sumber daya hosting. |
| Menghosting aplikasi web tradisional sebagai kontainer Linux | Aplikasi Web untuk Kontainer di Azure App Service | App Service menyediakan platform hosting web terintegrasi sementara infrastruktur Anda mengontrol konfigurasi situs siap kontainer. |
| Mengontrol manifes Kubernetes dan konfigurasi kluster | Azure Kubernetes Service (AKS) |
azd dapat membangun dan menerbitkan gambar, lalu menyebarkan manifes Kubernetes, bagan Helm, atau konfigurasi Kustomisasi. |
| Buat sekali dan promosikan image yang sama ke berbagai lingkungan |
azd publish, diikuti oleh azd deploy --from-package |
Penerbitan dan penyebaran terpisah, sehingga setiap lingkungan menerima gambar yang sama. |
Setiap baris menggabungkan opsi host dari Bandingkan target host kontainer dan opsi build dari Bandingkan opsi build image sebagai titik awal. Konfigurasikan pilihan Anda di azure.yaml, dan biarkan file Bicep atau Terraform Anda menyediakan sumber daya hosting dan registri yang sesuai.
Definisi layanan minimal menetapkan host, sumber build, dan Dockerfile:
services:
api:
project: ./src/api
language: docker
host: containerapp
docker:
path: ./Dockerfile
Untuk menyesuaikan definisi ini ke host lain, ubah host nilai dan ikuti kontrak konfigurasi per host:
- Menyebarkan ke Azure Container Apps menggunakan Azure Developer CLI
- Penyebaran kontainer App Service dengan Azure Developer CLI
- Dukungan Helm dan Kustomisasi
Membandingkan perintah penerbitan dan penyebaran
Setelah Anda memilih opsi host dan build, pilih apakah akan menggabungkan atau memisahkan penerbitan dan penyebaran gambar.
| Command | Aksi gambar | Tindakan sumber daya Azure | Gunakan ketika diperlukan |
|---|---|---|---|
azd up |
Membangun dan mendorong | Sediakan dan terapkan | Anda ingin membuat atau memperbarui lingkungan lengkap dan menyebarkan aplikasi dalam satu alur kerja. |
azd deploy |
Membangun dan mendorong | Deploy | Infrastruktur sudah ada dan Anda ingin menyebarkan perubahan aplikasi. |
azd publish |
Membangun dan mendorong | Tidak | Anda ingin membuat artefak registri tanpa menyebarkannya.
azd publish mendukung layanan Container Apps dan AKS. |
azd publish --from-package <image> |
Unggah image lokal yang sudah ada | Tidak | Proses lain membangun gambar, dan Anda ingin azd menerbitkannya. |
azd deploy --from-package <image> |
Tidak | Deploy | Anda ingin menyebarkan gambar tertentu tanpa membangunnya kembali. |
Misalnya, terbitkan gambar versi dan sebarkan gambar yang sama ke lingkungan lain:
azd publish api --to myregistry.azurecr.io/my-api:v1.0.0
azd env select production
azd deploy api --from-package myregistry.azurecr.io/my-api:v1.0.0
Alur kerja ini mencegah perbedaan yang dapat terjadi saat Anda membangun ulang gambar untuk setiap lingkungan. Untuk alur kerja promosi yang lengkap, lihat alur kerja penerbitan Azure Developer CLI.