Deploye auf Azure Functions mit GitHub Actions

Du kannst einen GitHub Actions-Workflow nutzen, um automatisch deinen Funktionscode auf Azure zu erstellen und bereitzustellen, indem du die Azure/functions-action.

Um mit GitHub Actions zu deployen, erfüllen Sie diese drei wichtigsten Schritte:

  1. Erstellen Sie eine benutzerdefinierte verwaltete Identität in Azure mit einer föderierten Zugangsberechtigung, die Ihrem GitHub-Repository vertraut, und weisen Sie ihr die Rolle des Website-Mitwirkenden in Ihrer Funktions-App zu.
  2. Fügen Sie die Client-ID, Tenant-ID und Abonnement-ID der Identität als Repository-Geheimnisse in GitHub hinzu.
  3. Füge deinem Repository eine Workflow-YAML-Datei hinzu, die mit OpenID Connect (OIDC) zur Authentifizierung verwendet azure/login wird, dann Aufrufe Azure/functions-action zum Deployen.

Wenn du das Azure-Portal nutzt, um GitHub Actions zu aktivieren, führt Functions diese Aufgaben automatisch aus, sowohl in deinem Azure-Abonnement als auch in deinem GitHub-Repository.

Erstellen Sie eine Workflow-Konfiguration für Azure Functions

Sie pflegen eine YAML-Datei (.yml), die die Workflow-Konfiguration im /.github/workflows/ Pfad Ihres Repositorys definiert. Diese Definition enthält die Aktionen und Parameter, aus denen der Workflow besteht. Dies ist für die Entwicklungssprache Ihrer Funktionen spezifisch.

Wählen Sie eine Methode, um Ihre Workflow-Datei mit dem Selektor oben im Artikel zu erstellen:

Method Am besten geeignet für: OIDC-Unterstützung
Workflow-Vorlage Volle Kontrolle: Kopiere eine OIDC-taugliche Vorlage und passe sie an Erfordert Konfiguration
Azure Portal Einfachste Einrichtung: Das Portal kann Identität, Zugangsdaten und Workflow-Datei für dich erstellen Für dich konfiguriert
GitHub-Marktplatz GitHub zuerst: Beginnen Sie mit den integrierten Marktplatzvorlagen von GitHub Erfordert Konfiguration und Modifikation der Vorlage

Authentifizierungsübersicht

GitHub Actions müssen sich bei Azure authentifizieren, um Ihren Code bereitzustellen. Dieser Artikel verwendet OpenID Connect (OIDC), die empfohlene Authentifizierungsmethode. OIDC verwendet föderierte Zugangsdaten, um eine Vertrauensbeziehung zwischen Ihrem GitHub-Repository und einer vom Benutzer zugewiesenen verwalteten Identität in Microsoft Entra herzustellen. In GitHub werden keine Geheimnisse gespeichert.

Beispiel für OIDC-Authentifizierung

Das folgende Inline-Beispiel zeigt das zentrale OIDC-Authentifizierungs- und Bereitstellungsmuster, das in allen Workflow-Vorlagen verwendet wird:

permissions:
  id-token: write
  contents: read

steps:
  - name: 'Login via OIDC'
    uses: azure/login@v3
    with:
      client-id: ${{ secrets.AZURE_CLIENT_ID }}
      tenant-id: ${{ secrets.AZURE_TENANT_ID }}
      subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

  - name: 'Deploy to Azure Functions'
    uses: Azure/functions-action@v1
    with:
      app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}
      package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}

Überlegungen zur GitHub Actions OIDC-Authentifizierung

  • OIDC verwendet Workload Identity Federation und unterstützt ausschließlich benutzerdefinierte verwaltete Identitäten.
  • Wenn Sie eine auf GitHub Actions basierende Bereitstellung im Azure-Portal aktivieren, wird standardmäßig die OIDC-Authentifizierung verwendet.
  • Mit OIDC werden die Client-ID, die Tenant-ID und die Abonnement-ID der verwalteten Identität als GitHub-Repository-Geheimnisse gespeichert.
  • Verwenden Sie Azure rollenbasierte Zugriffskontrolle (Azure RBAC), um den Zugriff nur auf die für Ihre Bereitstellung benötigten Azure-Ressourcen zu beschränken.

