Sdílet prostřednictvím


Použití Azure Functions v Azure Container Apps

V tomto článku se dozvíte, jak vytvořit aplikaci Azure Functions v Azure Container Apps s předem nakonfigurovanými pravidly automatického škálování.

Požadavky

Zdroj Popis
Účet Azure Účet Azure s aktivním předplatným.

Pokud jej nemáte, můžete si jej zdarma vytvořit.
Účet služby Azure Storage Účet úložiště objektů blob pro ukládání stavu pro službu Azure Functions.
Azure Application Insights Instance Azure Application Insights ke shromažďování dat o vaší kontejnerové aplikaci.

Vytvoření aplikace Functions

Následující kroky ukazují, jak pomocí ukázkové image kontejneru vytvořit aplikaci kontejneru. Pokud chcete tento postup použít s vlastní imagí kontejneru, přečtěte si téma Vytvoření první aplikace funkcí v Azure Container Apps.

  1. Přejděte na web Azure Portal a na panelu hledání vyhledejte kontejnerové aplikace .

  2. Vyberte Kontejnerové aplikace.

  3. Vyberte Vytvořit.

  4. Vyberte Aplikace pro kontejnery.

  5. V části Základy zadejte následující hodnoty.

    V části Project details (Podrobnosti projektu):

    Vlastnictví Hodnota
    Předplatné Vyberte své předplatné Azure.
    Skupina zdrojů Vyberte Vytvořit novou skupinu prostředků, pojmenujte ji my-aca-functions-group a vyberte OK.
    Název kontejnerové aplikace Zadejte my-aca-functions-app.
  6. Vedle možnosti Optimalizovat pro Azure Functions zaškrtněte políčko.

    Snímek obrazovky webu Azure Portal při vytváření předkonfigurované aplikace kontejneru pro Azure Functions

  7. V části Prostředí Container Apps zadejte:

    Vlastnictví Hodnota
    Región Vyberte oblast, která je k vám nejblíže.
    Prostředí Container Apps Vyberte Vytvořit nové prostředí.
  8. V okně nastavení prostředí zadejte:

    Vlastnictví Hodnota
    Název prostředí Zadejte my-aca-functions-environment.
    Zónová redundance Vyberte Zakázáno.
  9. Vyberte Vytvořit a uložte hodnoty.

  10. Vyberte Další: Kontejner pro přechod na sekci Kontejner.

  11. Vedle obrázku Rychlého startu ponechte toto políčko nezaškrtnuté.

  12. V části Podrobnosti kontejneru zadejte následující hodnoty.

    Vlastnictví Hodnota
    Název Toto pole je předem vyplněné výběrem v předchozí části.
    Zdroj obrázku Výběr Centra Dockeru nebo jiných registrů
    Předplatné Vyberte své předplatné.
    Typ obrázku Vyberte Veřejný.
    Přihlašovací server registru Zadejte mcr.microsoft.com
    Obrázek a značka Zadejte k8se/quickstart-functions:latest
  13. V části Proměnné prostředí zadejte hodnoty následujících proměnných:

    • AzureWebJobsStorage
    • APPINSIGHTS_INSTRUMENTATIONKEY nebo APPLICATIONINSIGHTS_CONNECTION_STRING

    Zadejte hodnoty spravované identity nebo připojovacího řetězce pro tyto proměnné. Použití spravované identity.

    Proměnná AzureWebJobsStorage je požadovaný připojovací řetězec účtu služby Azure Storage pro Azure Functions. Tento účet úložiště ukládá protokoly spouštění funkcí, spravuje triggery a vazby a udržuje stav trvalých funkcí.

    Application Insights je monitorovací a diagnostická služba, která poskytuje přehled o výkonu a využití služby Azure Functions. Toto monitorování vám pomůže sledovat míry požadavků, doby odezvy, míry selhání a další metriky.

  14. Vyberte další Ingress> pro přepnutí do oddílu Ingress a zadejte následující hodnoty.

    Vlastnictví Hodnota
    Vstup Chcete-li povolit příchozí přenos dat, zaškrtněte políčko Povoleno .
    Příchozí přenos dat Vyberte Přijmout provoz odkudkoli.
    Typ příchozího přenosu dat Vyberte HTTP.
    Cílový port Zadejte 80.
  15. Vyberte Zkontrolovat a vytvořit.

  16. Vyberte Vytvořit.

  17. Jakmile je nasazení dokončeno, vyberte Přejít k prostředku.

  18. Na stránce Přehled vyberte odkaz vedle adresy URL aplikace a otevřete aplikaci na nové kartě prohlížeče.

  19. Připojte /api/HttpExample na konec adresy URL.

    V prohlížeči se vrátí zpráva "Funkce triggeru HTTP zpracovala požadavek".

