Azure Container Instances'a Veri API oluşturucusu dağıtma

Bu kılavuzda, Azure Container Registry ile oluşturulmuş özel bir kapsayıcı görüntüsü kullanarak Azure Container Instances veri API'sini (DAB) nasıl dağıtabileceğiniz gösterilmektedir. Container Instances, sanal makineleri yönetmeden veya düzenleyici benimsemeden Azure'de kapsayıcı çalıştırmanın hızlı bir yolunu sağlar.

 Azure Container Instances dağıtımından sonra genel mimarinin diyagramları tamamlandı.

Önkoşullar

Yapılandırma dosyasını oluşturma

Başlamak için, mevcut veritabanınıza bağlanmak için bir Veri API'si oluşturucu (DAB) yapılandırma dosyası oluşturun. Bu dosya daha sonra son kapsayıcıda kullanılır.

  1. Yapılandırma dosyasını depolamak için yerel makinenizde boş bir dizin oluşturun.

  2. kullanarak dab inityeni bir temel yapılandırma dosyası başlatın. Başlatma sırasında en az aşağıdaki ayarları kullanın.

    Setting Değer
    Veritabanı türü Desteklenen bir veritabanı türü seçin.
    Bağlantı dizesi @env() ortam değişkenine başvurmak için DATABASE_CONNECTION_STRING işlevini kullanın.
    dab init --database-type "<database-type>" --connection-string "@env('DATABASE_CONNECTION_STRING')"
    

    Önemli

    Bazı veritabanı türleri başlatma için ek yapılandırma ayarları gerektirir.

  3. Yapılandırmaya en az bir veritabanı varlığı ekleyin. dab add Bir varlığı yapılandırmak için komutunu kullanın. Her varlığı anonim kullanıcılar için tüm izinlere izin verecek şekilde yapılandırın. dab add'yi varlıklarınız için istediğiniz kadar tekrarlayın.

    dab add "<entity-name>" --source "<schema>.<table>" --permissions "anonymous:*"
    
  4. dab-config.json dosyasının içeriğini açın ve gözden geçirin. Bu dosyayı bu kılavuzun ilerleyen bölümlerinde kullanacaksınız.

Özel kapsayıcı görüntüsü oluşturma

dab-config.json içeren /App/dab-config.json adresinde özel bir görüntü oluşturun. bu komutları içeren dab-config.jsonklasörden çalıştırın.

  1. Yeni bir kaynak grubu oluşturun. Bu kılavuzdaki tüm yeni kaynaklar için bu kaynak grubunu kullanırsınız.

    Tavsiye

    Kaynak grubunu msdocs-dab-aci olarak adlandırmanızı öneririz.

  2. Azure Container Registry (ACR) oluşturun ve görüntüyü oluşturun.

    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. Kayıt defteri oturum açma sunucusunu (<registry-name>.azurecr.io) ve görüntü etiketini (dab:1) kaydedin. Kapsayıcı örneğini oluştururken bu değerleri kullanırsınız.

  4. Kayıt defteri kullanıcı adını ve parolasını alın.

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

Kapsayıcı örneğini oluşturma

Özel görüntünüzle Azure Container Instances kullanarak Azure'da kapsayıcıyı oluşturun.

  1. kullanarak az container createbir Azure Container Instances kaynağı oluşturun. Kaynağı yapılandırmak için bu ayarları kullanın.

    Setting Değer
    Kaynak Grubu Daha önce oluşturduğunuz kaynak grubunu kullanın
    Kapsayıcı adı Genel olarak benzersiz bir ad girin
    Region Kaynak grubuyla aynı bölgeyi kullanma
    SKU Standart Kullan
    Image <registry-name>.azurecr.io/dab:1'yi girin
    İşletim Sistemi Türü Linux kullanma
    Ağ türü Genel kullan
    Ağ bağlantı noktaları 5000'yi girin
    DNS ad etiketi Genel olarak benzersiz bir etiket girin
    Ortam değişkenleri Veritabanınızın bağlantı dizesini girin DATABASE_CONNECTION_STRING .
    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>"
    

    Tavsiye

    Yetkilendirme anahtarları içermeyen bir bağlantı dizesi kullanmanızı öneririz. Bunun yerine, veritabanınız ve konağınız arasındaki erişimi yönetmek için yönetilen kimlikleri ve rol tabanlı erişim denetimini kullanın. Daha fazla bilgi için bkz. Yönetilen kimlikleri kullanan Azure hizmetleri.

  2. az container show kullanarak yeni kapsayıcı örneğinizin tam etki alanı adını (FQDN) sorgulayın. Ardından kapsayıcı örneğinin web sitesine göz atın.

    az container show \
        --resource-group "<resource-group-name>" \
        --name "<unique-container-instance-name>" \
        --query "join('://', ['https', ipAddress.fqdn])" \
        --output "tsv"
    
  3. DAB kapsayıcısının çalıştığını ve durumunun iyi durumda olduğunu belirten yanıtı gözlemleyin.

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

    Uyarı

    Sürüm numarası ve adı, veri API'sinin oluşturucusunun geçerli sürümüne göre değişir.

  4. Geçerli çalışan uygulamanın yoluna /api/swagger gidin. Varlıklarınızdan biri için HTTP GET isteği göndermek için Swagger kullanıcı arabirimini kullanın.

Kaynakları temizle

Örnek uygulamaya veya kaynaklara artık ihtiyacınız kalmadığında, ilgili dağıtımı ve tüm kaynakları kaldırın.

  1. Azure portalını kullanarak kaynak grubuna gidin.

  2. Komut çubuğundaSil'i seçin.

Sonraki adım