Voraussetzungen

  • Azure CLI bei lokaler Entwicklung. Sie können die Azure CLI auch in Azure Cloud Shell verwenden.

Erstellen Sie eine verwaltete Identität für die Bereitstellung von GitHub Actions

OpenID Connect (OIDC) ist die empfohlene Authentifizierungsmethode für GitHub Actions-Deployments an Azure Functions. Mit OIDC konfigurieren Sie eine benutzerdefinierte verwaltete Identität in Azure und schaffen eine Vertrauensbeziehung zu Ihrem GitHub-Repository. Der Workflow kann sich dann mit Azure authentifizieren, ohne Zugangsdaten als Geheimnisse zu speichern.

  1. Verwenden Sie den Befehl az identity create zum Erstellen einer benutzerseitig zugewiesenen verwalteten Identität:

    az identity create --name myGitHubDeployIdentity --resource-group <RESOURCE_GROUP> \
    --query "{clientId: clientId, tenantId: tenantId}" -o table
    

    Ersetzen Sie <RESOURCE_GROUP> durch den Namen Ihrer Ressourcengruppe.

  2. Aus der Ausgabe notieren Sie die und clientId die tenantId Werte. Holen Sie sich außerdem Ihre Abonnement-ID:

    az account show --query "{subId: id}" -o table
    

    Diese drei Werte brauchst du später, wenn du Zugangsdaten zu GitHub hinzufügst.

  3. Verwenden Sie den Befehl az role assignment create , um die Website Contributor Rolle der verwalteten Identität zuzuweisen, die auf Ihre Funktions-App abgegrenzt ist:

    IDENTITY_PRINCIPAL=$(az identity show --name myGitHubDeployIdentity --resource-group <RESOURCE_GROUP> --query 'principalId' -o tsv)
    FUNCTION_APP_ID=$(az functionapp show --name <APP_NAME> --resource-group <RESOURCE_GROUP> --query 'id' -o tsv)
    az role assignment create --assignee $IDENTITY_PRINCIPAL --role "Website Contributor" --scope $FUNCTION_APP_ID
    

    Ersetzen Sie <APP_NAME> und <RESOURCE_GROUP> durch die Namen Ihrer App bzw. Ihrer Ressourcengruppe.

  4. Verwenden Sie den Befehl az identity federated-credential create, um eine föderierte Zugangsdaten zu erstellen, die Token aus Ihrem GitHub-Repository vertraut:

    az identity federated-credential create \
        --identity-name myGitHubDeployIdentity \
        --resource-group <RESOURCE_GROUP> \
        --name github-deploy-credential \
        --issuer https://token.actions.githubusercontent.com \
        --subject repo:<GITHUB_ORG>/<REPO_NAME>:ref:refs/heads/<BRANCH_NAME> \
        --audiences api://AzureADTokenExchange
    

    Ersetzen Sie <RESOURCE_GROUP>, <GITHUB_ORG>, <REPO_NAME>und <BRANCH_NAME> durch Ihre Werte. Das Thema muss mit dem Zweig übereinstimmen, der deinen Workflow auslöst.

  5. (Optional) Wenn Sie einen Container aus dem Azure Container Registry bereitstellen, weisen Sie die acrpull Rolle auch der verwalteten Identität zu:

    IDENTITY_PRINCIPAL=$(az identity show --name myGitHubDeployIdentity --resource-group <RESOURCE_GROUP> --query 'principalId' -o tsv)
    az role assignment create --assignee $IDENTITY_PRINCIPAL --role acrpull \
        --scope /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ContainerRegistry/registries/<REGISTRY_NAME>
    

    Ersetzen Sie <SUBSCRIPTION_ID>, <RESOURCE_GROUP> und <REGISTRY_NAME> durch Ihre Werte.

Fügen Sie Zugangsdaten zu GitHub hinzu

