Anmerkung
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird erläutert, wie Sie eine Azure Functions-App in Azure-Container-Apps erstellen, die mit vorkonfigurierten automatischen Skalierungsregeln abgeschlossen ist.
Voraussetzungen
| Ressource | BESCHREIBUNG |
|---|---|
| Azure-Konto | Ein Azure-Konto mit einem aktiven Abonnement. Falls Sie keins haben, können Sie kostenlos eins erstellen. |
| Azure Storage-Konto | Ein BLOB-Speicherkonto zum Speichern des Zustands für Ihre Azure-Funktionen. |
| Azure Application Insights | Eine Instanz von Azure Application Insights zum Sammeln von Daten über Ihre Container-App. |
Erstellen einer Functions-App
Die folgenden Schritte zeigen, wie Sie ein Beispielcontainerimage verwenden, um Ihre Container-App zu erstellen. Wenn Sie dieses Verfahren mit einem benutzerdefinierten Containerimage verwenden möchten, lesen Sie " Erstellen Ihrer ersten Funktions-App in Azure-Container-Apps".
Wechseln Sie zum Azure-Portal, und suchen Sie in der Suchleiste nach Container-Apps .
Wählen Sie Azure Container Apps aus.
Wählen Sie "Erstellen" aus.
Container-App auswählen
Geben Sie im Abschnitt "Grundlagen" die folgenden Werte ein.
Unter Projektdetails:
Eigentum Wert Abonnement Wählen Sie Ihr Azure-Abonnement. Ressourcengruppe Wählen Sie "Neue Ressourcengruppe erstellen", nennen Sie sie "my-aca-functions-group", und wählen Sie "OK" aus. Name der Container-App Geben Sie "my-aca-functions-app" ein. Aktivieren Sie das Kontrollkästchen neben Für Azure Functions optimieren.
Geben Sie unter Container Apps-Umgebung Folgendes ein:
Eigentum Wert Region Wählen Sie die Region aus, die Ihnen am nächsten ist. Container Apps-Umgebung Wählen Sie " Neue Umgebung erstellen" aus. Geben Sie im Umgebungseinrichtungsfenster Folgendes ein:
Eigentum Wert Umgebungsname Geben Sie "my-aca-functions-environment" ein. Zonenredundanz Wählen Sie Deaktiviert aus. Wählen Sie "Erstellen" aus, um Ihre Werte zu speichern.
Wählen Sie "Weiter" aus: Container , um zum Abschnitt "Container " zu wechseln.
Lassen Sie dieses Kontrollkästchen neben " Schnellstartbild verwenden" deaktiviert.
Geben Sie im Abschnitt "Containerdetails " die folgenden Werte ein.
Eigentum Wert Name Dieses Feld wird mit Ihrer Auswahl im letzten Abschnitt ausgefüllt. Bildquelle Wählen Sie Docker Hub oder andere Registrierungen aus Abonnement Wählen Sie Ihr Abonnement aus. Imagetyp Wählen Sie Öffentlich aus. Anmeldeserver für die Registrierung Mcr.microsoft.com eingeben Image und Tag k8se/quickstart-functions:latest eingeben Geben Sie unter Umgebungsvariablen Werte für die folgenden Variablen ein:
AzureWebJobsStorage-
APPINSIGHTS_INSTRUMENTATIONKEYoderAPPLICATIONINSIGHTS_CONNECTION_STRING
Geben Sie entweder verwaltete Identitäts- oder Verbindungszeichenfolgenwerte für diese Variablen ein. Verwaltete Identität wird empfohlen.
Die
AzureWebJobsStorageVariable ist eine erforderliche Azure Storage-Kontoverbindungszeichenfolge für Azure Functions. Dieses Speicherkonto speichert Funktionsausführungsprotokolle, verwaltet Trigger und Bindungen und verwaltet den Zustand für dauerhafte Funktionen.Application Insights ist ein Überwachungs- und Diagnosedienst, der Einblicke in die Leistung und Nutzung Ihrer Azure-Funktionen bietet. Diese Überwachung hilft Ihnen, Anforderungsraten, Reaktionszeiten, Fehlerraten und andere Metriken nachzuverfolgen.
Wählen Sie "Nächster Ingress" > aus, um zum Abschnitt "Ingress" zu wechseln, und geben Sie die folgenden Werte ein.
Eigentum Wert Eingang Aktivieren Sie das Kontrollkästchen "Aktiviert ", um den Eingangseingang zu aktivieren. Eingehender Datenverkehr Wählen Sie "Datenverkehr von überall annehmen" aus. Eingangstyp Wählen Sie HTTP aus. Zielport Geben Sie 80 ein. Wählen Sie Überprüfen + Erstellen aus.
Wählen Sie "Erstellen" aus.
Klicken Sie nach Abschluss der Bereitstellung auf Zu Ressource wechseln.
Wählen Sie auf der Seite "Übersicht " den Link neben der Anwendungs-URL aus, um die Anwendung auf einer neuen Browserregisterkarte zu öffnen.
Fügen Sie an das Ende der URL an
/api/HttpExample.Eine Meldung, dass die HTTP-Triggerfunktion eine Anforderung verarbeitet hat, wird im Browser zurückgegeben.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement.
- Falls Sie keins haben, können Sie kostenlos eins erstellen.
- Installieren Sie die Azure CLI.
Erstellen einer Funktionen-App
Um sich ausgehend von der CLI bei Azure anzumelden, führen Sie den folgenden Befehl aus und befolgen Sie die Anweisungen, um den Authentifizierungsprozess abzuschließen.
Melden Sie sich bei Azure an.
az loginVerwenden Sie den Upgradebefehl, um sicherzustellen, dass Sie die neueste Version der CLI ausführen.
az upgradeInstallieren oder aktualisieren Sie die Azure Container Apps-Erweiterung für die CLI.
Falls Fehler zu fehlenden Parametern auftreten, wenn Sie
az containerapp-Befehle in der Azure CLI oder in Cmdlets aus demAz.App-Modul in PowerShell ausführen, stellen Sie sicher, dass die aktuelle Version der Azure Container Apps-Erweiterung installiert ist.az extension add --name containerapp --allow-preview true --upgradeNachdem die aktuelle Erweiterung oder das aktuelle Modul installiert ist, registrieren Sie nun die Namespaces
Microsoft.AppundMicrosoft.OperationalInsights.az provider register --namespace Microsoft.Appaz provider register --namespace Microsoft.OperationalInsightsErstellen Sie Umgebungsvariablen.
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"Erstellen Sie eine Ressourcengruppe.
az group create \ --name $RESOURCE_GROUP_NAME \ --location $LOCATION \ --output noneErstellen Sie die Container Apps-Umgebung.
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --location $LOCATION \ --output noneErstellen des Speicherkontos
az storage account create \ --name $STORAGE_ACCOUNT_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --sku $STORAGE_ACCOUNT_SKUSpeicherkontoverbindungszeichenfolge abrufen
$STORAGE_ACCOUNT_CONNECTION_STRING = az storage account show-connection-string \ --name $STORAGE_ACCOUNT_NAME \ --resource-group $RESOURCE_GROUP \ --query connectionString \ --output tsvErstellen von Azure Application Insights
az monitor app-insights component create \ --app $APPLICATION_INSIGHTS_NAME \ --location $LOCATION \ --resource-group $RESOURCE_GROUP \ --application-type webVerbindungszeichenfolge für Application Insights abrufen
$APPLICATION_INSIGHTS_CONNECTION_STRING = az monitor app-insights component show \ --app $APPLICATION_INSIGHTS_NAME \ --resource-group $RESOURCE_GROUP \ --query connectionString \ --output tsvErstellen Sie eine 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.fqdnDieser Befehl gibt die URL Ihrer Funktionen-App zurück. Kopieren Sie diese URL, und fügen Sie sie in einen Webbrowser ein.
Erstellen einer Azure Functions-Container-App mit --revisions-mode multiple für ein Multi-Revisionen-Szenario
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"Aktualisieren Sie für das Szenario "Multirevision" die Containerapp und teilen Sie den Datenverkehr.
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}=50Fügen Sie an das Ende der URL an
/api/HttpExample.Eine Meldung, dass die HTTP-Triggerfunktion eine Anforderung verarbeitet hat, wird im Browser zurückgegeben.
Verwalten von Funktionen
Sie können Ihre bereitgestellten Funktionen in Azure Container-Apps mithilfe der Azure CLI verwalten. Mit den folgenden Befehlen können Sie die in Ihrer containerisierten Umgebung ausgeführten Funktionen auflisten, prüfen und mit ihnen interagieren.
Hinweis
Beim Umgang mit Multirevisionsszenarien fügen Sie den --revision <REVISION_NAME> Parameter zu Ihrem Befehl hinzu, um eine bestimmte Revision zu erreichen.
Listenfunktionen
Alle in Ihrer Container-App bereitgestellten Funktionen anzeigen:
# List all functions
az containerapp function list \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME
Funktionsdetails anzeigen
Erhalten Sie detaillierte Informationen zu einer bestimmten Funktion:
az containerapp function show \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--function-name <FUNCTIONS_APP_NAME>
Überwachen von Funktionsaufrufen
Die Überwachung Ihrer Funktions-App ist für das Verständnis der Leistung und Diagnose von Problemen unerlässlich. Die folgenden Befehle zeigen, wie Funktions-URLs abgerufen, Aufrufe ausgelöst und detaillierte Telemetrie- und Aufrufzusammenfassungen mithilfe der Azure CLI angezeigt werden.
Stellen Sie sicher, dass Sie die Funktion einige Male mit curl -X POST "fqdn/api/HttpExample" aufrufen, bevor Sie die Traces aufrufen
Um Ablaufverfolgungen anzuzeigen, erfassen Sie detaillierte Ablaufverfolgungen für Funktionsaufrufe.
az containerapp function invocations traces \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --function-name <FUNCTIONS_APP_NAME> \ --timespan 5h \ --limit 3Zeigen Sie eine Aufrufzusammenfassung an, um erfolgreiche und fehlgeschlagene Aufrufe zu überprüfen.
az containerapp function invocations summary \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --function-name <FUNCTIONS_APP_NAME> \ --timespan 5h
Verwalten von Funktionsschlüsseln
Azure Functions verwendet Schlüssel für Authentifizierung und Autorisierung. Sie können die folgenden verschiedenen Schlüsseltypen verwalten:
- Hostschlüssel: Zugreifen auf eine beliebige Funktion in der App
- Hauptschlüssel: Bereitstellen des administrativen Zugriffs
- Systemschlüssel: Von Azure-Diensten verwendet
- Funktionstasten: Zugreifen auf bestimmte Funktionen
Die folgenden Befehle zeigen, wie Sie Schlüssel für den Host verwalten. Um denselben Befehl für eine bestimmte Funktionen-App auszuführen, fügen Sie dem Befehl den --function-name <FUNCTIONS_APP_NAME> Parameter hinzu.
Auflisten von Schlüsseln
Verwenden Sie die folgenden Befehle, um host- und funktionsspezifische Schlüssel für Ihre Azure-Funktionen auflisten, die in Container-Apps ausgeführt werden.
Hinweis
Stellen Sie sicher, dass mindestens ein Replikat läuft, damit die folgenden Schlüsselverwaltungsbefehle funktionieren.
az containerapp function keys list \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-type hostKey
Anzeigen eines bestimmten Schlüssels
Zeigen Sie den Wert eines bestimmten Schlüssels auf Hostebene für Ihre Funktions-App mit dem folgenden Befehl an:
az containerapp function keys show \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-name <KEY_NAME> \
--key-type hostKey
Festlegen eines Schlüssels
Legen Sie einen bestimmten Schlüssel auf Hostebene für Ihre Funktions-App mit dem folgenden Befehl fest:
az containerapp function keys set \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-name <KEY_NAME> \
--key-value <KEY_VALUE> \
--key-type hostKey