Menyebarkan penyusun API Data ke Azure Container Instances

Panduan ini menunjukkan kepada Anda cara menyebarkan penyusun API Data (DAB) untuk Azure Container Instances menggunakan gambar kontainer kustom yang dibangun dengan Azure Container Registry. Container Instances menyediakan cara cepat untuk menjalankan kontainer di Azure tanpa mengelola komputer virtual atau mengadopsi orkestrator.

Diagram arsitektur keseluruhan setelah penyebaran ke Azure Container Instances selesai.

Prasyarat

Membangun file konfigurasi

Untuk memulai, buat file konfigurasi Penyusun API Data (DAB) untuk menyambungkan ke database Anda yang sudah ada. File ini digunakan nanti dengan kontainer akhir.

  1. Buat direktori kosong di komputer lokal Anda untuk menyimpan file konfigurasi.

  2. Inisialisasi file konfigurasi dasar baru menggunakan dab init. Gunakan pengaturan berikut minimal pada inisialisasi.

    Setting Nilai
    jenis database Pilih jenis database yang didukung.
    Koneksi string Gunakan fungsi @env() untuk mereferensikan variabel lingkungan DATABASE_CONNECTION_STRING.
    dab init --database-type "<database-type>" --connection-string "@env('DATABASE_CONNECTION_STRING')"
    

    Penting

    Beberapa jenis database memerlukan pengaturan konfigurasi tambahan pada inisialisasi.

  3. Tambahkan setidaknya satu entitas database ke konfigurasi. Gunakan perintah dab add untuk mengonfigurasi entitas. Konfigurasikan setiap entitas untuk mengizinkan semua izin untuk pengguna anonim. Ulangi dab add sebanyak yang Anda suka untuk entitas Anda.

    dab add "<entity-name>" --source "<schema>.<table>" --permissions "anonymous:*"
    
  4. Buka dan tinjau konten file dab-config.json. Anda akan menggunakan file ini nanti di panduan ini.

Membangun gambar kontainer kustom

Buat gambar kustom yang mencakup dab-config.json di /App/dab-config.json. Jalankan perintah ini dari folder yang berisi dab-config.json.

  1. Buat grup sumber daya baru. Anda menggunakan grup sumber daya ini untuk semua sumber daya baru dalam panduan ini.

    Petunjuk / Saran

    Sebaiknya beri nama grup sumber daya msdocs-dab-aci.

  2. Buat Azure Container Registry (ACR) dan buat gambar.

    az acr create \
        --resource-group "<resource-group-name>" \
        --name "<registry-name>" \
        --sku Basic \
        --admin-enabled true
    
    # Create a Dockerfile that embeds dab-config.json
    cat <<'EOF' > Dockerfile
    FROM mcr.microsoft.com/azure-databases/data-api-builder:latest
    COPY dab-config.json /App/dab-config.json
    EOF
    
    # Build and push the image
    az acr build \
        --registry "<registry-name>" \
        --image "dab:1" \
        .
    
  3. Rekam server masuk registri (<registry-name>.azurecr.io) dan tag gambar (dab:1). Anda menggunakan nilai-nilai ini saat membuat instans kontainer.

  4. Dapatkan nama pengguna dan kata sandi registri.

    az acr credential show \
        --name "<registry-name>" \
        --query "{username:username,password:passwords[0].value}"
    

Membuat instans kontainer

Buat kontainer di Azure menggunakan Azure Container Instances dengan gambar kustom Anda.

  1. Buat sumber daya Azure Container Instances menggunakan az container create. Gunakan pengaturan ini untuk mengonfigurasi sumber daya.

    Setting Nilai
    grup Sumber Daya Menggunakan grup sumber daya yang Anda buat sebelumnya
    Nama kontainer Masukkan nama yang unik secara global
    Wilayah Menggunakan wilayah yang sama dengan grup sumber daya
    SKU Gunakan Standar
    Gambar Masukkan <registry-name>.azurecr.io/dab:1
    Jenis OS Menggunakan Linux
    Jenis jaringan Gunakan Publik
    Port jaringan Masukkan 5000
    Label nama DNS Masukkan label unik global
    Variabel lingkungan Masukkan DATABASE_CONNECTION_STRING dan string koneksi untuk database Anda.
    az container create \
        --resource-group "<resource-group-name>" \
        --name "<unique-container-instance-name>" \
        --image "<registry-name>.azurecr.io/dab:1" \
        --location "<region>" \
        --sku "Standard" \
        --os-type "Linux" \
        --ip-address "public" \
        --ports "5000" \
        --dns-name-label "<unique-dns-label>" \
        --environment-variables "DATABASE_CONNECTION_STRING=<database-connection-string>" \
        --registry-login-server "<registry-name>.azurecr.io" \
        --registry-username "<registry-username>" \
        --registry-password "<registry-password>"
    

    Petunjuk / Saran

    Sebaiknya gunakan string koneksi yang tidak menyertakan kunci otorisasi. Sebagai gantinya, gunakan identitas terkelola dan kontrol akses berbasis peran untuk mengelola akses antara database dan host Anda. Untuk informasi selengkapnya, lihat Layanan Azure yang menggunakan identitas terkelola.

  2. Gunakan az container show untuk mengkueri nama domain yang sepenuhnya memenuhi syarat (FQDN) untuk instans kontainer baru Anda. Kemudian, buka situs web instansia kontainer.

    az container show \
        --resource-group "<resource-group-name>" \
        --name "<unique-container-instance-name>" \
        --query "join('://', ['https', ipAddress.fqdn])" \
        --output "tsv"
    
  3. Perhatikan respons yang menunjukkan bahwa kontainer DAB beroperasi dan statusnya sehat.

    {
        "status": "healthy",
        "version": "1.1.7",
        "app-name": "dab_oss_1.1.7"
    }
    

    Nota

    Nomor dan nama versi bervariasi berdasarkan versi penyusun Data API Anda saat ini.

  4. Navigasi ke jalur /api/swagger untuk aplikasi yang sedang berjalan saat ini. Gunakan antarmuka pengguna Swagger untuk mengeluarkan permintaan HTTP GET untuk salah satu entitas Anda.

Membersihkan sumber daya

Saat Anda tidak lagi memerlukan aplikasi contoh atau sumber daya, hapus penerapan dan semua sumber daya yang terkait.

  1. Navigasikan ke grup sumber daya menggunakan portal Microsoft Azure.

  2. Di bilah perintah , pilih Hapus.

Langkah selanjutnya

Terintegrasi dengan Application Insights