Verwenden Sie die Werte, die Sie beim Erstellen der verwalteten Identität kopiert haben.

  1. Wechseln Sie in GitHub zu Ihrem Repository.

  2. Gehe zu Einstellungen>Geheimnisse und Variablen Aktionen>.

  3. Im Reiter Geheimnisse wählen Sie Neues Repository-Geheimnis.

  4. Erstellen Sie jedes der folgenden Geheimnisse:

    Name Wert
    AZURE_CLIENT_ID Die clientId der verwalteten Identität
    AZURE_TENANT_ID Die tenantId der verwalteten Identität
    AZURE_SUBSCRIPTION_ID Die Abonnement-ID, die Ihre Funktions-App enthält

Für Container-Deployments aus einem privaten Register benötigen Sie außerdem registry-spezifische Geheimnisse. Weitere Informationen finden Sie unter Docker-Login-Aktion.

Erstellen des Workflows anhand einer Vorlage

Die beste Möglichkeit zum manuellen Erstellen einer Workflowkonfiguration besteht darin, mit der offiziell unterstützten Vorlage zu beginnen.

  1. Wählen Sie entweder Windows oder Linux aus, um sicherzustellen, dass Sie die Vorlage für das richtige Betriebssystem erhalten.

    Bereitstellungen für Windows verwenden runs-on: windows-latest. Containerbasierte Deployments erfordern Linux.

  2. Verwenden Sie die sprachspezifische OIDC-Workflow-Vorlage aus dem Azure Functions Actions-Repository. Kopieren Sie den vollständigen Dateiinhalt in eine neue Datei, die in Ihrem Repository benannt .github/workflows/deploy-function-app.yml ist:

    name: Build and deploy .NET project to Azure Function App using OIDC
    
    on:
      push:
        branches: [ main ]
      workflow_dispatch:
    
    env:
      AZURE_FUNCTIONAPP_NAME: 'APP_NAME'         # Set this to your function app name on Azure 
      AZURE_FUNCTIONAPP_PROJECT_PATH: '.'        # Set this to the path to your function app project, defaults to the repository root. The deploy action will package the contents of this path.
      DOTNET_VERSION: '10.0.x'                   # Set this to the .NET version of your project
      BUILD_ARTIFACT_NAME: 'released-package'    # Set this according to your team's naming convention
      
    jobs:
      build:
        runs-on: windows-latest # Assumes your target function app is Windows-based
        permissions:
          id-token: write  # Required for OIDC
          contents: read   # Required for actions/checkout
        defaults:
          run:
            shell: bash
            working-directory: ${{ env.AZURE_FUNCTIONAPP_PROJECT_PATH }}
        steps:
          - name: 'Checkout repository'
            uses: actions/checkout@v6
    
          - name: 'Set up .NET version: ${{ env.DOTNET_VERSION }}'
            uses: actions/setup-dotnet@v5
            with:
              dotnet-version: ${{ env.DOTNET_VERSION }}
    
          # Perform additional steps such as running tests, if needed
    
          - name: 'Build and prepare .NET project for deployment'
            run: dotnet publish --configuration Release --output ./output
    
          - name: Upload artifact for the deployment job
            uses: actions/upload-artifact@v7
            with:
              name: ${{ env.BUILD_ARTIFACT_NAME }}
              path: ${{ env.AZURE_FUNCTIONAPP_PROJECT_PATH }}/output
              include-hidden-files: true  # Required for .NET projects
      
      deploy:
        runs-on: windows-latest # Assumes your target function app is Windows-based
        needs: build
        permissions:
          id-token: write  # Required for OIDC
        steps:
          - name: 'Download artifact from build job'
            uses: actions/download-artifact@v8
            with:
              name: ${{ env.BUILD_ARTIFACT_NAME }}
              path: '${{ env.AZURE_FUNCTIONAPP_PROJECT_PATH }}/downloaded-artifact'
         
          - name: 'Log in to Azure with AZ CLI'
            uses: azure/login@v3
            with:
              client-id: ${{ vars.AZURE_CLIENT_ID }}
              tenant-id: ${{ vars.AZURE_TENANT_ID }}
              subscription-id: ${{ vars.AZURE_SUBSCRIPTION_ID }}
            
          - name: 'Run the Azure Functions action'
            uses: Azure/functions-action@v1
            id: deploy-to-function-app
            with:
              app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}
              package: '${{ env.AZURE_FUNCTIONAPP_PROJECT_PATH }}/downloaded-artifact'
    
  3. Aktualisieren Sie in der Vorlage die env: Variablen für Ihr Projekt. Jede Vorlage benötigt AZURE_FUNCTIONAPP_NAME. Die anderen Variablen hängen von deiner Sprache ab:

    Variable Erforderlich Description
    AZURE_FUNCTIONAPP_NAME Ja Your function app name in Azure
    DOTNET_VERSION Ja Die .NET-Version deines Projekts (zum Beispiel, 10.0.x)
    AZURE_FUNCTIONAPP_PROJECT_PATH Nein Pfad zu deinem Projektordner. Standard: . (Repository-Root)
  4. Die OIDC-Vorlagen enthalten bereits den azure/login Schritt mit OIDC-Authentifizierung. Überprüfen Sie, ob die , secrets.AZURE_CLIENT_ID, und secrets.AZURE_TENANT_ID die secrets.AZURE_SUBSCRIPTION_IDReferenzen mit den von Ihnen erstellten Repository-Geheimnissen übereinstimmen.

  5. Fügen Sie diese neue YAML-Datei im Pfad /.github/workflows/ in Ihrem Repository hinzu.