Požadavky

  • Účet Azure s aktivním předplatným.
    • Pokud účet Azure nemáte, můžete si ho zdarma vytvořit.
  • Nainstalovali jsme Azure CLI .

Vytvoření aplikace Functions

Chcete-li se přihlásit do Azure z příkazového řádku, spusťte následující příkaz a postupujte podle pokynů pro dokončení procesu ověření.

  1. Přihlaste se k Azure.

    az login
    
  2. Abychom zajistili, že používáte nejnovější verzi CLI, spusťte příkaz pro upgrade.

    az upgrade
    
  3. Nainstalujte nebo aktualizujte rozšíření Azure Container Apps pro rozhraní příkazového řádku.

    Pokud se při spouštění az containerapp příkazů v Azure CLI nebo rutinách z Az.App modulu v PowerShellu zobrazí chyby týkající se chybějících parametrů, ujistěte se, že máte nainstalovanou nejnovější verzi rozšíření Azure Container Apps.

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

    Nyní, když je aktuální rozšíření nebo modul nainstalováno, zaregistrujte jmenné prostory Microsoft.App a Microsoft.OperationalInsights.

    az provider register --namespace Microsoft.App
    
    az provider register --namespace Microsoft.OperationalInsights
    
  4. Vytvořte proměnné prostředí.

    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. Vytvořte skupinu prostředků.

    az group create \
      --name $RESOURCE_GROUP_NAME \
      --location $LOCATION \
      --output none
    
  6. Vytvořte prostředí Container Apps.

    az containerapp env create \
        --name $ENVIRONMENT_NAME \
        --resource-group $RESOURCE_GROUP_NAME \
        --location $LOCATION \
        --output none
    
  7. Vytvoření účtu úložiště

    az storage account create \
      --name $STORAGE_ACCOUNT_NAME \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION \
      --sku $STORAGE_ACCOUNT_SKU
    
  8. Získání připojovacího řetězce účtu úložiště

    $STORAGE_ACCOUNT_CONNECTION_STRING = az storage account show-connection-string \
      --name $STORAGE_ACCOUNT_NAME \
      --resource-group $RESOURCE_GROUP \
      --query connectionString \
      --output tsv
    
  9. Vytváření Přehledů aplikací Azure

    az monitor app-insights component create \
    --app $APPLICATION_INSIGHTS_NAME \
    --location $LOCATION \
      --resource-group $RESOURCE_GROUP \
      --application-type web
    
  10. Získat připojovací řetězec pro Application Insights

    $APPLICATION_INSIGHTS_CONNECTION_STRING = az monitor app-insights component show \
      --app $APPLICATION_INSIGHTS_NAME \
      --resource-group $RESOURCE_GROUP \
      --query connectionString \
      --output tsv
    
  11. Vytvořte aplikaci kontejneru Azure Functions.

    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
    

    Tento příkaz vrátí adresu URL aplikace Functions. Zkopírujte tuto adresu URL a vložte ji do webového prohlížeče.

  12. Vytvoření aplikace kontejneru Azure Functions --revisions-mode multiple pro scénář s více verzemi

    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. V případě scénáře s více revizemi upgradujte ContainerApp a rozdělte provoz.

    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. Připojte /api/HttpExample na konec adresy URL.

    V prohlížeči se vrátí zpráva "Funkce triggeru HTTP zpracovala požadavek".