Delen via


Azure Functions gebruiken in Azure Container Apps

In dit artikel leest u hoe u een Azure Functions-app maakt in Azure Container Apps, compleet met vooraf geconfigureerde regels voor automatisch schalen.

Vereiste voorwaarden

Hulpbron Beschrijving
Azure-account Een Azure-account met een actief abonnement.

Als u geen account hebt, kunt u er gratis een maken.
Azure-opslagaccount Een Blob Storage-account voor het opslaan van de status voor uw Azure Functions.
Azure Application Insights Een exemplaar van Azure Application Insights voor het verzamelen van gegevens over uw container-app.

Een Functions-app maken

In de volgende stappen laten we je zien hoe je een voorbeeldcontainerimage gebruikt om je container-app te maken. Zie Uw eerste functie-app maken in Azure Container Apps om deze procedure te gebruiken met een aangepaste containerafbeelding.

  1. Ga naar Azure Portal en zoek naar Container Apps in de zoekbalk.

  2. Selecteer Container Apps.

  3. Klik op Creëren.

  4. Selecteer Container-app.

  5. Voer in de sectie Basisbeginselen de volgende waarden in.

    Onder Projectdetails:

    Vastgoed Waarde
    Abonnement Selecteer uw Azure-abonnement.
    Bronnengroep Selecteer Nieuwe resourcegroep maken, geef deze de naam my-aca-functions-group en selecteer OK.
    Naam container-app Voer mijn-aca-functions-app in.
  6. Schakel naast Optimaliseren voor Azure Functions het selectievakje in.

    Schermopname van Azure Portal wanneer u een container-app maakt die vooraf is geconfigureerd voor Azure Functions.

  7. Voer onder Container Apps-omgeving het volgende in:

    Vastgoed Waarde
    Regio Selecteer een regio die het dichtst bij u in de buurt ligt.
    Container Apps-omgeving Selecteer Nieuwe omgeving maken.
  8. Voer in het installatievenster van de omgeving het volgende in:

    Vastgoed Waarde
    Naam van de omgeving Voer my-aca-functions-environment in
    Zone-redundantie Selecteer Uitgeschakeld.
  9. Selecteer Maken om uw waarden op te slaan.

  10. Selecteer Volgende: Container om over te schakelen naar de sectie Container .

  11. Laat het selectievakje naast Quickstart-afbeelding gebruiken niet aangevinkt.

  12. Voer in de sectie Containerdetails de volgende waarden in.

    Vastgoed Waarde
    Naam Dit vak wordt vooraf ingevuld met uw selectie in de vorige sectie.
    Afbeeldingsbron Docker Hub of andere registers selecteren
    Abonnement Selecteer uw abonnement.
    Afbeeldingstype Selecteer Openbaar.
    Registeraanmeldingsserver Voer mcr.microsoft.com in
    Afbeelding en tag Voer k8se/quickstart-functions:latest
  13. Voer onder Omgevingsvariabelen waarden in voor de volgende variabelen:

    • AzureWebJobsStorage
    • APPINSIGHTS_INSTRUMENTATIONKEY of APPLICATIONINSIGHTS_CONNECTION_STRING

    Voer waarden voor beheerde identiteit of verbindingsreeks in voor deze variabelen. Een beheerde identiteit gebruiken.

    De AzureWebJobsStorage variabele is een vereiste verbindingsreeks voor een Azure Storage-account voor Azure Functions. Dit opslagaccount slaat de uitvoeringslogboeken van functies op, beheert triggers en bindingen en onderhoudt de status voor duurzame functies.

    Application Insights is een bewakings- en diagnostische service die inzicht biedt in de prestaties en het gebruik van uw Azure Functions. Deze bewaking helpt u bij het bijhouden van aanvraagsnelheden, reactietijden, foutpercentages en andere metrische gegevens.

  14. Selecteer Volgende > Ingress om over te schakelen naar de sectie Ingress en voer de volgende waarden in.

    Vastgoed Waarde
    Ingang Selecteer het selectievakje Ingeschakeld om toegang te activeren.
    Inkomend verkeer Selecteer Accepteren van verkeer vanaf elke locatie.
    Type inkomend verkeer Selecteer HTTP.
    Bestemmingspoort Voer 80 in.
  15. Selecteer Beoordelen en Creëren.

  16. Klik op Creëren.

  17. Zodra de implementatie is voltooid, selecteert u Ga naar de resource.

  18. Selecteer op de pagina Overzicht de koppeling naast de toepassings-URL om de toepassing te openen in een nieuw browsertabblad.

  19. Voeg /api/HttpExample toe aan het einde van de URL.

    Er wordt een bericht met de melding 'HTTP-triggerfunctie verwerkt een aanvraag' geretourneerd in de browser.

