Aracılığıyla paylaş


Azure Container Apps'te Azure İşlevleri'ni kullanma

Bu makalede, önceden yapılandırılmış otomatik ölçeklendirme kurallarıyla birlikte Azure Container Apps'te Bir Azure İşlevleri uygulamasının nasıl oluşturulacağı gösterilmektedir.

Önkoşullar

Kaynak Açıklama
Azure hesabı Aktif bir aboneliğe sahip bir Azure hesabı.

Eğer bir hesabınız yoksa ücretsiz olarak bir tane oluşturabilirsiniz.
Azure Depolama hesabı Azure İşlevlerinizin durumunu depolamak için bir blob depolama hesabı .
Azure Application Insights Kapsayıcı uygulamanız hakkında veri toplamak için Azure Application Insights örneği.

İşlevler uygulaması oluşturma

Aşağıdaki adımlarda, kapsayıcı uygulamanızı oluşturmak için örnek bir kapsayıcı görüntüsünün nasıl kullanılacağı gösterilmektedir. Bu yordamı özel bir kapsayıcı görüntüsüyle kullanmak istiyorsanız bkz. Azure Container Apps'te ilk işlev uygulamanızı oluşturma.

  1. Azure portalına gidin ve arama çubuğunda Container Apps araması yapın.

  2. Container Apps'i seçin.

  3. Oluştur'i seçin.

  4. Kapsayıcı Uygulaması'nı seçin.

  5. Temel Bilgiler bölümünde aşağıdaki değerleri girin.

    Proje detaylarıaltında:

    Mülkiyet Değer
    Abonelik Azure aboneliğinizi seçin.
    Kaynak grubu Yeni kaynak grubu oluştur'u seçin, my-aca-functions-group olarak adlandırıp Tamam'ı seçin.
    Kapsayıcı uygulama adı my-aca-functions-app girin.
  6. Azure İşlevleri için en iyi duruma getir'in yanında onay kutusunu işaretleyin.

    Azure İşlevleri için önceden yapılandırılmış bir kapsayıcı uygulaması oluşturduğunuzda Azure portalının ekran görüntüsü.

  7. Container Apps ortamı'nın altında şunu girin:

    Mülkiyet Değer
    Bölge Size en yakın bölgeyi seçin.
    Container Apps ortamı Yeni ortam oluştur'u seçin.
  8. Ortam kurulum penceresine şunu girin:

    Mülkiyet Değer
    Ortam adı Girin my-aca-functions-environment
    Bölge yedekliliği Devre dışı öğesini seçin.
  9. Değerlerinizi kaydetmek için Oluştur'u seçin.

  10. Kapsayıcı bölümüne geçmek için İleri: Kapsayıcı'ya tıklayın.

  11. Hızlı başlangıç görüntüsünü kullan'ın yanında, bu kutuyu işaretsiz bırakın.

  12. Kapsayıcı ayrıntıları bölümünün altında aşağıdaki değerleri girin.

    Mülkiyet Değer
    İsim Bu kutu, önceki bölümdeki seçiminizle önceden doldurulmuş.
    Görüntü kaynağı Docker Hub'ı veya diğer kayıt defterlerini seçin
    Abonelik Aboneliğinizi seçin.
    Görüntü türü Genel’i seçin.
    Kayıt defteri oturum açma sunucusu mcr.microsoft.com girin
    Resim ve etiket k8se/quickstart-functions:latest girin
  13. Ortam değişkenleri'nin altında aşağıdaki değişkenlerin değerlerini girin:

    • AzureWebJobsStorage
    • APPINSIGHTS_INSTRUMENTATIONKEY veya APPLICATIONINSIGHTS_CONNECTION_STRING

    Bu değişkenler için yönetilen kimlik veya bağlantı dizesi değerlerini girin. Yönetilen kimlik kullanın.

    AzureWebJobsStorage değişkeni, Azure İşlevleri için gerekli bir Azure Depolama hesabı bağlantı dizesidir. Bu depolama hesabı işlev yürütme günlüklerini depolar, tetikleyicileri ve bağlamaları yönetir ve dayanıklı işlevlerin durumunu korur.

    Application Insights, Azure İşlevlerinizin performansı ve kullanımı hakkında içgörüler sağlayan bir izleme ve tanılama hizmetidir. Bu izleme, istek oranlarını, yanıt sürelerini, hata oranlarını ve diğer ölçümleri izlemenize yardımcı olur.

  14. Giriş bölümüne geçmek için Sonraki > Giriş'i seçin ve aşağıdaki değerleri girin.

    Mülkiyet Değer
    Giriş Girişi etkinleştirmek için Etkin onay kutusunu seçin.
    Giriş trafiği Her yerden trafik kabul etme'yi seçin.
    Giriş türü HTTP'yi seçin.
    Hedef bağlantı noktası 80 girin.
  15. Gözden geçir + Oluştur’u seçin.

  16. Oluştur'i seçin.

  17. Dağıtım tamamlandıktan sonra Kaynağa git seçeneğini seçin.

  18. Genel Bakış sayfasında Uygulama URL'sinin yanındaki bağlantıyı seçerek uygulamayı yeni bir tarayıcı sekmesinde açın.

  19. URL'nin sonuna /api/HttpExample ekleyin.

    Tarayıcıda "HTTP tetikleyici işlevi bir isteği işledi" iletisinin döndürülür.

