Inicio rápido: Implementación de una imagen de contenedor existente con la línea de comandos
El servicio Azure Container Apps permite ejecutar microservicios y aplicaciones contenedorizadas en una plataforma sin servidor. Con Container Apps puede disfrutar de las ventajas de ejecutar contenedores y, al mismo tiempo, dejar atrás las preocupaciones de la configuración manual de la infraestructura en la nube y los orquestadores de contenedores complejos.
En este artículo se muestra cómo implementar un contenedor existente en Azure Container Apps.
Nota
La autorización del registro privado se admite por medio del nombre de usuario y la contraseña del registro.
Requisitos previos
- Una cuenta de Azure con una suscripción activa.
- Si no tiene ninguna, puede crear una gratis.
- Instale la CLI de Azure.
- Acceso a un registro de contenedor público o privado, como Azure Container Registry.
Configurar
Para iniciar sesión en Azure desde la CLI, ejecute el siguiente comando y siga las indicaciones para completar el proceso de autenticación.
az login
Para asegurarse de que ejecuta la versión más reciente de la CLI, ejecute el comando de actualización.
az upgrade
Luego, instale o actualice la extensión de Azure Container Apps para la CLI.
Si recibe errores sobre los parámetros que faltan al ejecutar az containerapp
comandos en la CLI de Azure o cmdlets del Az.App
módulo en Azure 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 --upgrade
Nota:
A partir de mayo de 2024, las extensiones de la CLI de Azure ya no habilitan las características en versión preliminar de forma predeterminada. Para acceder a las características de la versión preliminar de Container Apps, instale la extensión Container Apps con --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Ahora que la extensión o módulo actualizado está instalado, registre los espacios de nombre Microsoft.App
y Microsoft.OperationalInsights
.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Establecimiento de variables de entorno
Establezca las siguientes variables de entorno. Reemplace los <PLACEHOLDERS>
por sus valores:
RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"
Creación de un grupo de recursos de Azure
Cree un grupo de recursos para organizar los servicios relacionados con la implementación de la aplicación contenedora.
az group create \
--name $RESOURCE_GROUP \
--location "$LOCATION"
Creación de un entorno
Un entorno de Azure Container Apps crea un límite seguro alrededor de un grupo de aplicaciones de contenedor. Las aplicaciones de contenedor implementadas en el mismo entorno se implementan en la misma red virtual y escriben registros en la misma área de trabajo de Log Analytics.
Para crear el entorno, ejecute el comando siguiente:
az containerapp env create \
--name $CONTAINERAPPS_ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location "$LOCATION"
Crear una aplicación de contenedor
Ahora que ha creado un entorno, puede implementar la primera aplicación de contenedor.
Establezca las variables de entorno.
Reemplace el
<PLACEHOLDERS>
por sus valores. El nombre principal de usuario normalmente estará en el formato de una dirección de correo electrónico (por ejemplo,username@domain.com
).CONTAINER_APP_NAME=my-container-app KEY_VAULT_NAME=my-key-vault USER_PRINCIPAL_NAME=<USER_PRINCIPAL_NAME> SECRET_NAME=my-secret-name CONTAINER_IMAGE_NAME=<CONTAINER_IMAGE_NAME> REGISTRY_SERVER=<REGISTRY_SERVER> REGISTRY_USERNAME=<REGISTRY_USERNAME>
Cree el almacén de claves.
El almacenamiento de la contraseña del registro de contenedor mediante un servicio como Azure Key Vault mantiene los valores seguros en todo momento. Los pasos de esta sección muestran cómo crear un almacén de claves, almacenar la contraseña del registro de contenedor en Key Vault y, a continuación, recuperar la contraseña para su uso en el código.
az keyvault create --name $KEY_VAULT_NAME --resource-group $RESOURCE_GROUP
Conceda a su cuenta de usuario los permisos necesarios para administrar secretos en el almacén de claves.
KEY_VAULT_ID=$(az keyvault show --name $KEY_VAULT_NAME --query id --output tsv) az role assignment create --role "Key Vault Secrets Officer" --assignee "$USER_PRINCIPAL_NAME" --scope "$KEY_VAULT_ID"
Almacene la contraseña del registro de contenedor en el almacén de claves.
Reemplace
<REGISTRY_PASSWORD>
con su valor.az keyvault secret set --vault-name $KEY_VAULT_NAME --name $SECRET_NAME --value "<REGISTRY_PASSWORD>"
Recupere la contraseña del registro de contenedor del almacén de claves.
REGISTRY_PASSWORD=$(az keyvault secret show --name $SECRET_NAME --vault-name $KEY_VAULT_NAME --query value --output tsv)
Implemente una imagen de contenedor en Azure Container Apps.
az containerapp create \ --name $CONTAINER_APP_NAME \ --location $LOCATION \ --resource-group $RESOURCE_GROUP \ --image $CONTAINER_IMAGE_NAME \ --environment $CONTAINERAPPS_ENVIRONMENT \ --registry-server $REGISTRY_SERVER \ --registry-username $REGISTRY_USERNAME \ --registry-password $REGISTRY_PASSWORD
Si ha habilitado la entrada en la aplicación de contenedor, puede agregar
--query properties.configuration.ingress.fqdn
al comandocreate
para devolver la dirección URL pública de la aplicación.
Establezca las variables de entorno.
CONTAINER_APP_NAME=my-container-app CONTAINER_IMAGE_NAME=mcr.microsoft.com/k8se/quickstart:latest
Implemente una imagen de contenedor en Azure Container Apps.
az containerapp create \ --image $CONTAINER_IMAGE_NAME \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $CONTAINERAPPS_ENVIRONMENT
Si ha habilitado la entrada en la aplicación de contenedor, puede agregar
--query properties.configuration.ingress.fqdn
al comandocreate
para devolver la dirección URL pública de la aplicación.
Comprobación de la implementación
Para comprobar una implementación correcta, puede consultar el área de trabajo de Log Analytics. Es posible que tenga que esperar unos minutos tras la implementación para que el análisis llegue por primera vez para poder consultar los registros. Esto depende del registro de consola implementado en la aplicación contenedora.
Use los comandos siguientes para ver los mensajes de registro de la consola.
LOG_ANALYTICS_WORKSPACE_CLIENT_ID=`az containerapp env show --name $CONTAINERAPPS_ENVIRONMENT --resource-group $RESOURCE_GROUP --query properties.appLogsConfiguration.logAnalyticsConfiguration.customerId --out tsv`
az monitor log-analytics query \
--workspace $LOG_ANALYTICS_WORKSPACE_CLIENT_ID \
--analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == $CONTAINER_APP_NAME | project ContainerAppName_s, Log_s, TimeGenerated" \
--out table
Limpieza de recursos
Si no va a seguir usando esta aplicación, ejecute el siguiente comando para eliminar el grupo de recursos junto con todos los recursos creados en el inicio rápido.
Precaución
El comando siguiente elimina el grupo de recursos especificado y todos los recursos que contiene. Si los recursos que están fuera del ámbito de este inicio rápido existen en el grupo de recursos especificado, también se eliminarán.
az group delete --name $RESOURCE_GROUP
Sugerencia
¿Tiene problemas? Háganoslo saber en GitHub abriendo una incidencia en el repositorio de Azure Container Apps.