Erstellen der Workflowkonfiguration im Portal

Wenn du das Portal nutzt, um GitHub Actions zu aktivieren, übernimmt Functions die gesamte Einrichtung automatisch. Du musst keine verwaltete Identität manuell erstellen, keine Zugangsdaten konfigurieren oder eine Workflow-Datei schreiben. Functions übernimmt folgende Aufgaben für Sie:

In deinem Azure-Abonnement:

  • Erstellt eine vom Benutzer zugewiesene verwaltete Identität und weist ihr die Rolle des Website-Mitwirkenden in Ihrer Funktions-App zu.
  • Fügt der verwalteten Identität für die GitHub OIDC-Authentifizierung eine föderierte Zugangsdaten hinzu.

In deinem GitHub-Repository:

  • Fügt die Client-ID, Abonnement-ID und Tenant-ID-Werte als GitHub Actions-Geheimnisse hinzu.
  • Erstellt eine Workflow-Datei basierend auf deinem Anwendungsstack und committet sie in .github/workflows.

Während der Erstellung von Funktions-Apps

Sie können schnell mit GitHub Actions über die Registerkarte "Bereitstellung" beginnen, wenn Sie eine Funktion im Azure Portal erstellen. So fügen Sie einen GitHub Actions Workflow hinzu, wenn Sie eine neue Funktions-App erstellen:

  1. Wählen Sie im Azure-PortalBereitstellung im Erstellen Funktions-App-Fluss aus.

  2. Aktivieren Sie Kontinierte Bereitstellung, wenn für jede Codeaktualisierung ein Code-Push an Azure Portal ausgelöst werden soll.

  3. Unter den GitHub-Einstellungen wählen Sie Autorisieren, um Ihr GitHub-Konto zu verbinden. Melden Sie sich mit dem GitHub-Konto an, das Schreibzugriff auf Ihr Repository hat.

  4. Geben Sie Ihre GitHub-Organisation, Ihr Repository und Ihren Branch ein.

  5. Optional wählen Sie Vorschaudatei, um zu sehen, wie die Workflow-Datei aussieht, bevor sie erstellt und Ihrem Repository hinzugefügt wird.

  6. Schließen Sie die Konfiguration Ihrer Funktions-App ab. Ihr GitHub Repository enthält jetzt eine neue Workflowdatei in /.github/workflows/.

Für eine vorhandene Funktions-App

