Heim >Java >javaLernprogramm >Vergleich zweier Methoden zum Bereitstellen von Azure Functions in Azure Container Apps
Gestern habe ich einen Artikel mit dem Titel „Bereitstellen einer Java Azure-Funktion in Azure Container Apps“ geschrieben.
In diesem Eintrag habe ich die Verwendung der integrierten Verwaltungsfunktionen von Azure erwähnt und möchte klarstellen, was das bedeutet und wie es sich von den vorherigen Methoden in diesem Artikel unterscheidet.
Azure Container Apps ist eine der Containerausführungsumgebungen von Azure, mit der Sie jeden Containerdienst ausführen können. Wenn Sie bisher Azure Functions in Azure Container Apps ausführen wollten, erstellten Sie eine Instanz mit dem folgenden Befehl:
az containerapp create \ --name general-container-app \ --resource-group $RESOURCE_GROUP_NAME \ --environment $CONTAINER_ENVIRONMENT \ --registry-server $CONTAINER_REGISTRY_SERVER \ --image $CONTAINER_REGISTRY_SERVER/$C_IMAGE_NAME:$C_IMAGE_TAG \ --target-port 80 \ --ingress external \ --query properties.configuration.ingress.fqdn
Nachdem Sie den Befehl ausgeführt haben, wird eine Meldung wie diese angezeigt:
Container app created. Access your app at https://general-container-app.niceocean-********.eastus.azurecontainerapps.io/
Sie könnten dann einen Curl-Befehl verwenden, um eine Verbindung zu Ihrem Azure Functions-Dienst herzustellen:
curl https://general-container-app.niceocean-********.eastus.azurecontainerapps.io/api/httpexample?name=World
Beim Zugriff auf die Azure Container Apps-Umgebung sehen Sie, dass die allgemeine Container-App als Container-App erstellt wurde und diese Verwaltungsschnittstelle für jede bereitgestellte Containeranwendung verfügbar ist.
https://raw.githubusercontent.com/yoshioterada/Azure-Functions-Deploy-To-Azure-Container-Apps/main/images/ACA-Instance-for-Azure-Functions.png
Mit der neuen Methode können Sie Azure-Funktionen in Azure Container Apps mithilfe des Befehls „az functionapp create“ anstelle von „az containerapp create“ erstellen.
az functionapp create \ --name $AZURE_FUNCTION_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --environment $CONTAINER_ENVIRONMENT \ --storage-account $STORAGE_NAME \ --workload-profile-name "Consumption" \ --max-replicas 15 \ --min-replicas 1 \ --functions-version 4 \ --runtime java \ --image $CONTAINER_REGISTRY_SERVER/$C_IMAGE_NAME:$C_IMAGE_TAG \ --assign-identity
Mit diesem Befehl werden Ihre Azure Functions in Azure Container Apps erstellt und die Verwaltungsoberfläche zeigt deutlich an, dass es sich um eine Funktions-App handelt.
Das bedeutet, dass Azure Functions jetzt über eine dedizierte Azure Functions-Verwaltungsschnittstelle verwaltet werden kann, was den Unterschied zu anderen Containeranwendungen darstellt.
Es gibt jedoch einige Unterschiede zwischen den in Azure App Service bereitgestellten Verwaltungsfunktionen und denen, die für Azure Functions in Container Apps verfügbar sind. Beispielsweise sind bestimmte Funktionen wie Diagnosetools, Bereitstellungsfunktionen und andere möglicherweise nicht verfügbar.
Zum Vergleich sehen Sie hier die Verwaltungsschnittstelle für Azure Functions, die im Azure App Service bereitgestellt wird.
Die Unterschiede in den Verwaltungsfunktionen zwischen App Service und Azure Container Apps können Folgendes umfassen:
- Diagnose and solve problems - Microsoft Defender for Cloud - Events (preview) - Log stream - Deployment - App Service plan - Development Tools - Monitoring - Support + troubleshooting
Einige denken vielleicht, dass das Fehlen bestimmter Funktionen auf fehlende Funktionalität hindeutet.
Bei der Bereitstellung in Azure Container Apps ist die Betriebsumgebung jedoch Container-basiert, wodurch sich die Bereitstellungs- und Verwaltungsmethoden ändern. Funktionen, die nicht in der Azure Functions-Verwaltungsschnittstelle enthalten sind, müssen separat über die Azure Container Apps-Schnittstelle verwaltet werden.
Wenn Sie den Befehl az functionapp create verwenden, um eine Azure Functions-Instanz in Azure Container Apps zu erstellen, wird automatisch eine neue Ressourcengruppe erstellt, die die Containerinstanz enthält.
In meiner Umgebung folgt der Ressourcengruppenname dieser Konvention:
$CONTAINER_ENVIRONMENT_FunctionApps_$UUID
Sie werden sehen, dass eine Azure Container Apps-Instanz mit dem Namen Ihres angegebenen $AZURE_FUNCTION_NAME generiert wurde.
Wenn Sie auf diese Instanz klicken, werden Sie zu einer Verwaltungsoberfläche speziell für Azure Container Apps weitergeleitet, wo die Azure-Funktionen als Containerinstanzen ausgeführt werden.
Azure Container Apps bietet andere CI/CD- und Bereitstellungsmethoden als Azure App Service. Es ermöglicht auch die Nutzung von auf Containerebene angebotenen Funktionen wie Dapr und Service Connector.
Zuvor war es möglich, Azure Functions durch Containerisierung in einer Containerausführungsumgebung auszuführen, es gab jedoch keine dedizierte Verwaltungsschnittstelle für Azure Functions.
Mit dieser neuen Methode wurden Azure Functions und Azure Container Apps integriert und bieten eine Containerumgebung mit einer zugehörigen Azure Functions-Verwaltungsschnittstelle.
Ich weiß, dass einige Kunden Azure Functions Container auf Azure Kubernetes Service (AKS) betreiben. Bisher fehlte ihnen eine dedizierte Verwaltungsschnittstelle. Durch die Bereitstellung in Azure Container Apps können sie jetzt jedoch die Azure Functions-Verwaltung nutzen und gleichzeitig die Einfachheit der Verwaltung von Azure Container Apps im Vergleich zur Verwaltung von Vorgängen auf AKS genießen.
Die Methoden zur Bereitstellung von Azure Functions in Azure Container Apps werden sich wahrscheinlich weiterentwickeln. Ich bin gespannt, wie sich das entwickelt.
Das obige ist der detaillierte Inhalt vonVergleich zweier Methoden zum Bereitstellen von Azure Functions in Azure Container Apps. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!