Bagikan melalui


Mengonfigurasi gambar kontainer untuk menjalankan penyebaran

Dalam artikel ini, Anda mempelajari cara membuat gambar kontainer kustom untuk menyebarkan definisi lingkungan Anda di Azure Deployment Environments (ADE).

Definisi lingkungan terdiri dari setidaknya dua file: file templat, seperti azuredeploy.json, dan file manifes bernama environment.yaml. ADE menggunakan kontainer untuk menyebarkan definisi lingkungan, dan secara asli mendukung kerangka kerja Azure Resource Manager (ARM) dan Bicep IaC.

Model ekstensibilitas ADE memungkinkan Anda membuat gambar kontainer kustom untuk digunakan dengan definisi lingkungan Anda. Dengan menggunakan model ekstensibilitas, Anda dapat membuat gambar kontainer kustom Anda sendiri, dan menyimpannya di registri kontainer seperti Azure Container Registry (ACR) atau Docker Hub. Anda kemudian dapat mereferensikan gambar-gambar ini dalam definisi lingkungan Anda untuk menyebarkan lingkungan Anda.

Tim ADE menyediakan pilihan gambar untuk membantu Anda memulai, termasuk gambar inti, dan gambar Azure Resource Manager (ARM)/Bicep. Anda dapat mengakses gambar sampel ini di folder Runner-Images .

Prasyarat

Menggunakan gambar kontainer dengan ADE

Anda dapat mengambil salah satu pendekatan berikut untuk menggunakan gambar kontainer dengan ADE:

  • Gunakan gambar kontainer standar: Untuk skenario sederhana, gunakan gambar kontainer Bicep standar yang disediakan oleh ADE.
  • Membuat gambar kontainer kustom: Untuk skenario yang lebih kompleks, buat gambar kontainer kustom yang memenuhi persyaratan spesifik Anda.

Terlepas dari pendekatan mana yang Anda pilih, Anda harus menentukan gambar kontainer dalam definisi lingkungan Anda untuk menyebarkan sumber daya Azure Anda.

Menggunakan gambar standar

ADE mendukung Bicep secara asli, sehingga Anda dapat mengonfigurasi definisi lingkungan yang menyebarkan sumber daya Azure untuk lingkungan penyebaran dengan menambahkan file templat (azuredeploy.json dan environment.yaml) ke katalog Anda. ADE kemudian menggunakan gambar kontainer Bicep standar untuk membuat lingkungan penyebaran.

Dalam file environment.yaml, properti runner menentukan lokasi gambar kontainer yang ingin Anda gunakan. Untuk menggunakan gambar sampel yang diterbitkan di Registri Artefak Microsoft, gunakan masing-masing pengidentifikasi runner, seperti yang tercantum dalam tabel berikut.

Contoh berikut menunjukkan runner yang mereferensikan sampel gambar kontainer Bicep:

    name: WebApp
    version: 1.0.0
    summary: Azure Web App Environment
    description: Deploys a web app in Azure without a datastore
    runner: Bicep
    templatePath: azuredeploy.json

Anda dapat melihat gambar kontainer Bicep standar di repositori sampel ADE di bawah folder Runner-Images untuk gambar ARM-Bicep .

Untuk informasi selengkapnya tentang cara membuat definisi lingkungan yang menggunakan gambar kontainer ADE untuk menyebarkan sumber daya Azure Anda, lihat Menambahkan dan mengonfigurasi definisi lingkungan.

Membuat gambar kontainer kustom

Membuat gambar kontainer kustom memungkinkan Anda menyesuaikan penyebaran agar sesuai dengan kebutuhan Anda. Anda dapat membuat gambar kustom berdasarkan gambar kontainer standar ADE.

Setelah menyelesaikan kustomisasi gambar, Anda harus membangun gambar dan mendorongnya ke registri kontainer Anda.

Membuat dan menyesuaikan gambar kontainer dengan Docker

Dalam contoh ini, Anda mempelajari cara membuat gambar Docker untuk menggunakan penyebaran ADE dan mengakses ADE CLI, mendasarkan gambar Anda pada salah satu gambar yang ditulis ADE.

