Hier, j'ai écrit un article intitulé « Déploiement d'une fonction Java Azure sur Azure Container Apps ».
Dans cette entrée, j'ai mentionné l'utilisation des capacités de gestion intégrées d'Azure et je souhaite clarifier ce que cela signifie et en quoi cela diffère des méthodes précédentes dans cet article.
Azure Container Apps est l'un des environnements d'exécution de conteneurs Azure, vous permettant d'exécuter n'importe quel service conteneurisé. Auparavant, si vous souhaitiez exécuter Azure Functions dans Azure Container Apps, vous deviez créer une instance à l'aide de la commande suivante :
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
Après avoir exécuté la commande, vous verrez un message comme celui-ci :
Container app created. Access your app at https://general-container-app.niceocean-********.eastus.azurecontainerapps.io/
Vous pouvez ensuite utiliser une commande curl pour vous connecter à votre service Azure Functions :
curl https://general-container-app.niceocean-********.eastus.azurecontainerapps.io/api/httpexample?name=World
Lorsque vous accédez à l'environnement Azure Container Apps, vous verrez que l'application conteneur générale est créée en tant qu'application conteneur et que cette interface de gestion est disponible pour toute application conteneurisée déployée.
https://raw.githubusercontent.com/yoshioterada/Azure-Functions-Deploy-To-Azure-Container-Apps/main/images/ACA-Instance-for-Azure-Functions.png
La nouvelle méthode vous permet de créer des fonctions Azure dans Azure Container Apps à l'aide de la commande az functionapp create au lieu de az containersapp create.
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
Avec cette commande, vos Azure Functions seront créées dans Azure Container Apps et l'interface de gestion indiquera clairement qu'il s'agit d'une Function App.
Cela signifie qu'Azure Functions peut désormais être géré via une interface de gestion Azure Functions dédiée, ce qui la différencie des autres applications de conteneur.
Cependant, il existe certaines différences entre les fonctionnalités de gestion fournies dans Azure App Service et celles disponibles pour Azure Functions sur Container Apps. Par exemple, certaines fonctionnalités telles que les outils de diagnostic, les fonctionnalités de déploiement et autres peuvent ne pas être disponibles.
À titre de comparaison, voici l'interface de gestion pour Azure Functions déployée sur Azure App Service.
Les différences dans les capacités de gestion entre App Service et Azure Container Apps peuvent inclure :
- Diagnose and solve problems - Microsoft Defender for Cloud - Events (preview) - Log stream - Deployment - App Service plan - Development Tools - Monitoring - Support troubleshooting
Certains peuvent penser que l'absence de certaines fonctionnalités suggère une fonctionnalité manquante.
Cependant, lorsqu'il est déployé sur Azure Container Apps, l'environnement d'exploitation est basé sur des conteneurs, ce qui modifie les méthodes de déploiement et de gestion. Les fonctionnalités non incluses dans l’interface de gestion Azure Functions devront être gérées séparément via l’interface Azure Container Apps.
Lors de l'utilisation de la commande az functionapp create pour créer une instance Azure Functions sur Azure Container Apps, un nouveau groupe de ressources est automatiquement créé pour héberger l'instance de conteneur.
Dans mon environnement, le nom du groupe de ressources suit cette convention :
$CONTAINER_ENVIRONMENT_FunctionApps_$UUID
Vous verrez qu'une instance Azure Container Apps nommée d'après votre $AZURE_FUNCTION_NAME spécifié a été générée.
Lorsque vous cliquez sur cette instance, vous serez dirigé vers une interface de gestion spécifique à Azure Container Apps, où les fonctions Azure s'exécutent en tant qu'instances de conteneur.
Azure Container Apps fournit des méthodes de CI/CD et de déploiement différentes de celles d'Azure App Service. Il permet également d'utiliser des fonctionnalités proposées au niveau du conteneur, telles que Dapr et Service Connector.
Auparavant, il était possible d'exécuter Azure Functions en les conteneurisant dans un environnement d'exécution de conteneurs, mais il n'existait pas d'interface de gestion dédiée pour Azure Functions.
Avec cette nouvelle méthode, Azure Functions et Azure Container Apps se sont intégrés, offrant un environnement de conteneur avec une interface de gestion Azure Functions associée.
Je sais que certains clients exploitent Azure Functions Container sur Azure Kubernetes Service (AKS). Auparavant, il leur manquait une interface de gestion dédiée. Cependant, en déployant sur Azure Container Apps, ils peuvent désormais utiliser la gestion Azure Functions tout en profitant de la simplicité de gestion d’Azure Container Apps par rapport à la gestion des opérations sur AKS.
Les méthodes de déploiement d'Azure Functions sur Azure Container Apps sont susceptibles d'évoluer davantage. J'ai hâte de voir comment cela évoluera.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3