So fügen Sie einer vorhandenen Funktions-App einen GitHub Actions Workflow hinzu:

  1. Gehe im Azure-Portal zu deiner Funktions-App und wähle Deployment>Deployment Center.

  2. Wählen Sie Continuous Deployment (CI/CD). Wählen Sie unter Quelle die Option GitHub. Wenn Sie die Standardmeldung Building with GitHub Actions nicht sehen, wählen Sie Anbieter ändern, wählen Sie GitHub Actions und OK.

  3. Wenn du den GitHub-Zugriff noch nicht autorisiert hast, wähle Authorize. Geben Sie Ihre GitHub Anmeldeinformationen an, und wählen Sie Sign in aus. Um ein anderes GitHub Konto zu autorisieren, wählen Sie Konto ändern aus, und melden Sie sich mit einem anderen Konto an.

  4. Wählen Sie Ihre GitHub Organization, Repository und Branch aus. Um mit GitHub Actions bereitzustellen, benötigen Sie Schreibzugriff auf dieses Repository.

  5. Für die Option Workflow wählen Sie Workflow hinzufügen. Diese Option erstellt eine neue Workflow-Datei in /.github/workflows/. Um einen bestehenden Workflow zu verwenden, wählen Sie den verfügbaren Workflow verwenden und wählen Sie Ihre Workflow-Datei.

  6. In den Authentifizierungseinstellungen wählen Sie Benutzer-zugewiesene Identität, um OpenID Connect (OIDC) zu verwenden, was empfohlen wird, da Sie keine Geheimnisse in GitHub speichern müssen. Wählen Sie Ihr Abo und den (neuen) vorgeschlagenen Identitätsnamen aus. Eine neue, vom Nutzer zugewiesene verwaltete Identität wird erstellt und erhält Zugriff auf die Rolle des Website-Mitwirkenden . Wenn Sie eine bestehende Identität verwenden, müssen Sie ihr zunächst Zugang zur Rolle des Website-Mitwirkenden gewähren.

    Wichtig

    Wenn Sie Basic Authentication auswählen, wird Ihr Veröffentlichungsprofil, das gemeinsame Geheimnisse enthält, in GitHub Secrets gespeichert. Du musst außerdem die SCM-Basisauthentifizierung aktivieren, was deine App weniger sicher macht.

  7. Wählen Sie Vorschaudatei aus, um die Workflowdatei anzuzeigen, die Ihrem GitHub-Repository in .github/workflows/ hinzugefügt wird.

  8. Wählen Sie Speichern aus, um die Workflowdatei Ihrem Repository hinzuzufügen. Wählen Sie den Reiter Logs, um den Status aktueller und vorheriger Deployments einzusehen.

Erstellen der Workflowkonfigurationsdatei

Sie können die GitHub Actions Workflowkonfigurationsdatei aus den Azure Functions Vorlagen direkt aus Ihrem GitHub Repository erstellen.

  1. Wechseln Sie in GitHub zu Ihrem Repository.

  2. Wählen Sie Actions (Aktionen) und New Workflow (Neuer Workflow) aus.

  3. Suchen Sie nach Funktionen.

    Screenshot: Suchen nach GitHub Actions-Funktionsvorlagen.

  4. Suchen Sie in den angezeigten Funktionen-App-Workflows, die von Microsoft Azure erstellt wurden, das Ihrer Codesprache entspricht, und wählen Sie Configure aus.

  5. Aktualisieren Sie in der neu erstellten YAML-Datei den Parameter env.AZURE_FUNCTIONAPP_NAME mit dem Namen Ihrer Funktions-App-Ressource in Azure. Du musst vielleicht auch den Parameter aktualisieren, der die von deiner App verwendete Sprachversion festlegt, zum Beispiel DOTNET_VERSION für C# oder PYTHON_VERSION Python-Apps.

  6. Die Standardvorlagen verwenden möglicherweise die Publizierungs-Profil-Authentifizierung anstelle des empfohlenen OIDC. Um auf OIDC umzusteigen und sich an das Verhalten des Portals anzupassen, nehmen Sie folgende Änderungen vor:

    • Entfernen Sie die publish-profileParameter , scm-do-build-during-deployment, und enable-oryx-build aus Azure/functions-action.

    • Entferne die Einstellung environment aus dem Job (falls vorhanden), da das föderierte Credential-Subjekt mit dem Branch-Trigger übereinstimmen muss.

    • Fügen Sie einen azure/login Schritt vor dem Schritt Azure/functions-action hinzu:

      - name: 'Login via OIDC'
        uses: azure/login@v3
        with:
          client-id: ${{ secrets.AZURE_CLIENT_ID }}
          tenant-id: ${{ secrets.AZURE_TENANT_ID }}
          subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
      
      - name: 'Run Azure Functions Action'
        uses: Azure/functions-action@v1
        with:
          app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}
          package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
      
    • Füge dem Job folgende Berechtigungen hinzu:

      permissions:
        id-token: write
        contents: read
      
  7. Überprüfen Sie, dass die neue Workflow-Datei mit einem passenden Namen /.github/workflows/ gespeichert ist, und wählen Sie Änderungen committen.

