Ayer escribí un artículo titulado "Implementación de una función de Java Azure en aplicaciones de contenedores de Azure".
En esa entrada, mencioné el uso de las capacidades de administración integrada de Azure y quiero aclarar qué significa eso y en qué se diferencia de los métodos anteriores en este artículo.
Azure Container Apps es uno de los entornos de ejecución de contenedores de Azure, que le permite ejecutar cualquier servicio en contenedores. Anteriormente, si deseaba ejecutar Azure Functions en Azure Container Apps, debía crear una instancia con el siguiente comando:
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
Después de ejecutar el comando, verás un mensaje como este:
Container app created. Access your app at https://general-container-app.niceocean-********.eastus.azurecontainerapps.io/
Luego podría usar un comando curl para conectarse a su servicio Azure Functions:
curl https://general-container-app.niceocean-********.eastus.azurecontainerapps.io/api/httpexample?name=World
Al acceder al entorno de aplicaciones de contenedor de Azure, verá que la aplicación de contenedor general se crea como una aplicación de contenedor y esta interfaz de administración está disponible para cualquier aplicación en contenedor implementada.
https://raw.githubusercontent.com/yoshioterada/Azure-Functions-Deploy-To-Azure-Container-Apps/main/images/ACA-Instance-for-Azure-Functions.png
El nuevo método le permite crear Azure Functions en Azure Container Apps usando el comando az functionapp create en lugar de az containerapp 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
Con este comando, sus Azure Functions se crearán en Azure Container Apps y la interfaz de administración mostrará claramente que es una Function App.
Esto significa que Azure Functions ahora se puede administrar a través de una interfaz de administración de Azure Functions dedicada, lo que la diferencia de otras aplicaciones de contenedor.
Sin embargo, existen algunas diferencias entre las características de administración proporcionadas en Azure App Service y las disponibles para Azure Functions en Container Apps. Por ejemplo, es posible que determinadas funcionalidades, como herramientas de diagnóstico, funciones de implementación y otras, no estén disponibles.
A modo de comparación, aquí se muestra la interfaz de administración de Azure Functions implementada en Azure App Service.
Las diferencias en las capacidades de administración entre App Service y Azure Container Apps pueden incluir:
- Diagnose and solve problems - Microsoft Defender for Cloud - Events (preview) - Log stream - Deployment - App Service plan - Development Tools - Monitoring - Support troubleshooting
Algunos pueden pensar que la falta de ciertas funciones sugiere que faltan funciones.
Sin embargo, cuando se implementa en Azure Container Apps, el entorno operativo está basado en contenedores, lo que cambia los métodos de implementación y administración. Las características no incluidas en la interfaz de administración de Azure Functions deberán administrarse por separado a través de la interfaz de Azure Container Apps.
Cuando se utiliza el comando az functionapp create para crear una instancia de Azure Functions en Azure Container Apps, se crea automáticamente un nuevo grupo de recursos que alberga la instancia del contenedor.
En mi entorno, el nombre del grupo de recursos sigue esta convención:
$CONTAINER_ENVIRONMENT_FunctionApps_$UUID
Verá que se ha generado una instancia de Azure Container Apps con el nombre de su $AZURE_FUNCTION_NAME especificado.
Al hacer clic en esta instancia, se lo dirigirá a una interfaz de administración específica de Azure Container Apps, donde Azure Functions se ejecuta como instancias de contenedor.
Azure Container Apps proporciona CI/CD y métodos de implementación diferentes a los de Azure App Service. También permite funciones ofrecidas a nivel de contenedor, como Dapr y Service Connector, que se pueden utilizar.
Anteriormente, era posible ejecutar Azure Functions convirtiéndolos en contenedores en un entorno de ejecución de contenedores, pero no había una interfaz de administración dedicada para Azure Functions.
Con este nuevo método, Azure Functions y Azure Container Apps se han integrado, ofreciendo un entorno de contenedor con una interfaz de administración de Azure Functions asociada.
Sé que algunos clientes operan Azure Functions Container en Azure Kubernetes Service (AKS). Anteriormente, carecían de una interfaz de gestión dedicada. Sin embargo, al implementar Azure Container Apps, ahora pueden usar la administración de Azure Functions mientras disfrutan de la simplicidad de administrar Azure Container Apps en comparación con la administración de operaciones en AKS.
Es probable que los métodos para implementar Azure Functions en Azure Container Apps evolucionen aún más. Espero ver cómo se desarrolla esto.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3