Vereiste voorwaarden

  • Een Azure-account met een actief abonnement.
    • Als u geen Azure-account hebt, kunt u er gratis een maken.
  • De Azure CLI is geïnstalleerd.

Een Functions-app maken

Om u aan te melden bij Azure vanaf de CLI, voert u het volgende commando uit en volgt u de aanwijzingen om het authenticatieproces te voltooien.

  1. Meld u aan bij Azure.

    az login
    
  2. Om te zorgen dat je de nieuwste versie van de CLI gebruikt, voer het upgrade-commando uit.

    az upgrade
    
  3. Installeer of werk de Azure Container Apps-extensie voor de CLI bij.

    Als u fouten ontvangt over ontbrekende parameters wanneer u opdrachten uitvoert az containerapp in Azure CLI of cmdlets uit de Az.App module in PowerShell, controleert u of de nieuwste versie van de Azure Container Apps-extensie is geïnstalleerd.

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

    Nu de huidige extensie of module is geïnstalleerd, registreer de Microsoft.App en Microsoft.OperationalInsights naamruimten.

    az provider register --namespace Microsoft.App
    
    az provider register --namespace Microsoft.OperationalInsights
    
  4. Omgevingsvariabelen maken.

    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. Maak een resourcegroep.

    az group create \
      --name $RESOURCE_GROUP_NAME \
      --location $LOCATION \
      --output none
    
  6. Maak de Container Apps-omgeving.

    az containerapp env create \
        --name $ENVIRONMENT_NAME \
        --resource-group $RESOURCE_GROUP_NAME \
        --location $LOCATION \
        --output none
    
  7. Het opslagaccount maken

    az storage account create \
      --name $STORAGE_ACCOUNT_NAME \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION \
      --sku $STORAGE_ACCOUNT_SKU
    
  8. Verkrijg verbindingsreeks voor opslagaccount

    $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 maken

    az monitor app-insights component create \
    --app $APPLICATION_INSIGHTS_NAME \
    --location $LOCATION \
      --resource-group $RESOURCE_GROUP \
      --application-type web
    
  10. Application Insights-verbindingsreeks verkrijgen

    $APPLICATION_INSIGHTS_CONNECTION_STRING = az monitor app-insights component show \
      --app $APPLICATION_INSIGHTS_NAME \
      --resource-group $RESOURCE_GROUP \
      --query connectionString \
      --output tsv
    
  11. Maak een Azure Functions-container-app.

    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
    

    Met deze opdracht wordt de URL van uw Functions-app geretourneerd. Kopieer deze URL en plak deze in een webbrowser.

  12. Een Azure Functions-container-app maken met --revisions-mode multiple voor scenario met meerdere revisies

    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. Voor een scenario met meerdere revisies voert u een upgrade uit van de containerapp en splitst u het verkeer.

    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. Voeg /api/HttpExample toe aan het einde van de URL.

    Er wordt een bericht met de melding 'HTTP-triggerfunctie verwerkt een aanvraag' geretourneerd in de browser.