Azure Functions-Aktion

Die Azure Functions-Aktion (Azure/functions-action) definiert, wie Ihr Code in einer vorhandenen Funktions-App in Azure oder in einem bestimmten Slot in Ihrer App veröffentlicht wird.

Parameter

Die folgende Tabelle beschreibt die von folgenden Eingabeparametern unterstützt Azure/functions-action:

Parameter Description
app-name (Erforderlich) Der Name deiner Funktions-App in Azure.
package (Erforderlich) Der Weg zu deinem Projekt zur Veröffentlichung. Standard: . (alle Dateien im Repository).
Fernbau Stellen Sie auf true ein, um eine Build-Aktion von Kudu zu aktivieren, wenn Sie in eine Flex-Consumption-App deployen. Ein Oryx-Build wird immer ausgeführt; Setze nicht auch SCM-DO-Build-While-Deployment oder Enable-Oryx-Build. Standardwert: false.
scm-do-build-withing-deployment Erlauben Sie der Kudu-Standort, Pre-Deployment-Operationen wie Remote-Builds durchzuführen. Setze dich so ein true , dass Kudu dein Projekt während der Bereitstellung baut. Standardwert: false. Weitere Informationen finden Sie unter SCM_DO_BUILD_DURING_DEPLOYMENT.
enable-oryx-build Erlaube Kudu, Projektabhängigkeiten mit Oryx zu lösen. Stelle sowohl dieses als auch scm-do-build-whileing-deployment so ein, dass true Oryx statt des Workflows verwendet wird. Standardwert: false. Nur Linux.
slot-name Der Einsatzplatz für den Einsatz. Standard: Produktionsplatz.
publish-profile Der Name des GitHub geheimen Schlüssels, der Ihr Veröffentlichungsprofil enthält. Nicht nötig, wenn die empfohlene OIDC-Authentifizierung verwendet wird.
SKU Setzen Sie auf flexconsumption bei der Authentifizierung mit Publish-Profile in einem Flex-Consumption-Plan. Nicht erforderlich bei OIDC-Authentifizierung oder anderen Hosting-Plänen.
respect-pom-xml (nur Java) Setzen auf true , um das Deployment-Artefakt aus pom.xmlabzuleiten. Wenn true, setze das Paket auf .. Standardwert: false.
respect-funcignore Setze auf true deine .funcignore-Datei und schließen die aufgeführten Pfade aus. Standardwert: false.

Die folgende Tabelle zeigt, welche Parameter für jeden Hosting-Plan unterstützt werden:

Parameter Flex Consumption Elastischer Aufpreis Dedicated Verbrauch
app-name Erforderlich Erforderlich Erforderlich Erforderlich
package Erforderlich Erforderlich Erforderlich Erforderlich
Fernbau Optional
scm-do-build-withing-deployment Optional Optional Optional
enable-oryx-build Optional (Linux) Optional (Linux) Optional (Linux)
slot-name Nicht unterstützt Optional Optional Optional
publish-profile Nicht empfohlen Nicht empfohlen Nicht empfohlen Nicht empfohlen
SKU Nur Veröffentlichungsprofil
respect-pom-xml Optional (Java) Optional (Java) Optional (Java) Optional (Java)
respect-funcignore Optional Optional Optional Optional

Bereitstellungsmethoden

Wenn du GitHub Actions verwendest, hängt die Bereitstellungsmethode von deinem Hosting-Plan ab:

Hostingplan Bereitstellungsmethode
Flex-Verbrauch OneDeploy
Elastischer Aufpreis ZIP-Bereitstellung
Dediziert (App Service) ZIP-Bereitstellung
Verbrauch Windows: ZIP-Bereitstellung
Linux: URL des externen Pakets*

* Die Möglichkeit, Ihre Apps unter Linux in einem Verbrauchsplan auszuführen, ist für den Ruhestand geplant. Weitere Informationen finden Sie unter Azure Functions-Verbrauchsplan-Hosting.

Weitere Informationen finden Sie unter Deployment-Technologien in Azure Functions.

Nächste Schritte