Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se muestra cómo crear una aplicación de Azure Functions en Azure Container Apps, con reglas de escalado automático preconfiguradas.
Prerrequisitos
| Recurso | Descripción |
|---|---|
| Cuenta de Azure | Una cuenta de Azure con una suscripción activa. Si no tiene ninguna, puede crear una gratis. |
| Cuenta de Azure Storage | Una cuenta de Blob Storage para almacenar el estado de Azure Functions. |
| Azure Application Insights | Instancia de Azure Application Insights para recopilar datos sobre la aplicación contenedora. |
Creación de una aplicación de Functions
En los pasos siguientes se muestra cómo usar una imagen de contenedor de ejemplo para crear la aplicación de contenedor. Si desea usar este procedimiento con una imagen de contenedor personalizada, consulte Creación de la primera aplicación de funciones en Azure Container Apps.
Vaya a Azure Portal y busque Container Apps en la barra de búsqueda.
Seleccione Container Apps.
Selecciona Crear.
Seleccione Aplicación de contenedor
En la sección Aspectos básicos , escriba los valores siguientes.
En Detalles del proyecto:
Propiedad Importancia Suscripción Seleccione su suscripción a Azure. Grupo de recursos Seleccione Crear nuevo grupo de recursos, asígnelo el nombre my-aca-functions-group y seleccione Aceptar. Nombre de la aplicación de contenedor Escriba my-aca-functions-app. Junto a Optimizar para Azure Functions, active la casilla.
En Entorno de Container Apps, escriba:
Propiedad Importancia Región Seleccione la región más cercana a la suya. Entorno de Container Apps Seleccione Crear nuevo entorno. En la ventana de configuración del entorno, escriba:
Propiedad Importancia Nombre del entorno Escriba my-aca-functions-environment Redundancia de zona Seleccione Deshabilitado. Seleccione Crear para guardar los valores.
Seleccione Siguiente: Contenedor para cambiar a la sección Contenedor .
Junto a Usar imagen de inicio rápido, deje esta casilla desactivada.
En la sección Detalles del contenedor , escriba los valores siguientes.
Propiedad Importancia Nombre Este cuadro se rellena previamente con la selección en la última sección. Origen de la imagen Selección de Docker Hub u otros registros Suscripción Seleccione su suscripción. Tipo de imagen Seleccione Público. Registry login server (Servidor de inicio de sesión de registro) Escriba mcr.microsoft.com Image and tag (Imagen y etiqueta) Escriba k8se/quickstart-functions:latest En Variables de entorno, escriba valores para las siguientes variables:
AzureWebJobsStorage-
APPINSIGHTS_INSTRUMENTATIONKEYoAPPLICATIONINSIGHTS_CONNECTION_STRING
Escriba los valores de identidad administrada o cadena de conexión para estas variables. Se recomienda la identidad administrada.
La
AzureWebJobsStoragevariable es una cadena de conexión de la cuenta de Azure Storage necesaria para Azure Functions. Esta cuenta de almacenamiento almacena registros de ejecución de funciones, administra desencadenadores y enlaces y mantiene el estado de las funciones duraderas.Application Insights es un servicio de supervisión y diagnóstico que proporciona información sobre el rendimiento y el uso de Azure Functions. Esta supervisión le ayuda a realizar un seguimiento de las tasas de solicitudes, los tiempos de respuesta, las tasas de error y otras métricas.
Seleccione Siguiente > entrada para cambiar a la sección Entrada y escriba los valores siguientes.
Propiedad Importancia Entrada Active la casilla Habilitado para habilitar la entrada. Tráfico de entrada Seleccione Aceptar tráfico desde cualquier lugar. Tipo de entrada Seleccione HTTP. Puerto de destino Escriba 80. Seleccione Revisar + crear.
Selecciona Crear.
Una vez finalizada la implementación, seleccione Ir al recurso.
En la página Información general , seleccione el vínculo situado junto a Dirección URL de la aplicación para abrir la aplicación en una nueva pestaña del explorador.
Anexe
/api/HttpExampleal final de la dirección URL.En el explorador, se devuelve un mensaje que indica "La función de activación HTTP procesó una solicitud."
Prerrequisitos
- Una cuenta de Azure con una suscripción activa.
- Si no tiene ninguna, puede crear una gratis.
- Instale la CLI de Azure.
Creación de una aplicación de Functions
Para iniciar sesión en Azure desde la CLI, ejecute el siguiente comando y siga las indicaciones para completar el proceso de autenticación.
Inicie sesión en Azure.
az loginPara asegurarse de que ejecuta la versión más reciente de la CLI, ejecute el comando de actualización.
az upgradeInstale o actualice la extensión azure Container Apps para la CLI.
Si recibe errores sobre los parámetros que faltan al ejecutar comandos
az containerappen la CLI de Azure o cmdlets desde el móduloAz.Appde PowerShell, asegúrese de que tiene instalada la versión más reciente de la extensión Azure Container Apps.az extension add --name containerapp --allow-preview true --upgradeAhora que está instalada la extensión o el módulo actual, registre los espacios de nombres
Microsoft.AppyMicrosoft.OperationalInsights.az provider register --namespace Microsoft.Appaz provider register --namespace Microsoft.OperationalInsightsCree variables de entorno.
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"Cree un grupo de recursos.
az group create \ --name $RESOURCE_GROUP_NAME \ --location $LOCATION \ --output noneCreación del entorno de Container Apps.
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --location $LOCATION \ --output noneCreación de la cuenta de almacenamiento
az storage account create \ --name $STORAGE_ACCOUNT_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --sku $STORAGE_ACCOUNT_SKUObtener la cadena de conexión de la cuenta de almacenamiento
$STORAGE_ACCOUNT_CONNECTION_STRING = az storage account show-connection-string \ --name $STORAGE_ACCOUNT_NAME \ --resource-group $RESOURCE_GROUP \ --query connectionString \ --output tsvCreación de Azure Applications Insights
az monitor app-insights component create \ --app $APPLICATION_INSIGHTS_NAME \ --location $LOCATION \ --resource-group $RESOURCE_GROUP \ --application-type webAdquisición de la cadena de conexión de Application Insights
$APPLICATION_INSIGHTS_CONNECTION_STRING = az monitor app-insights component show \ --app $APPLICATION_INSIGHTS_NAME \ --resource-group $RESOURCE_GROUP \ --query connectionString \ --output tsvCree una aplicación de contenedor de Azure Functions.
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.fqdnEste comando devuelve la dirección URL de la aplicación de Functions. Copie esta dirección URL y péguela en un explorador web.
Crear una aplicación de contenedor de Azure Functions con el modo de revisiones múltiples para el escenario de revisiones múltiples
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"En un escenario de múltiples revisiones, actualice el ContainerApp y divida el tráfico.
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}=50Anexe
/api/HttpExampleal final de la dirección URL.En el explorador, se devuelve un mensaje que indica "La función de activación HTTP procesó una solicitud."
Administración de funciones
Puede administrar las funciones implementadas en Azure Container Apps mediante la CLI de Azure. Los siguientes comandos le ayudan a enumerar, inspeccionar e interactuar con las funciones que se ejecutan en el entorno en contenedor.
Nota:
Al tratar con escenarios multirrevisión, agregue el parámetro --revision <REVISION_NAME> al comando para dirigirse a una revisión específica.
Enumerar funciones
Vea todas las funciones implementadas en la aplicación contenedora:
# List all functions
az containerapp function list \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME
Mostrar detalles de la función
Obtenga información detallada sobre una función específica:
az containerapp function show \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--function-name <FUNCTIONS_APP_NAME>
Supervisión de invocaciones de función
La supervisión de la aplicación de funciones es esencial para comprender su rendimiento y diagnosticar problemas. Los siguientes comandos muestran cómo recuperar las direcciones URL de función, las invocaciones de desencadenador y ver resúmenes detallados de telemetría e invocación mediante la CLI de Azure.
Asegúrese de invocar la función varias veces con curl -X POST "fqdn/api/HttpExample" antes de llamar a los seguimientos
Para ver los rastros de invocación, obtenga rastreos detallados de las funciones invocadas.
az containerapp function invocations traces \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --function-name <FUNCTIONS_APP_NAME> \ --timespan 5h \ --limit 3Vea un resumen de invocación para revisar las invocaciones correctas y con errores.
az containerapp function invocations summary \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --function-name <FUNCTIONS_APP_NAME> \ --timespan 5h
Actualización de claves de función
Azure Functions usa claves para la autenticación y autorización. Puede administrar los siguientes tipos diferentes de claves:
- Claves de host: acceso a cualquier función de la aplicación
- Claves maestras: proporcionar acceso administrativo
- Claves del sistema: usadas por los servicios de Azure
- Claves de función: acceso a funciones específicas
Los comandos siguientes muestran cómo administrar claves para el host. Para ejecutar el mismo comando para una aplicación de Functions específica, agregue el --function-name <FUNCTIONS_APP_NAME> parámetro al comando.
Enumerar claves
Use los siguientes comandos para enumerar las claves a nivel de host y específicas de función para Azure Functions que se están ejecutando en Container Apps.
Nota:
Mantenga un mínimo de una réplica en ejecución para que funcionen los siguientes comandos de administración de claves.
az containerapp function keys list \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-type hostKey
Mostrar una clave específica
Muestre el valor de una clave de nivel de host específica para la aplicación de funciones con el siguiente comando:
az containerapp function keys show \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-name <KEY_NAME> \
--key-type hostKey
Establecimiento de una clave
Establezca una clave de nivel de host específica para la aplicación de funciones con el comando siguiente:
az containerapp function keys set \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-name <KEY_NAME> \
--key-value <KEY_VALUE> \
--key-type hostKey