Önkoşullar

İşlevler uygulaması oluşturma

CLI'dan Azure'da oturum açmak için aşağıdaki komutu çalıştırın ve istemleri izleyerek kimlik doğrulama işlemini tamamlayın.

  1. Azure'da oturum açın.

    az login
    
  2. CLI'nın en son sürümünü çalıştırdığınızdan emin olmak için yükseltme komutunu çalıştırın.

    az upgrade
    
  3. CLI için Azure Container Apps uzantısını yükleyin veya güncelleştirin.

    Azure CLI'da komutları veya PowerShell'deki modülden az containerapp cmdlet'leri çalıştırdığınızda Az.App eksik parametrelerle ilgili hatalar alırsanız, Azure Container Apps uzantısının en son sürümünün yüklü olduğundan emin olun.

    az extension add --name containerapp --allow-preview true --upgrade
    
    
    

    Geçerli uzantı veya modül yüklendikten sonra, Microsoft.App ve Microsoft.OperationalInsights ad alanlarını kaydedin.

    az provider register --namespace Microsoft.App
    
    az provider register --namespace Microsoft.OperationalInsights
    
  4. Ortam değişkenleri oluşturma.

    RESOURCE_GROUP_NAME="my-aca-functions-group"
    CONTAINER_APP_NAME="my-aca-functions-app"
    ENVIRONMENT_NAME="my-aca-functions-environment"
    LOCATION="westus"
    STORAGE_ACCOUNT_NAME="storage-account-name"
    STORAGE_ACCOUNT_SKU="storage-account-sku"
    APPLICATION_INSIGHTS_NAME="application-insights-name"
    
  5. Bir kaynak grubu oluşturun.

    az group create \
      --name $RESOURCE_GROUP_NAME \
      --location $LOCATION \
      --output none
    
  6. Container Apps ortamını oluşturun.

    az containerapp env create \
        --name $ENVIRONMENT_NAME \
        --resource-group $RESOURCE_GROUP_NAME \
        --location $LOCATION \
        --output none
    
  7. Depolama Hesabı Oluşturma

    az storage account create \
      --name $STORAGE_ACCOUNT_NAME \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION \
      --sku $STORAGE_ACCOUNT_SKU
    
  8. Depolama Hesabı Bağlantı Dizesi Alma

    $STORAGE_ACCOUNT_CONNECTION_STRING = az storage account show-connection-string \
      --name $STORAGE_ACCOUNT_NAME \
      --resource-group $RESOURCE_GROUP \
      --query connectionString \
      --output tsv
    
  9. Azure Applications Insights oluşturma

    az monitor app-insights component create \
    --app $APPLICATION_INSIGHTS_NAME \
    --location $LOCATION \
      --resource-group $RESOURCE_GROUP \
      --application-type web
    
  10. Application Insights Bağlantı dizesini al

    $APPLICATION_INSIGHTS_CONNECTION_STRING = az monitor app-insights component show \
      --app $APPLICATION_INSIGHTS_NAME \
      --resource-group $RESOURCE_GROUP \
      --query connectionString \
      --output tsv
    
  11. Azure İşlevleri kapsayıcı uygulaması oluşturma.

    az containerapp create \
      --resource-group $RESOURCE_GROUP_NAME \
      --name $CONTAINER_APP_NAME \
      --environment $ENVIRONMENT_NAME \
      --image mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0 \
      --ingress external \
      --target-port 80 \
      --kind functionapp \
      --query properties.outputs.fqdn
    

    Bu komut İşlevler uygulamanızın URL'sini döndürür. Bu URL'yi kopyalayın ve bir web tarayıcısına yapıştırın.

  12. Çoklu revizyon senaryosuyla --revisions-mode multiple bir Azure İşlevleri kapsayıcı uygulaması oluşturma

    az containerapp create \
      --name $CONTAINERAPP_NAME \
      --resource-group $RESOURCE_GROUP \
      --environment $CONTAINERAPPS_ENVIRONMENT \
      --image mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0 \
      --target-port 80 \
      --ingress external \
      --kind functionapp \
      --workload-profile-name $WORKLOAD_PROFILE_NAME \
      --env-vars AzureWebJobsStorage="$STORAGE_ACCOUNT_CONNECTION_STRING" APPLICATIONINSIGHTS_CONNECTION_STRING="$APPLICATION_INSIGHTS_CONNECTION_STRING"
    
  13. Çoklu revizyon senaryosu için containerapp'i yükseltin ve trafiği bölüştürün.

    az containerapp update \
      --resource-group $RESOURCE_GROUP \
      --name $CONTAINERAPP_NAME \
      --image mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:latest
    
    az containerapp ingress traffic set -resource-group \
      --name $CONTAINERAPP_NAME \
      --resource-group $RESOURCE_GROUP \
      --revision-weight {revision1_name}=50 \
      --revision-weight {revision2_name}=50
    
  14. URL'nin sonuna /api/HttpExample ekleyin.

    Tarayıcıda "HTTP tetikleyici işlevi bir isteği işledi" iletisinin döndürülür.