En este artículo, aprenderá a crear una aplicación de contenedor con redundancia de zona dentro de una red virtual. Creará un entorno de Azure Container Apps, lo habilitará para la redundancia de zona y lo configurará con una red virtual nueva o preexistente que tenga una subred de infraestructura.
Para obtener más información sobre cómo Container Apps admite la redundancia de zona, consulte Confiabilidad en Aplicaciones de contenedor.
Prerrequisitos
La redundancia de zona está disponible en todas las regiones que admiten aplicaciones de contenedores y zonas de disponibilidad.
Para ver qué regiones admiten zonas de disponibilidad, consulte Regiones de Azure con compatibilidad con zonas de disponibilidad.
Para ver qué regiones admiten Container Apps, consulte Disponibilidad del producto por región.
Creación de una aplicación de contenedor con redundancia de zona
Use Azure Portal, la CLI de Azure o PowerShell para crear una aplicación de contenedor con redundancia de zona.
- Acceda a Portal Azure.
- Busque Container Apps en el cuadro de búsqueda superior.
- Seleccione Container Apps.
- Seleccione Crear nuevo en el campo Entorno de Container Apps para abrir el panel Crear entorno de Container Apps.
- Introduzca el nombre del entorno.
- Seleccione Habilitado para el campo Redundancia de zona.
La redundancia de zona requiere una red virtual con una subred de infraestructura. Puede elegir una red virtual existente o crear una nueva. Al crear una nueva red virtual, puede aceptar los valores proporcionados para usted o personalizar la configuración.
- Seleccione la pestaña Redes.
- Para asignar un nombre de red virtual personalizado, seleccione Crear nuevo en el campo Virtual Network.
- Para asignar un nombre de subred de infraestructura personalizado, seleccione Crear nuevo en el campo Subred de infraestructura.
- Puede seleccionar Interno o Externo para la IP virtual.
- Selecciona Crear.
Cree una red virtual y una subred de infraestructura que se incluyan con el entorno de Container Apps.
Cuando use estos comandos, reemplace <PLACEHOLDERS> por sus valores.
Nota:
El entorno de solo consumo requiere una subred dedicada con un intervalo CIDR de /23 o mayor. El entorno de perfiles de carga de trabajo requiere una subred dedicada con un rango CIDR de /27 o mayor. Para obtener más información sobre el ajuste de tamaño de subred, consulte la introducción a la arquitectura de red.
az network vnet create \
--resource-group <RESOURCE_GROUP_NAME> \
--name <VNET_NAME> \
--location <LOCATION> \
--address-prefix 10.0.0.0/16
az network vnet subnet create \
--resource-group <RESOURCE_GROUP_NAME> \
--vnet-name <VNET_NAME> \
--name infrastructure \
--address-prefixes 10.0.0.0/21
Consulte el identificador de subred de infraestructura.
INFRASTRUCTURE_SUBNET=`az network vnet subnet show --resource-group <RESOURCE_GROUP_NAME> --vnet-name <VNET_NAME> --name infrastructure --query "id" -o tsv | tr -d '[:space:]'`
Cree el entorno con el --zone-redundant parámetro . La ubicación debe ser la misma ubicación que se usa al crear la red virtual.
az containerapp env create \
--name <CONTAINER_APP_ENV_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--location "<LOCATION>" \
--infrastructure-subnet-resource-id $INFRASTRUCTURE_SUBNET \
--zone-redundant
Cree una red virtual y una subred de infraestructura que se incluyan con el entorno de Container Apps.
Cuando use estos comandos, reemplace <PLACEHOLDERS> por sus valores.
Nota:
El entorno de solo consumo requiere una subred dedicada con un intervalo CIDR de /23 o mayor. El entorno de perfiles de carga de trabajo requiere una subred dedicada con un rango CIDR de /27 o mayor. Para obtener más información sobre el ajuste de tamaño de subred, consulte la introducción a la arquitectura de red.
$SubnetArgs = @{
Name = 'infrastructure-subnet'
AddressPrefix = '10.0.0.0/21'
}
$subnet = New-AzVirtualNetworkSubnetConfig @SubnetArgs
$VnetArgs = @{
Name = <VNetName>
Location = <Location>
ResourceGroupName = <ResourceGroupName>
AddressPrefix = '10.0.0.0/16'
Subnet = $subnet
}
$vnet = New-AzVirtualNetwork @VnetArgs
Realice una consulta para obtener el identificador de la subred de infraestructura.
$InfrastructureSubnet=(Get-AzVirtualNetworkSubnetConfig -Name $SubnetArgs.Name -VirtualNetwork $vnet).Id
Cree el entorno con el --zone-redundant parámetro . La ubicación debe ser la misma ubicación que se usa al crear la red virtual.
Se requiere un área de trabajo de Log Analytics para el entorno de Container Apps. Los siguientes comandos crean un área de trabajo de Log Analytics y guardan el id. del área de trabajo y la clave compartida principal en variables de entorno.
$WorkspaceArgs = @{
Name = 'myworkspace'
ResourceGroupName = <ResourceGroupName>
Location = <Location>
PublicNetworkAccessForIngestion = 'Enabled'
PublicNetworkAccessForQuery = 'Enabled'
}
New-AzOperationalInsightsWorkspace @WorkspaceArgs
$WorkspaceId = (Get-AzOperationalInsightsWorkspace -ResourceGroupName <ResourceGroupName> -Name $WorkspaceArgs.Name).CustomerId
$WorkspaceSharedKey = (Get-AzOperationalInsightsWorkspaceSharedKey -ResourceGroupName <ResourceGroupName> -Name $WorkspaceArgs.Name).PrimarySharedKey
Cree el entorno mediante la ejecución del comando siguiente:
$EnvArgs = @{
EnvName = <EnvironmentName>
ResourceGroupName = <ResourceGroupName>
Location = <Location>
AppLogConfigurationDestination = "log-analytics"
LogAnalyticConfigurationCustomerId = $WorkspaceId
LogAnalyticConfigurationSharedKey = $WorkspaceSharedKey
VnetConfigurationInfrastructureSubnetId = $InfrastructureSubnet
VnetConfigurationInternal = $true
ZoneRedundant = $true
}
New-AzContainerAppManagedEnv @EnvArgs
Comprobación de la redundancia de zona
Para comprobar que la redundancia de zona está habilitada para el entorno de Container Apps:
Acceda a Portal Azure.
Busque Entornos de Container Apps en el cuadro de búsqueda superior.
Seleccione Entornos de Azure Container Apps.
Seleccione el entorno.
Seleccione Vista JSON: 
Compruebe que la respuesta contiene "zoneRedundant": true: 
Ejecute el comando az container app env show:
Al usar este comando, reemplace el <PLACEHOLDERS> con sus valores.
az containerapp env show \
--name <CONTAINER_APP_ENV_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--subscription <SUBSCRIPTION_ID>
El comando devuelve una respuesta JSON. Compruebe que la respuesta contiene "zoneRedundant": true.
Ejecute el comando az container app env show:
Al usar este comando, reemplace el <PLACEHOLDERS> con sus valores.
$Env = Get-AzContainerAppManagedEnv `
-Name <EnvironmentName> `
-ResourceGroupName <ResourceGroupName>
$Env.ZoneRedundant
El comando muestra True si el entorno tiene redundancia de zona y False si no lo es.