ADE CLI adalah alat yang memungkinkan Anda membuat gambar kustom dengan menggunakan gambar dasar ADE. Anda dapat menggunakan ADE CLI untuk menyesuaikan penyebaran dan penghapusan agar sesuai dengan alur kerja Anda. ADE CLI telah diinstal sebelumnya pada gambar sampel. Untuk mempelajari selengkapnya tentang CLI ADE, lihat referensi Gambar Runner Kustom CLI.

Untuk membuat gambar yang dikonfigurasi untuk ADE, ikuti langkah-langkah berikut:

  1. Dasarkan gambar Anda pada gambar sampel yang ditulis ADE atau gambar pilihan Anda dengan menggunakan pernyataan FROM.
  2. Instal paket yang diperlukan untuk gambar Anda dengan menggunakan pernyataan RUN.
  3. Buat folder skrip pada tingkat yang sama dengan Dockerfile Anda, simpan file deploy.sh dan delete.sh Anda di dalamnya, dan pastikan skrip tersebut dapat ditemukan dan dapat dieksekusi di dalam kontainer yang Anda buat. Langkah ini diperlukan agar penyebaran Anda berfungsi menggunakan gambar inti ADE.

Pilih gambar kontainer sampel dengan menggunakan pernyataan FROM

Untuk membangun gambar Docker untuk menggunakan penyebaran ADE dan mengakses ADE CLI, Anda harus mendasarkan gambar Anda pada salah satu gambar yang ditulis ADE. Termasuk pernyataan FROM dalam DockerFile yang dibuat untuk gambar baru Anda yang menunjuk ke gambar sampel yang ditulis ADE yang dihosting di Registri Artefak Microsoft. Saat menggunakan gambar yang ditulis ADE, Anda harus mendasarkan gambar kustom Anda pada gambar inti ADE.

Berikut adalah contoh pernyataan FROM, yang merujuk gambar inti sampel:

FROM mcr.microsoft.com/deployment-environments/runners/core:latest

Pernyataan ini menarik gambar inti yang terakhir diterbitkan, dan menjadikannya dasar untuk gambar kustom Anda.

Menginstal paket dalam gambar

Anda dapat menginstal paket dengan Azure CLI dengan menggunakan pernyataan RUN, seperti yang ditunjukkan dalam contoh berikut:

RUN az bicep install

Gambar sampel ADE didasarkan pada gambar Azure CLI, dan memiliki paket ADE CLI dan JQ yang telah diinstal sebelumnya. Anda dapat mempelajari selengkapnya tentang Azure CLI, dan paket JQ.

Untuk menginstal paket lain yang Anda butuhkan dalam gambar Anda, gunakan pernyataan RUN.

Menjalankan skrip shell operasi

Dalam gambar sampel, operasi ditentukan dan dijalankan berdasarkan nama operasi. Saat ini, dua nama operasi yang didukung disebarkan dan dihapus.

Untuk menyiapkan gambar kustom Anda untuk menggunakan struktur ini, tentukan folder di tingkat skrip bernama Dockerfile Anda, dan tentukan dua file, deploy.sh, dan delete.sh. Skrip shell penyebaran berjalan saat lingkungan Anda dibuat atau disebarkan ulang, dan skrip shell penghapusan berjalan saat lingkungan Anda dihapus. Anda dapat melihat contoh skrip shell di repositori di bawah gambar folder Runner-Images.

Untuk memastikan skrip shell ini dapat dieksekusi, tambahkan baris berikut ke Dockerfile Anda:

COPY scripts/* /scripts/
RUN find /scripts/ -type f -iname "*.sh" -exec dos2unix '{}' '+'
RUN find /scripts/ -type f -iname "*.sh" -exec chmod +x {} \;

Membuat gambar kustom dapat diakses oleh ADE

Anda harus membangun gambar Docker Anda dan mendorongnya ke registri kontainer untuk membuatnya tersedia untuk digunakan dalam ADE.

Anda dapat membuat gambar menggunakan Docker CLI, atau dengan menggunakan skrip yang disediakan oleh ADE.

Pilih tab yang sesuai untuk mempelajari selengkapnya tentang setiap pendekatan.

Sebelum Anda membuat gambar untuk didorong ke registri Anda, pastikan Mesin Docker diinstal di komputer Anda. Kemudian, navigasikan ke direktori Dockerfile Anda, dan jalankan perintah berikut:

docker build . -t {YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}

Misalnya, jika Anda ingin menyimpan gambar Anda di bawah repositori dalam registri Anda bernama customImage, dan unggah dengan versi 1.0.0tag , Anda akan menjalankan:

docker build . -t {YOUR_REGISTRY}.azurecr.io/customImage:1.0.0

Dorong citra ke registri

Untuk menggunakan gambar kustom, Anda perlu menyimpannya dalam registri kontainer. Azure Container Registry (ACR) sangat disarankan untuk itu. Karena integrasinya yang ketat dengan ADE, gambar dapat diterbitkan tanpa mengizinkan akses penarikan anonim publik.

Anda juga dapat menyimpan gambar di registri kontainer yang berbeda seperti Docker Hub, tetapi dalam hal ini perlu diakses secara publik.

Perhatian

Menyimpan citra kontainer Anda dalam registri dengan akses tarik anonim (tidak diaturentikasi) membuatnya dapat diakses secara publik. Jangan lakukan itu jika gambar Anda berisi informasi sensitif apa pun. Sebagai gantinya, simpan di Azure Container Registry (ACR) dengan akses penarikan anonim dinonaktifkan.

Untuk menggunakan gambar kustom yang disimpan di ACR, Anda perlu memastikan bahwa ADE memiliki izin yang sesuai untuk mengakses gambar Anda. Saat Anda membuat instans ACR, instans ACR aman secara default dan hanya memungkinkan pengguna yang diautentikasi untuk mendapatkan akses.

Untuk membuat instans ACR, yang dapat dilakukan melalui Azure CLI, perintah portal Azure, PowerShell, dan lainnya, ikuti salah satu mulai cepat.

Menggunakan registri publik dengan tarikan anonim

Untuk menyiapkan registri Anda agar penarikan gambar anonim diaktifkan, jalankan perintah berikut di Azure CLI:

az login
az acr login -n {YOUR_REGISTRY}
az acr update -n {YOUR_REGISTRY} --public-network-enabled true
az acr update -n {YOUR_REGISTRY} --anonymous-pull-enabled true

Saat Anda siap untuk mendorong gambar ke registri, jalankan perintah berikut:

docker push {YOUR_REGISTRY}.azurecr.io/{YOUR_IMAGE_LOCATION}:{YOUR_TAG}

Menggunakan ACR dengan akses aman

Secara default, akses untuk menarik atau mendorong konten dari Azure Container Registry hanya tersedia untuk pengguna yang diautentikasi. Anda dapat lebih mengamankan akses ke ACR dengan membatasi akses dari jaringan tertentu dan menetapkan peran tertentu.

Membatasi akses jaringan

Untuk mengamankan akses jaringan ke ACR, Anda dapat membatasi akses ke jaringan Anda sendiri, atau menonaktifkan akses jaringan publik sepenuhnya. Jika Anda membatasi akses jaringan, Anda harus mengaktifkan pengecualian firewall Izinkan layanan Microsoft tepercaya untuk mengakses registri kontainer ini.

Untuk menonaktifkan akses dari jaringan publik:

  1. Buat instans ACR atau gunakan instans yang sudah ada.

  2. Di portal Azure, buka ACR yang ingin Anda konfigurasi.

  3. Di menu sebelah kiri, di bawah Pengaturan, pilih Jaringan.

  4. Pada halaman Jaringan, pada tab Akses publik, di bawah Akses jaringan publik, pilih Dinonaktifkan.

    Cuplikan layar portal Azure, memperlihatkan pengaturan jaringan ACR, dengan Akses publik dan Dinonaktifkan disorot.

  5. Di bawah Pengecualian firewall, periksa apakah Izinkan layanan Microsoft tepercaya mengakses registri kontainer ini dipilih, lalu pilih Simpan.

    Cuplikan layar pengaturan jaringan ACR, dengan Izinkan layanan Microsoft tepercaya untuk mengakses registri kontainer ini dan Simpan disorot.

Menetapkan peran AcrPull

Membuat lingkungan dengan menggunakan gambar kontainer menggunakan infrastruktur ADE, termasuk proyek dan jenis lingkungan. Setiap proyek memiliki satu atau beberapa jenis lingkungan proyek, yang memerlukan akses baca ke gambar kontainer yang menentukan lingkungan yang akan disebarkan. Untuk mengakses gambar dalam ACR Anda dengan aman, tetapkan peran AcrPull ke setiap jenis lingkungan proyek.

Untuk menetapkan peran AcrPull ke Jenis Lingkungan Proyek:

  1. Di portal Azure, buka ACR yang ingin Anda konfigurasi.

  2. Di menu sebelah kiri, pilih Kontrol Akses (IAM).

  3. Pilih Tambahkan Tambahkan>penetapan peran.

  4. Tetapkan peran berikut. Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure menggunakan portal Azure.

    Pengaturan Nilai
    Peran Pilih AcrPull.
    Menetapkan akses ke Pilih Pengguna, grup, atau perwakilan layanan.
    Anggota Masukkan nama jenis lingkungan proyek yang perlu mengakses gambar dalam kontainer.

    Jenis lingkungan proyek ditampilkan seperti contoh berikut:

    Cuplikan layar panel Pilih anggota, memperlihatkan daftar jenis lingkungan proyek dengan bagian dari nama yang disorot.

Dalam konfigurasi ini, ADE menggunakan Identitas Terkelola untuk PET, baik sistem yang ditetapkan atau ditetapkan pengguna.

Tip

Penetapan peran ini harus dibuat untuk setiap jenis lingkungan proyek. Ini dapat diotomatisasi melalui Azure CLI.

Saat Anda siap untuk mendorong gambar ke registri, jalankan perintah berikut:

docker push {YOUR_REGISTRY}.azurecr.io/{YOUR_IMAGE_LOCATION}:{YOUR_TAG}

Menyambungkan gambar ke definisi lingkungan Anda

Saat menulis definisi lingkungan untuk menggunakan gambar kustom Anda dalam penyebarannya, edit runner properti pada file manifes (environment.yaml atau manifest.yaml).

runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}"

Mengakses log operasi dan detail kesalahan

ADE menyimpan detail kesalahan untuk penyebaran yang gagal dalam file $ADE_ERROR_LOG dalam kontainer.

Untuk memecahkan masalah penyebaran yang gagal:

  1. Masuk ke Portal Pengembang.

  2. Identifikasi lingkungan yang gagal disebarkan, dan pilih Lihat detail.

    Cuplikan layar memperlihatkan detail kesalahan penyebaran yang gagal, khususnya nama yang tidak valid untuk akun penyimpanan.

  3. Tinjau detail kesalahan di bagian Detail Kesalahan.

    Cuplikan layar memperlihatkan penyebaran lingkungan yang gagal dengan tombol Lihat Detail ditampilkan.

Selain itu, Anda dapat menggunakan Azure CLI untuk melihat detail kesalahan lingkungan menggunakan perintah berikut:

az devcenter dev environment show --environment-name {YOUR_ENVIRONMENT_NAME} --project {YOUR_PROJECT_NAME}

Untuk melihat log operasi untuk penyebaran atau penghapusan lingkungan, gunakan Azure CLI untuk mengambil operasi terbaru untuk lingkungan Anda, lalu lihat log untuk ID operasi tersebut.

# Get list of operations on the environment, choose the latest operation
az devcenter dev environment list-operation --environment-name {YOUR_ENVIRONMENT_NAME} --project {YOUR_PROJECT_NAME}
# Using the latest operation ID, view the operation logs
az devcenter dev environment show-logs-by-operation --environment-name {YOUR_ENVIRONMENT_NAME} --project {YOUR_PROJECT_NAME} --operation-id {LATEST_OPERATION_ID}