Microsoft.App containerApps 2024-03-01
Definición de recursos de Bicep
El tipo de recurso containerApps se puede implementar con operaciones destinadas a:
- grupos de recursos: consulte comandos de implementación de grupos de recursos
Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.
Formato de recurso
Para crear un recurso Microsoft.App/containerApps, agregue el siguiente bicep a la plantilla.
resource symbolicname 'Microsoft.App/containerApps@2024-03-01' = {
extendedLocation: {
name: 'string'
type: 'string'
}
identity: {
type: 'string'
userAssignedIdentities: {
{customized property}: {}
}
}
location: 'string'
managedBy: 'string'
name: 'string'
properties: {
configuration: {
activeRevisionsMode: 'string'
dapr: {
appId: 'string'
appPort: int
appProtocol: 'string'
enableApiLogging: bool
enabled: bool
httpMaxRequestSize: int
httpReadBufferSize: int
logLevel: 'string'
}
ingress: {
additionalPortMappings: [
{
exposedPort: int
external: bool
targetPort: int
}
]
allowInsecure: bool
clientCertificateMode: 'string'
corsPolicy: {
allowCredentials: bool
allowedHeaders: [
'string'
]
allowedMethods: [
'string'
]
allowedOrigins: [
'string'
]
exposeHeaders: [
'string'
]
maxAge: int
}
customDomains: [
{
bindingType: 'string'
certificateId: 'string'
name: 'string'
}
]
exposedPort: int
external: bool
ipSecurityRestrictions: [
{
action: 'string'
description: 'string'
ipAddressRange: 'string'
name: 'string'
}
]
stickySessions: {
affinity: 'string'
}
targetPort: int
traffic: [
{
label: 'string'
latestRevision: bool
revisionName: 'string'
weight: int
}
]
transport: 'string'
}
maxInactiveRevisions: int
registries: [
{
identity: 'string'
passwordSecretRef: 'string'
server: 'string'
username: 'string'
}
]
secrets: [
{
identity: 'string'
keyVaultUrl: 'string'
name: 'string'
value: 'string'
}
]
service: {
type: 'string'
}
}
environmentId: 'string'
managedEnvironmentId: 'string'
template: {
containers: [
{
args: [
'string'
]
command: [
'string'
]
env: [
{
name: 'string'
secretRef: 'string'
value: 'string'
}
]
image: 'string'
name: 'string'
probes: [
{
failureThreshold: int
httpGet: {
host: 'string'
httpHeaders: [
{
name: 'string'
value: 'string'
}
]
path: 'string'
port: int
scheme: 'string'
}
initialDelaySeconds: int
periodSeconds: int
successThreshold: int
tcpSocket: {
host: 'string'
port: int
}
terminationGracePeriodSeconds: int
timeoutSeconds: int
type: 'string'
}
]
resources: {
cpu: int
memory: 'string'
}
volumeMounts: [
{
mountPath: 'string'
subPath: 'string'
volumeName: 'string'
}
]
}
]
initContainers: [
{
args: [
'string'
]
command: [
'string'
]
env: [
{
name: 'string'
secretRef: 'string'
value: 'string'
}
]
image: 'string'
name: 'string'
resources: {
cpu: int
memory: 'string'
}
volumeMounts: [
{
mountPath: 'string'
subPath: 'string'
volumeName: 'string'
}
]
}
]
revisionSuffix: 'string'
scale: {
maxReplicas: int
minReplicas: int
rules: [
{
azureQueue: {
auth: [
{
secretRef: 'string'
triggerParameter: 'string'
}
]
queueLength: int
queueName: 'string'
}
custom: {
auth: [
{
secretRef: 'string'
triggerParameter: 'string'
}
]
metadata: {
{customized property}: 'string'
}
type: 'string'
}
http: {
auth: [
{
secretRef: 'string'
triggerParameter: 'string'
}
]
metadata: {
{customized property}: 'string'
}
}
name: 'string'
tcp: {
auth: [
{
secretRef: 'string'
triggerParameter: 'string'
}
]
metadata: {
{customized property}: 'string'
}
}
}
]
}
serviceBinds: [
{
name: 'string'
serviceId: 'string'
}
]
terminationGracePeriodSeconds: int
volumes: [
{
mountOptions: 'string'
name: 'string'
secrets: [
{
path: 'string'
secretRef: 'string'
}
]
storageName: 'string'
storageType: 'string'
}
]
}
workloadProfileName: 'string'
}
tags: {
{customized property}: 'string'
}
}
Valores de propiedad
Configuración
Nombre | Descripción | Valor |
---|---|---|
activeRevisionsMode | ActiveRevisionsMode controla cómo se controlan las revisiones activas para la aplicación contenedora: <lista><elemento>Multiple: se pueden activar varias revisiones.</item><elemento>Single: solo se puede activar una revisión a la vez. Los pesos de revisión no se pueden usar en este modo. Si no se proporciona ningún valor, este es el valor predeterminado.</item></list> |
"Múltiplo" 'Single' |
dapr | Configuración de Dapr para la aplicación contenedora. | Dapr |
ingreso | Configuraciones de entrada. | de entrada de |
maxInactiveRevisions | Opcional. Las revisiones inactivas máximas que puede tener una aplicación contenedora. | Int |
Registros | Recopilación de credenciales de registro de contenedor privado para contenedores usados por la aplicación contenedora | RegistryCredentials[] |
Secretos | Colección de secretos usados por una aplicación contenedora | secreto[] |
servicio | Aplicación contenedora para ser una instancia de Container App Service de desarrollo | Service |
Contenedor
Nombre | Descripción | Valor |
---|---|---|
args | Argumentos de comando de inicio de contenedor. | string[] |
mandar | Comando container start. | string[] |
Env | Variables de entorno de contenedor. | EnvironmentVar[] |
imagen | Etiqueta de imagen de contenedor. | cuerda |
nombre | Nombre de contenedor personalizado. | cuerda |
Sondas | Lista de sondeos para el contenedor. | |
Recursos | Requisitos de recursos de contenedor. | containerResources de |
volumeMounts | Montajes de volúmenes de contenedor. | VolumeMount[] |
ContainerAppProbe
Nombre | Descripción | Valor |
---|---|---|
failureThreshold | Se han producido errores consecutivos mínimos para que el sondeo se considere erróneo después de haber realizado correctamente. El valor predeterminado es 3. El valor mínimo es 1. El valor máximo es 10. | Int |
httpGet | HTTPGet especifica la solicitud HTTP que se va a realizar. | ContainerAppProbeHttpGet |
initialDelaySeconds | Número de segundos después de que se haya iniciado el contenedor antes de iniciar los sondeos de ejecución. El valor mínimo es 1. El valor máximo es 60. | Int |
periodSeconds | Frecuencia (en segundos) para realizar el sondeo. El valor predeterminado es de 10 segundos. El valor mínimo es 1. El valor máximo es 240. | Int |
successThreshold | Número mínimo de éxitos consecutivos para que el sondeo se considere correcto después de haber producido un error. El valor predeterminado es 1. Debe ser 1 para la vida y el inicio. El valor mínimo es 1. El valor máximo es 10. | Int |
tcpSocket | TCPSocket especifica una acción que implica un puerto TCP. Todavía no se admiten enlaces TCP. | containerAppProbeTcpSocket |
terminationGracePeriodSeconds | Duración opcional en segundos, el pod debe finalizar correctamente tras un error de sondeo. El período de gracia es la duración en segundos después de que los procesos que se ejecutan en el pod se envíen una señal de terminación y el tiempo en que los procesos se detengan forzadamente con una señal de eliminación. Establezca este valor más largo que el tiempo de limpieza esperado para el proceso. Si este valor es nulo, se usará la terminación del podGracePeriodSeconds. De lo contrario, este valor invalida el valor proporcionado por la especificación de pod. El valor debe ser entero no negativo. El valor cero indica que se detiene inmediatamente a través de la señal de eliminación (sin oportunidad de apagar). Se trata de un campo alfa y requiere habilitar la puerta de características ProbeTerminationGracePeriod. El valor máximo es de 3600 segundos (1 hora) | Int |
timeoutSeconds | Número de segundos después del cual el sondeo agota el tiempo de espera. El valor predeterminado es 1 segundo. El valor mínimo es 1. El valor máximo es 240. | Int |
tipo | Tipo de sondeo. | "Liveness" "Preparación" 'Inicio' |
ContainerAppProbeHttpGet
Nombre | Descripción | Valor |
---|---|---|
anfitrión | Nombre de host al que conectarse, el valor predeterminado es la dirección IP del pod. Probablemente quiera establecer "Host" en httpHeaders en su lugar. | cuerda |
httpHeaders | Encabezados personalizados que se van a establecer en la solicitud. HTTP permite encabezados repetidos. | ContainerAppProbeHttpGetHttpHeadersItem[] |
camino | Ruta de acceso al acceso en el servidor HTTP. | cuerda |
puerto | Nombre o número del puerto al que se va a acceder en el contenedor. El número debe estar en el intervalo de 1 a 65535. El nombre debe ser un IANA_SVC_NAME. | int (obligatorio) |
esquema | Esquema que se va a usar para conectarse al host. El valor predeterminado es HTTP. | 'HTTP' 'HTTPS' |
ContainerAppProbeHttpGetHttpHeadersItem
Nombre | Descripción | Valor |
---|---|---|
nombre | Nombre del campo de encabezado | string (obligatorio) |
valor | Valor del campo de encabezado | string (obligatorio) |
ContainerAppProbeTcpSocket
Nombre | Descripción | Valor |
---|---|---|
anfitrión | Opcional: nombre de host al que conectarse, el valor predeterminado es la dirección IP del pod. | cuerda |
puerto | Número o nombre del puerto al que se va a acceder en el contenedor. El número debe estar en el intervalo de 1 a 65535. El nombre debe ser un IANA_SVC_NAME. | int (obligatorio) |
ContainerAppProperties
Nombre | Descripción | Valor |
---|---|---|
configuración | Propiedades de configuración de la aplicación contenedora sin control de versiones. | configuración de |
environmentId | Identificador de recurso del entorno. | cuerda |
managedEnvironmentId | Obsolescente. Identificador de recurso del entorno de la aplicación contenedora. | cuerda |
plantilla | Definición de aplicación con versión de aplicación contenedora. | de plantilla de |
workloadProfileName | Nombre del perfil de carga de trabajo que se va a anclar para la ejecución de la aplicación contenedora. | cuerda |
ContainerResources
Nombre | Descripción | Valor |
---|---|---|
CPU | CPU necesaria en núcleos, por ejemplo, 0,5 | Int |
memoria | Memoria necesaria, por ejemplo, "250 Mb" | cuerda |
CorsPolicy
Nombre | Descripción | Valor |
---|---|---|
allowCredentials | Especifica si el recurso permite las credenciales. | Bool |
allowedHeaders | Especifica el contenido del encabezado access-control-allow-headers. | string[] |
allowedMethods | Especifica el contenido del encabezado access-control-allow-methods. | string[] |
allowedOrigins | Especifica el contenido del encabezado access-control-allow-origins. | string[] (obligatorio) |
exposeHeaders | Especifica el contenido del encabezado access-control-expose-headers. | string[] |
maxAge | Especifica el contenido del encabezado access-control-max-age. | Int |
CustomDomain
Nombre | Descripción | Valor |
---|---|---|
bindingType | Tipo de enlace dominio personalizado. | 'Deshabilitado' 'SniEnabled' |
certificateId | Identificador de recurso del certificado que se va a enlazar a este nombre de host. Debe existir en el entorno administrado. | cuerda |
nombre | Nombre de host. | string (obligatorio) |
CustomScaleRule
Nombre | Descripción | Valor |
---|---|---|
Auth | Secretos de autenticación para la regla de escalado personalizada. | scaleRuleAuth[] |
metadatos | Propiedades de metadatos para describir la regla de escalado personalizada. | CustomScaleRuleMetadata |
tipo | Tipo de la regla de escalado personalizada por ejemplo: azure-servicebus, redis etcetera. |
cuerda |
CustomScaleRuleMetadata
Nombre | Descripción | Valor |
---|
Dapr
Nombre | Descripción | Valor |
---|---|---|
appId | Identificador de aplicación dapr | cuerda |
appPort | Indica a Dapr en qué puerto escucha la aplicación. | Int |
appProtocol | Indica a Dapr qué protocolo usa la aplicación. Las opciones válidas son http y grpc. El valor predeterminado es http | 'grpc' 'http' |
enableApiLogging | Habilita el registro de API para el sidecar de Dapr | Bool |
Habilitado | Boolean que indica si el coche lateral dapr está habilitado | Bool |
httpMaxRequestSize | Aumento del tamaño máximo del parámetro http y grpc server del cuerpo de la solicitud en MB para controlar la carga de archivos grandes. El valor predeterminado es de 4 MB. | Int |
httpReadBufferSize | Tamaño máximo de dapr del búfer de lectura de encabezado http en KB para controlar al enviar encabezados de varios KB. El valor predeterminado es 65 KB. | Int |
logLevel | Establece el nivel de registro del sidecar de Dapr. Los valores permitidos son debug, info, warn, error. El valor predeterminado es info. | "depurar" 'error' 'info' "advertir" |
EnvironmentVar
Nombre | Descripción | Valor |
---|---|---|
nombre | Nombre de la variable de entorno. | cuerda |
secretRef | Nombre del secreto de aplicación contenedora del que se va a extraer el valor de la variable de entorno. | cuerda |
valor | Valor de variable de entorno no secreto. | cuerda |
ExtendedLocation
Nombre | Descripción | Valor |
---|---|---|
nombre | Nombre de la ubicación extendida. | cuerda |
tipo | Tipo de la ubicación extendida. | 'CustomLocation' |
HttpScaleRule
Nombre | Descripción | Valor |
---|---|---|
Auth | Secretos de autenticación para la regla de escalado personalizada. | scaleRuleAuth[] |
metadatos | Propiedades de metadatos para describir la regla de escalado http. | HttpScaleRuleMetadata |
HttpScaleRuleMetadata
Nombre | Descripción | Valor |
---|
Ingreso
Nombre | Descripción | Valor |
---|---|---|
additionalPortMappings | Configuración para exponer puertos adicionales en la aplicación contenedora | ingressPortMapping[] |
allowInsecure | Bool que indica si se permiten conexiones HTTP a . Si se establece en conexiones HTTP falsas se redirige automáticamente a conexiones HTTPS. | Bool |
clientCertificateMode | Modo de certificado de cliente para la autenticación mTLS. Omitir indica que el servidor quita el certificado de cliente al reenviar. Accept indica que el servidor reenvía el certificado de cliente, pero no requiere un certificado de cliente. Requerir indica que el servidor requiere un certificado de cliente. | 'accept' 'ignore' 'require' |
corsPolicy | Directiva de CORS para la aplicación contenedora | CorsPolicy |
customDomains | enlaces de dominio personalizados para los nombres de host de Container Apps. | CustomDomain [] |
exposedPort | Puerto expuesto en contenedores para el tráfico TCP desde la entrada | Int |
externo | Bool que indica si la aplicación expone un punto de conexión HTTP externo | Bool |
ipSecurityRestrictions | Reglas para restringir la dirección IP entrante. | ipSecurityRestrictionRule[] |
stickySessions | Sesiones permanentes para el modo de revisión única | ingressStickySessions |
targetPort | Puerto de destino en contenedores para el tráfico desde la entrada | Int |
tráfico | Pesos de tráfico para las revisiones de la aplicación | TrafficWeight[] |
transporte | Protocolo de transporte de entrada | 'auto' 'http' 'http2' 'tcp' |
EntradaPortMapping
Nombre | Descripción | Valor |
---|---|---|
exposedPort | Especifica el puerto expuesto para el puerto de destino. Si no se especifica, el valor predeterminado es el puerto de destino. | Int |
externo | Especifica si el puerto de la aplicación es accesible fuera del entorno. | bool (obligatorio) |
targetPort | Especifica la escucha del contenedor del usuario del puerto en | int (obligatorio) |
IngressStickySessions
Nombre | Descripción | Valor |
---|---|---|
afinidad | Afinidad de sesión pegajosa | 'none' 'sticky' |
InitContainer
Nombre | Descripción | Valor |
---|---|---|
args | Argumentos de comando de inicio de contenedor. | string[] |
mandar | Comando container start. | string[] |
Env | Variables de entorno de contenedor. | EnvironmentVar[] |
imagen | Etiqueta de imagen de contenedor. | cuerda |
nombre | Nombre de contenedor personalizado. | cuerda |
Recursos | Requisitos de recursos de contenedor. | containerResources de |
volumeMounts | Montajes de volúmenes de contenedor. | VolumeMount[] |
IpSecurityRestrictionRule
Nombre | Descripción | Valor |
---|---|---|
acción | Permitir o denegar reglas para determinar la dirección IP entrante. Nota: Las reglas solo pueden constar de ALL Allow o ALL Deny | 'Permitir' 'Deny' (obligatorio) |
descripción | Describir la regla de restricción de IP que se envía a la aplicación contenedora. Se trata de un campo opcional. | cuerda |
ipAddressRange | Notación CIDR para que coincida con la dirección IP entrante | string (obligatorio) |
nombre | Nombre de la regla de restricción de IP. | string (obligatorio) |
ManagedServiceIdentity
Microsoft.App/containerApps
Nombre | Descripción | Valor |
---|---|---|
extendedLocation | Tipo complejo de la ubicación extendida. | ExtendedLocation |
identidad | identidades administradas para que la aplicación contenedora interactúe con otros servicios de Azure sin mantener secretos ni credenciales en el código. | managedServiceIdentity |
ubicación | Ubicación geográfica donde reside el recurso | string (obligatorio) |
managedBy | Identificador de recurso completo del recurso que administra este recurso. Indica si otro recurso de Azure administra este recurso. Si está presente, la implementación del modo completo no eliminará el recurso si se quita de la plantilla, ya que otro recurso lo administra. | cuerda |
nombre | El nombre del recurso | string (obligatorio) |
Propiedades | Propiedades específicas del recurso ContainerApp | ContainerAppProperties |
Etiquetas | Etiquetas de recursos | Diccionario de nombres y valores de etiqueta. Consulte etiquetas de en plantillas |
QueueScaleRule
Nombre | Descripción | Valor |
---|---|---|
Auth | Secretos de autenticación para la regla de escalado de colas. | scaleRuleAuth[] |
queueLength | Longitud de la cola. | Int |
queueName | Nombre de la cola. | cuerda |
RegistryCredentials
Nombre | Descripción | Valor |
---|---|---|
identidad | Una identidad administrada que se va a usar para autenticarse con Azure Container Registry. En el caso de las identidades asignadas por el usuario, use el identificador de recurso de identidad asignado por el usuario completo. En el caso de las identidades asignadas por el sistema, use "system" | cuerda |
passwordSecretRef | Nombre del secreto que contiene la contraseña de inicio de sesión del Registro | cuerda |
servidor | Container Registry Server | cuerda |
nombre de usuario | Nombre de usuario de Container Registry | cuerda |
Escama
ScaleRule
ScaleRuleAuth
Nombre | Descripción | Valor |
---|---|---|
secretRef | Nombre del secreto del que se va a extraer los parámetros de autenticación. | cuerda |
triggerParameter | Parámetro de desencadenador que usa el secreto | cuerda |
Secreto
Nombre | Descripción | Valor |
---|---|---|
identidad | Identificador de recurso de una identidad administrada para autenticarse con Azure Key Vault o sistema para usar una identidad asignada por el sistema. | cuerda |
keyVaultUrl | Dirección URL de Azure Key Vault que apunta al secreto al que hace referencia la aplicación contenedora. | cuerda |
nombre | Nombre del secreto. | cuerda |
valor | Valor secreto. | cuerda Restricciones: Valor confidencial. Pase como parámetro seguro. |
SecretVolumeItem
Nombre | Descripción | Valor |
---|---|---|
camino | Ruta de acceso al secreto del proyecto al que. Si no se proporciona ninguna ruta de acceso, la ruta de acceso tiene como valor predeterminado el nombre del secreto enumerado en secretRef. | cuerda |
secretRef | Nombre del secreto de la aplicación contenedora del que se va a extraer el valor del secreto. | cuerda |
Servicio
Nombre | Descripción | Valor |
---|---|---|
tipo | Tipo de servicio Dev ContainerApp | string (obligatorio) |
ServiceBind
Nombre | Descripción | Valor |
---|---|---|
nombre | Nombre del enlace de servicio | cuerda |
serviceId | Identificador de recurso del servicio de destino | cuerda |
TcpScaleRule
Nombre | Descripción | Valor |
---|---|---|
Auth | Secretos de autenticación para la regla de escalado tcp. | scaleRuleAuth[] |
metadatos | Propiedades de metadatos para describir la regla de escalado tcp. | TcpScaleRuleMetadata |
TcpScaleRuleMetadata
Nombre | Descripción | Valor |
---|
Plantilla
Nombre | Descripción | Valor |
---|---|---|
recipientes | Lista de definiciones de contenedor para la aplicación contenedora. | container[] |
initContainers | Lista de contenedores especializados que se ejecutan antes de los contenedores de aplicaciones. | initContainer[] |
revisionSuffix | Sufijo descriptivo que se anexa al nombre de revisión | cuerda |
escama | Propiedades de escalado de la aplicación contenedora. | Escala |
serviceBinds | Lista de servicios de aplicaciones de contenedor enlazados a la aplicación | ServiceBind[] |
terminationGracePeriodSeconds | Duración opcional en segundos que la instancia de la aplicación contenedora debe finalizar correctamente. El valor debe ser entero no negativo. El valor cero indica que se detiene inmediatamente a través de la señal de eliminación (sin oportunidad de apagar). Si este valor es nulo, se usará en su lugar el período de gracia predeterminado. Establezca este valor más largo que el tiempo de limpieza esperado para el proceso. El valor predeterminado es de 30 segundos. | Int |
Volúmenes | Lista de definiciones de volumen para la aplicación contenedora. | volumen[] |
TrackedResourceTags
Nombre | Descripción | Valor |
---|
TrafficWeight
Nombre | Descripción | Valor |
---|---|---|
etiqueta | Asocia una etiqueta de tráfico a una revisión | cuerda |
latestRevision | Indica que el peso del tráfico pertenece a una revisión estable más reciente. | Bool |
revisionName | Nombre de una revisión | cuerda |
peso | Peso del tráfico asignado a una revisión | Int |
UserAssignedIdentities
Nombre | Descripción | Valor |
---|
UserAssignedIdentity
Nombre | Descripción | Valor |
---|
Volumen
Nombre | Descripción | Valor |
---|---|---|
mountOptions | Opciones de montaje usadas durante el montaje de AzureFile. Debe ser una cadena separada por comas. | cuerda |
nombre | Nombre del volumen. | cuerda |
Secretos | Lista de secretos que se van a agregar en el volumen. Si no se proporciona ningún secreto, todos los secretos de la colección se agregarán al volumen. | secretVolumeItem[] |
storageName | Nombre del recurso de almacenamiento. No es necesario proporcionar EmptyDir y Secret. | cuerda |
storageType | Tipo de almacenamiento para el volumen. Si no se proporciona, use EmptyDir. | "AzureFile" 'EmptyDir' 'Secreto' |
VolumeMount
Nombre | Descripción | Valor |
---|---|---|
mountPath | Ruta de acceso dentro del contenedor en el que se debe montar el volumen. No debe contener ':'. | cuerda |
subPath | Ruta de acceso dentro del volumen desde el que se debe montar el volumen del contenedor. El valor predeterminado es "" (raíz del volumen). | cuerda |
volumeName | Debe coincidir con el nombre de un volumen. | cuerda |
Ejemplos de inicio rápido
En los ejemplos de inicio rápido siguientes se implementa este tipo de recurso.
Archivo de Bicep | Descripción |
---|---|
crea una aplicación de contenedor y un entorno con del Registro | Cree un entorno de aplicación de contenedor con una aplicación de contenedor básica desde una instancia de Azure Container Registry. También implementa un área de trabajo de Log Analytics para almacenar registros. |
Crea una aplicación contenedora con una regla de escalado HTTP definida | Cree un entorno de aplicación de contenedor con una aplicación de contenedor básica que se escale en función del tráfico HTTP. |
Crea una aplicación contenedora en un entorno de aplicación de contenedor | Cree un entorno de aplicación de contenedor con una aplicación de contenedor básica. También implementa un área de trabajo de Log Analytics para almacenar registros. |
Crea una aplicación de microservicios Dapr mediante Container Apps | Cree una aplicación de microservicios de Dapr mediante Container Apps. |
Crea una aplicación dapr pub-sub servicebus mediante Container Apps | Cree una aplicación pub-sub servicebus de Dapr mediante Container Apps. |
Crea una aplicación de contenedor con un entorno de aplicación de contenedor | Cree un entorno de aplicación de contenedor con una aplicación contenedora básica. También implementa un área de trabajo de Log Analytics para almacenar registros. |
Crea un entorno de aplicación de contenedor externo con una de red virtual | Crea un entorno de aplicación de contenedor externo con una red virtual. |
Crea un entorno de aplicación de contenedor interno con una red virtual | Crea un entorno de aplicación de contenedor interno con una red virtual. |
Definición de recursos de plantilla de ARM
El tipo de recurso containerApps se puede implementar con operaciones destinadas a:
- grupos de recursos: consulte comandos de implementación de grupos de recursos
Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.
Formato de recurso
Para crear un recurso de Microsoft.App/containerApps, agregue el siguiente JSON a la plantilla.
{
"type": "Microsoft.App/containerApps",
"apiVersion": "2024-03-01",
"name": "string",
"extendedLocation": {
"name": "string",
"type": "string"
},
"identity": {
"type": "string",
"userAssignedIdentities": {
"{customized property}": {
}
}
},
"location": "string",
"managedBy": "string",
"properties": {
"configuration": {
"activeRevisionsMode": "string",
"dapr": {
"appId": "string",
"appPort": "int",
"appProtocol": "string",
"enableApiLogging": "bool",
"enabled": "bool",
"httpMaxRequestSize": "int",
"httpReadBufferSize": "int",
"logLevel": "string"
},
"ingress": {
"additionalPortMappings": [
{
"exposedPort": "int",
"external": "bool",
"targetPort": "int"
}
],
"allowInsecure": "bool",
"clientCertificateMode": "string",
"corsPolicy": {
"allowCredentials": "bool",
"allowedHeaders": [ "string" ],
"allowedMethods": [ "string" ],
"allowedOrigins": [ "string" ],
"exposeHeaders": [ "string" ],
"maxAge": "int"
},
"customDomains": [
{
"bindingType": "string",
"certificateId": "string",
"name": "string"
}
],
"exposedPort": "int",
"external": "bool",
"ipSecurityRestrictions": [
{
"action": "string",
"description": "string",
"ipAddressRange": "string",
"name": "string"
}
],
"stickySessions": {
"affinity": "string"
},
"targetPort": "int",
"traffic": [
{
"label": "string",
"latestRevision": "bool",
"revisionName": "string",
"weight": "int"
}
],
"transport": "string"
},
"maxInactiveRevisions": "int",
"registries": [
{
"identity": "string",
"passwordSecretRef": "string",
"server": "string",
"username": "string"
}
],
"secrets": [
{
"identity": "string",
"keyVaultUrl": "string",
"name": "string",
"value": "string"
}
],
"service": {
"type": "string"
}
},
"environmentId": "string",
"managedEnvironmentId": "string",
"template": {
"containers": [
{
"args": [ "string" ],
"command": [ "string" ],
"env": [
{
"name": "string",
"secretRef": "string",
"value": "string"
}
],
"image": "string",
"name": "string",
"probes": [
{
"failureThreshold": "int",
"httpGet": {
"host": "string",
"httpHeaders": [
{
"name": "string",
"value": "string"
}
],
"path": "string",
"port": "int",
"scheme": "string"
},
"initialDelaySeconds": "int",
"periodSeconds": "int",
"successThreshold": "int",
"tcpSocket": {
"host": "string",
"port": "int"
},
"terminationGracePeriodSeconds": "int",
"timeoutSeconds": "int",
"type": "string"
}
],
"resources": {
"cpu": "int",
"memory": "string"
},
"volumeMounts": [
{
"mountPath": "string",
"subPath": "string",
"volumeName": "string"
}
]
}
],
"initContainers": [
{
"args": [ "string" ],
"command": [ "string" ],
"env": [
{
"name": "string",
"secretRef": "string",
"value": "string"
}
],
"image": "string",
"name": "string",
"resources": {
"cpu": "int",
"memory": "string"
},
"volumeMounts": [
{
"mountPath": "string",
"subPath": "string",
"volumeName": "string"
}
]
}
],
"revisionSuffix": "string",
"scale": {
"maxReplicas": "int",
"minReplicas": "int",
"rules": [
{
"azureQueue": {
"auth": [
{
"secretRef": "string",
"triggerParameter": "string"
}
],
"queueLength": "int",
"queueName": "string"
},
"custom": {
"auth": [
{
"secretRef": "string",
"triggerParameter": "string"
}
],
"metadata": {
"{customized property}": "string"
},
"type": "string"
},
"http": {
"auth": [
{
"secretRef": "string",
"triggerParameter": "string"
}
],
"metadata": {
"{customized property}": "string"
}
},
"name": "string",
"tcp": {
"auth": [
{
"secretRef": "string",
"triggerParameter": "string"
}
],
"metadata": {
"{customized property}": "string"
}
}
}
]
},
"serviceBinds": [
{
"name": "string",
"serviceId": "string"
}
],
"terminationGracePeriodSeconds": "int",
"volumes": [
{
"mountOptions": "string",
"name": "string",
"secrets": [
{
"path": "string",
"secretRef": "string"
}
],
"storageName": "string",
"storageType": "string"
}
]
},
"workloadProfileName": "string"
},
"tags": {
"{customized property}": "string"
}
}
Valores de propiedad
Configuración
Nombre | Descripción | Valor |
---|---|---|
activeRevisionsMode | ActiveRevisionsMode controla cómo se controlan las revisiones activas para la aplicación contenedora: <lista><elemento>Multiple: se pueden activar varias revisiones.</item><elemento>Single: solo se puede activar una revisión a la vez. Los pesos de revisión no se pueden usar en este modo. Si no se proporciona ningún valor, este es el valor predeterminado.</item></list> |
"Múltiplo" 'Single' |
dapr | Configuración de Dapr para la aplicación contenedora. | Dapr |
ingreso | Configuraciones de entrada. | de entrada de |
maxInactiveRevisions | Opcional. Las revisiones inactivas máximas que puede tener una aplicación contenedora. | Int |
Registros | Recopilación de credenciales de registro de contenedor privado para contenedores usados por la aplicación contenedora | RegistryCredentials[] |
Secretos | Colección de secretos usados por una aplicación contenedora | secreto[] |
servicio | Aplicación contenedora para ser una instancia de Container App Service de desarrollo | Service |
Contenedor
Nombre | Descripción | Valor |
---|---|---|
args | Argumentos de comando de inicio de contenedor. | string[] |
mandar | Comando container start. | string[] |
Env | Variables de entorno de contenedor. | EnvironmentVar[] |
imagen | Etiqueta de imagen de contenedor. | cuerda |
nombre | Nombre de contenedor personalizado. | cuerda |
Sondas | Lista de sondeos para el contenedor. | |
Recursos | Requisitos de recursos de contenedor. | containerResources de |
volumeMounts | Montajes de volúmenes de contenedor. | VolumeMount[] |
ContainerAppProbe
Nombre | Descripción | Valor |
---|---|---|
failureThreshold | Se han producido errores consecutivos mínimos para que el sondeo se considere erróneo después de haber realizado correctamente. El valor predeterminado es 3. El valor mínimo es 1. El valor máximo es 10. | Int |
httpGet | HTTPGet especifica la solicitud HTTP que se va a realizar. | ContainerAppProbeHttpGet |
initialDelaySeconds | Número de segundos después de que se haya iniciado el contenedor antes de iniciar los sondeos de ejecución. El valor mínimo es 1. El valor máximo es 60. | Int |
periodSeconds | Frecuencia (en segundos) para realizar el sondeo. El valor predeterminado es de 10 segundos. El valor mínimo es 1. El valor máximo es 240. | Int |
successThreshold | Número mínimo de éxitos consecutivos para que el sondeo se considere correcto después de haber producido un error. El valor predeterminado es 1. Debe ser 1 para la vida y el inicio. El valor mínimo es 1. El valor máximo es 10. | Int |
tcpSocket | TCPSocket especifica una acción que implica un puerto TCP. Todavía no se admiten enlaces TCP. | containerAppProbeTcpSocket |
terminationGracePeriodSeconds | Duración opcional en segundos, el pod debe finalizar correctamente tras un error de sondeo. El período de gracia es la duración en segundos después de que los procesos que se ejecutan en el pod se envíen una señal de terminación y el tiempo en que los procesos se detengan forzadamente con una señal de eliminación. Establezca este valor más largo que el tiempo de limpieza esperado para el proceso. Si este valor es nulo, se usará la terminación del podGracePeriodSeconds. De lo contrario, este valor invalida el valor proporcionado por la especificación de pod. El valor debe ser entero no negativo. El valor cero indica que se detiene inmediatamente a través de la señal de eliminación (sin oportunidad de apagar). Se trata de un campo alfa y requiere habilitar la puerta de características ProbeTerminationGracePeriod. El valor máximo es de 3600 segundos (1 hora) | Int |
timeoutSeconds | Número de segundos después del cual el sondeo agota el tiempo de espera. El valor predeterminado es 1 segundo. El valor mínimo es 1. El valor máximo es 240. | Int |
tipo | Tipo de sondeo. | "Liveness" "Preparación" 'Inicio' |
ContainerAppProbeHttpGet
Nombre | Descripción | Valor |
---|---|---|
anfitrión | Nombre de host al que conectarse, el valor predeterminado es la dirección IP del pod. Probablemente quiera establecer "Host" en httpHeaders en su lugar. | cuerda |
httpHeaders | Encabezados personalizados que se van a establecer en la solicitud. HTTP permite encabezados repetidos. | ContainerAppProbeHttpGetHttpHeadersItem[] |
camino | Ruta de acceso al acceso en el servidor HTTP. | cuerda |
puerto | Nombre o número del puerto al que se va a acceder en el contenedor. El número debe estar en el intervalo de 1 a 65535. El nombre debe ser un IANA_SVC_NAME. | int (obligatorio) |
esquema | Esquema que se va a usar para conectarse al host. El valor predeterminado es HTTP. | 'HTTP' 'HTTPS' |
ContainerAppProbeHttpGetHttpHeadersItem
Nombre | Descripción | Valor |
---|---|---|
nombre | Nombre del campo de encabezado | string (obligatorio) |
valor | Valor del campo de encabezado | string (obligatorio) |
ContainerAppProbeTcpSocket
Nombre | Descripción | Valor |
---|---|---|
anfitrión | Opcional: nombre de host al que conectarse, el valor predeterminado es la dirección IP del pod. | cuerda |
puerto | Número o nombre del puerto al que se va a acceder en el contenedor. El número debe estar en el intervalo de 1 a 65535. El nombre debe ser un IANA_SVC_NAME. | int (obligatorio) |
ContainerAppProperties
Nombre | Descripción | Valor |
---|---|---|
configuración | Propiedades de configuración de la aplicación contenedora sin control de versiones. | configuración de |
environmentId | Identificador de recurso del entorno. | cuerda |
managedEnvironmentId | Obsolescente. Identificador de recurso del entorno de la aplicación contenedora. | cuerda |
plantilla | Definición de aplicación con versión de aplicación contenedora. | de plantilla de |
workloadProfileName | Nombre del perfil de carga de trabajo que se va a anclar para la ejecución de la aplicación contenedora. | cuerda |
ContainerResources
Nombre | Descripción | Valor |
---|---|---|
CPU | CPU necesaria en núcleos, por ejemplo, 0,5 | Int |
memoria | Memoria necesaria, por ejemplo, "250 Mb" | cuerda |
CorsPolicy
Nombre | Descripción | Valor |
---|---|---|
allowCredentials | Especifica si el recurso permite las credenciales. | Bool |
allowedHeaders | Especifica el contenido del encabezado access-control-allow-headers. | string[] |
allowedMethods | Especifica el contenido del encabezado access-control-allow-methods. | string[] |
allowedOrigins | Especifica el contenido del encabezado access-control-allow-origins. | string[] (obligatorio) |
exposeHeaders | Especifica el contenido del encabezado access-control-expose-headers. | string[] |
maxAge | Especifica el contenido del encabezado access-control-max-age. | Int |
CustomDomain
Nombre | Descripción | Valor |
---|---|---|
bindingType | Tipo de enlace dominio personalizado. | 'Deshabilitado' 'SniEnabled' |
certificateId | Identificador de recurso del certificado que se va a enlazar a este nombre de host. Debe existir en el entorno administrado. | cuerda |
nombre | Nombre de host. | string (obligatorio) |
CustomScaleRule
Nombre | Descripción | Valor |
---|---|---|
Auth | Secretos de autenticación para la regla de escalado personalizada. | scaleRuleAuth[] |
metadatos | Propiedades de metadatos para describir la regla de escalado personalizada. | CustomScaleRuleMetadata |
tipo | Tipo de la regla de escalado personalizada por ejemplo: azure-servicebus, redis etcetera. |
cuerda |
CustomScaleRuleMetadata
Nombre | Descripción | Valor |
---|
Dapr
Nombre | Descripción | Valor |
---|---|---|
appId | Identificador de aplicación dapr | cuerda |
appPort | Indica a Dapr en qué puerto escucha la aplicación. | Int |
appProtocol | Indica a Dapr qué protocolo usa la aplicación. Las opciones válidas son http y grpc. El valor predeterminado es http | 'grpc' 'http' |
enableApiLogging | Habilita el registro de API para el sidecar de Dapr | Bool |
Habilitado | Boolean que indica si el coche lateral dapr está habilitado | Bool |
httpMaxRequestSize | Aumento del tamaño máximo del parámetro http y grpc server del cuerpo de la solicitud en MB para controlar la carga de archivos grandes. El valor predeterminado es de 4 MB. | Int |
httpReadBufferSize | Tamaño máximo de dapr del búfer de lectura de encabezado http en KB para controlar al enviar encabezados de varios KB. El valor predeterminado es 65 KB. | Int |
logLevel | Establece el nivel de registro del sidecar de Dapr. Los valores permitidos son debug, info, warn, error. El valor predeterminado es info. | "depurar" 'error' 'info' "advertir" |
EnvironmentVar
Nombre | Descripción | Valor |
---|---|---|
nombre | Nombre de la variable de entorno. | cuerda |
secretRef | Nombre del secreto de aplicación contenedora del que se va a extraer el valor de la variable de entorno. | cuerda |
valor | Valor de variable de entorno no secreto. | cuerda |
ExtendedLocation
Nombre | Descripción | Valor |
---|---|---|
nombre | Nombre de la ubicación extendida. | cuerda |
tipo | Tipo de la ubicación extendida. | 'CustomLocation' |
HttpScaleRule
Nombre | Descripción | Valor |
---|---|---|
Auth | Secretos de autenticación para la regla de escalado personalizada. | scaleRuleAuth[] |
metadatos | Propiedades de metadatos para describir la regla de escalado http. | HttpScaleRuleMetadata |
HttpScaleRuleMetadata
Nombre | Descripción | Valor |
---|
Ingreso
Nombre | Descripción | Valor |
---|---|---|
additionalPortMappings | Configuración para exponer puertos adicionales en la aplicación contenedora | ingressPortMapping[] |
allowInsecure | Bool que indica si se permiten conexiones HTTP a . Si se establece en conexiones HTTP falsas se redirige automáticamente a conexiones HTTPS. | Bool |
clientCertificateMode | Modo de certificado de cliente para la autenticación mTLS. Omitir indica que el servidor quita el certificado de cliente al reenviar. Accept indica que el servidor reenvía el certificado de cliente, pero no requiere un certificado de cliente. Requerir indica que el servidor requiere un certificado de cliente. | 'accept' 'ignore' 'require' |
corsPolicy | Directiva de CORS para la aplicación contenedora | CorsPolicy |
customDomains | enlaces de dominio personalizados para los nombres de host de Container Apps. | CustomDomain [] |
exposedPort | Puerto expuesto en contenedores para el tráfico TCP desde la entrada | Int |
externo | Bool que indica si la aplicación expone un punto de conexión HTTP externo | Bool |
ipSecurityRestrictions | Reglas para restringir la dirección IP entrante. | ipSecurityRestrictionRule[] |
stickySessions | Sesiones permanentes para el modo de revisión única | ingressStickySessions |
targetPort | Puerto de destino en contenedores para el tráfico desde la entrada | Int |
tráfico | Pesos de tráfico para las revisiones de la aplicación | TrafficWeight[] |
transporte | Protocolo de transporte de entrada | 'auto' 'http' 'http2' 'tcp' |
EntradaPortMapping
Nombre | Descripción | Valor |
---|---|---|
exposedPort | Especifica el puerto expuesto para el puerto de destino. Si no se especifica, el valor predeterminado es el puerto de destino. | Int |
externo | Especifica si el puerto de la aplicación es accesible fuera del entorno. | bool (obligatorio) |
targetPort | Especifica la escucha del contenedor del usuario del puerto en | int (obligatorio) |
IngressStickySessions
Nombre | Descripción | Valor |
---|---|---|
afinidad | Afinidad de sesión pegajosa | 'none' 'sticky' |
InitContainer
Nombre | Descripción | Valor |
---|---|---|
args | Argumentos de comando de inicio de contenedor. | string[] |
mandar | Comando container start. | string[] |
Env | Variables de entorno de contenedor. | EnvironmentVar[] |
imagen | Etiqueta de imagen de contenedor. | cuerda |
nombre | Nombre de contenedor personalizado. | cuerda |
Recursos | Requisitos de recursos de contenedor. | containerResources de |
volumeMounts | Montajes de volúmenes de contenedor. | VolumeMount[] |
IpSecurityRestrictionRule
Nombre | Descripción | Valor |
---|---|---|
acción | Permitir o denegar reglas para determinar la dirección IP entrante. Nota: Las reglas solo pueden constar de ALL Allow o ALL Deny | 'Permitir' 'Deny' (obligatorio) |
descripción | Describir la regla de restricción de IP que se envía a la aplicación contenedora. Se trata de un campo opcional. | cuerda |
ipAddressRange | Notación CIDR para que coincida con la dirección IP entrante | string (obligatorio) |
nombre | Nombre de la regla de restricción de IP. | string (obligatorio) |
ManagedServiceIdentity
Microsoft.App/containerApps
Nombre | Descripción | Valor |
---|---|---|
apiVersion | La versión de api | '2024-03-01' |
extendedLocation | Tipo complejo de la ubicación extendida. | ExtendedLocation |
identidad | identidades administradas para que la aplicación contenedora interactúe con otros servicios de Azure sin mantener secretos ni credenciales en el código. | managedServiceIdentity |
ubicación | Ubicación geográfica donde reside el recurso | string (obligatorio) |
managedBy | Identificador de recurso completo del recurso que administra este recurso. Indica si otro recurso de Azure administra este recurso. Si está presente, la implementación del modo completo no eliminará el recurso si se quita de la plantilla, ya que otro recurso lo administra. | cuerda |
nombre | El nombre del recurso | string (obligatorio) |
Propiedades | Propiedades específicas del recurso ContainerApp | ContainerAppProperties |
Etiquetas | Etiquetas de recursos | Diccionario de nombres y valores de etiqueta. Consulte etiquetas de en plantillas |
tipo | El tipo de recurso | "Microsoft.App/containerApps" |
QueueScaleRule
Nombre | Descripción | Valor |
---|---|---|
Auth | Secretos de autenticación para la regla de escalado de colas. | scaleRuleAuth[] |
queueLength | Longitud de la cola. | Int |
queueName | Nombre de la cola. | cuerda |
RegistryCredentials
Nombre | Descripción | Valor |
---|---|---|
identidad | Una identidad administrada que se va a usar para autenticarse con Azure Container Registry. En el caso de las identidades asignadas por el usuario, use el identificador de recurso de identidad asignado por el usuario completo. En el caso de las identidades asignadas por el sistema, use "system" | cuerda |
passwordSecretRef | Nombre del secreto que contiene la contraseña de inicio de sesión del Registro | cuerda |
servidor | Container Registry Server | cuerda |
nombre de usuario | Nombre de usuario de Container Registry | cuerda |
Escama
ScaleRule
ScaleRuleAuth
Nombre | Descripción | Valor |
---|---|---|
secretRef | Nombre del secreto del que se va a extraer los parámetros de autenticación. | cuerda |
triggerParameter | Parámetro de desencadenador que usa el secreto | cuerda |
Secreto
Nombre | Descripción | Valor |
---|---|---|
identidad | Identificador de recurso de una identidad administrada para autenticarse con Azure Key Vault o sistema para usar una identidad asignada por el sistema. | cuerda |
keyVaultUrl | Dirección URL de Azure Key Vault que apunta al secreto al que hace referencia la aplicación contenedora. | cuerda |
nombre | Nombre del secreto. | cuerda |
valor | Valor secreto. | cuerda Restricciones: Valor confidencial. Pase como parámetro seguro. |
SecretVolumeItem
Nombre | Descripción | Valor |
---|---|---|
camino | Ruta de acceso al secreto del proyecto al que. Si no se proporciona ninguna ruta de acceso, la ruta de acceso tiene como valor predeterminado el nombre del secreto enumerado en secretRef. | cuerda |
secretRef | Nombre del secreto de la aplicación contenedora del que se va a extraer el valor del secreto. | cuerda |
Servicio
Nombre | Descripción | Valor |
---|---|---|
tipo | Tipo de servicio Dev ContainerApp | string (obligatorio) |
ServiceBind
Nombre | Descripción | Valor |
---|---|---|
nombre | Nombre del enlace de servicio | cuerda |
serviceId | Identificador de recurso del servicio de destino | cuerda |
TcpScaleRule
Nombre | Descripción | Valor |
---|---|---|
Auth | Secretos de autenticación para la regla de escalado tcp. | scaleRuleAuth[] |
metadatos | Propiedades de metadatos para describir la regla de escalado tcp. | TcpScaleRuleMetadata |
TcpScaleRuleMetadata
Nombre | Descripción | Valor |
---|
Plantilla
Nombre | Descripción | Valor |
---|---|---|
recipientes | Lista de definiciones de contenedor para la aplicación contenedora. | container[] |
initContainers | Lista de contenedores especializados que se ejecutan antes de los contenedores de aplicaciones. | initContainer[] |
revisionSuffix | Sufijo descriptivo que se anexa al nombre de revisión | cuerda |
escama | Propiedades de escalado de la aplicación contenedora. | Escala |
serviceBinds | Lista de servicios de aplicaciones de contenedor enlazados a la aplicación | ServiceBind[] |
terminationGracePeriodSeconds | Duración opcional en segundos que la instancia de la aplicación contenedora debe finalizar correctamente. El valor debe ser entero no negativo. El valor cero indica que se detiene inmediatamente a través de la señal de eliminación (sin oportunidad de apagar). Si este valor es nulo, se usará en su lugar el período de gracia predeterminado. Establezca este valor más largo que el tiempo de limpieza esperado para el proceso. El valor predeterminado es de 30 segundos. | Int |
Volúmenes | Lista de definiciones de volumen para la aplicación contenedora. | volumen[] |
TrackedResourceTags
Nombre | Descripción | Valor |
---|
TrafficWeight
Nombre | Descripción | Valor |
---|---|---|
etiqueta | Asocia una etiqueta de tráfico a una revisión | cuerda |
latestRevision | Indica que el peso del tráfico pertenece a una revisión estable más reciente. | Bool |
revisionName | Nombre de una revisión | cuerda |
peso | Peso del tráfico asignado a una revisión | Int |
UserAssignedIdentities
Nombre | Descripción | Valor |
---|
UserAssignedIdentity
Nombre | Descripción | Valor |
---|
Volumen
Nombre | Descripción | Valor |
---|---|---|
mountOptions | Opciones de montaje usadas durante el montaje de AzureFile. Debe ser una cadena separada por comas. | cuerda |
nombre | Nombre del volumen. | cuerda |
Secretos | Lista de secretos que se van a agregar en el volumen. Si no se proporciona ningún secreto, todos los secretos de la colección se agregarán al volumen. | secretVolumeItem[] |
storageName | Nombre del recurso de almacenamiento. No es necesario proporcionar EmptyDir y Secret. | cuerda |
storageType | Tipo de almacenamiento para el volumen. Si no se proporciona, use EmptyDir. | "AzureFile" 'EmptyDir' 'Secreto' |
VolumeMount
Nombre | Descripción | Valor |
---|---|---|
mountPath | Ruta de acceso dentro del contenedor en el que se debe montar el volumen. No debe contener ':'. | cuerda |
subPath | Ruta de acceso dentro del volumen desde el que se debe montar el volumen del contenedor. El valor predeterminado es "" (raíz del volumen). | cuerda |
volumeName | Debe coincidir con el nombre de un volumen. | cuerda |
Plantillas de inicio rápido
Las siguientes plantillas de inicio rápido implementan este tipo de recurso.
Plantilla | Descripción |
---|---|
crea una aplicación de contenedor y un entorno con del Registro |
Cree un entorno de aplicación de contenedor con una aplicación de contenedor básica desde una instancia de Azure Container Registry. También implementa un área de trabajo de Log Analytics para almacenar registros. |
Crea una aplicación contenedora con una regla de escalado HTTP definida |
Cree un entorno de aplicación de contenedor con una aplicación de contenedor básica que se escale en función del tráfico HTTP. |
Crea una aplicación contenedora en un entorno de aplicación de contenedor |
Cree un entorno de aplicación de contenedor con una aplicación de contenedor básica. También implementa un área de trabajo de Log Analytics para almacenar registros. |
Crea una aplicación de microservicios Dapr mediante Container Apps |
Cree una aplicación de microservicios de Dapr mediante Container Apps. |
Crea una aplicación dapr pub-sub servicebus mediante Container Apps |
Cree una aplicación pub-sub servicebus de Dapr mediante Container Apps. |
Crea una aplicación de contenedor con un entorno de aplicación de contenedor |
Cree un entorno de aplicación de contenedor con una aplicación contenedora básica. También implementa un área de trabajo de Log Analytics para almacenar registros. |
Crea un entorno de aplicación de contenedor externo con una de red virtual |
Crea un entorno de aplicación de contenedor externo con una red virtual. |
Crea un entorno de aplicación de contenedor interno con una red virtual |
Crea un entorno de aplicación de contenedor interno con una red virtual. |
Definición de recursos de Terraform (proveedor AzAPI)
El tipo de recurso containerApps se puede implementar con operaciones destinadas a:
- grupos de recursos de
Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.
Formato de recurso
Para crear un recurso de Microsoft.App/containerApps, agregue el siguiente Terraform a la plantilla.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.App/containerApps@2024-03-01"
name = "string"
identity = {
type = "string"
userAssignedIdentities = {
{customized property} = {
}
}
}
location = "string"
managedBy = "string"
tags = {
{customized property} = "string"
}
body = jsonencode({
extendedLocation = {
name = "string"
type = "string"
}
properties = {
configuration = {
activeRevisionsMode = "string"
dapr = {
appId = "string"
appPort = int
appProtocol = "string"
enableApiLogging = bool
enabled = bool
httpMaxRequestSize = int
httpReadBufferSize = int
logLevel = "string"
}
ingress = {
additionalPortMappings = [
{
exposedPort = int
external = bool
targetPort = int
}
]
allowInsecure = bool
clientCertificateMode = "string"
corsPolicy = {
allowCredentials = bool
allowedHeaders = [
"string"
]
allowedMethods = [
"string"
]
allowedOrigins = [
"string"
]
exposeHeaders = [
"string"
]
maxAge = int
}
customDomains = [
{
bindingType = "string"
certificateId = "string"
name = "string"
}
]
exposedPort = int
external = bool
ipSecurityRestrictions = [
{
action = "string"
description = "string"
ipAddressRange = "string"
name = "string"
}
]
stickySessions = {
affinity = "string"
}
targetPort = int
traffic = [
{
label = "string"
latestRevision = bool
revisionName = "string"
weight = int
}
]
transport = "string"
}
maxInactiveRevisions = int
registries = [
{
identity = "string"
passwordSecretRef = "string"
server = "string"
username = "string"
}
]
secrets = [
{
identity = "string"
keyVaultUrl = "string"
name = "string"
value = "string"
}
]
service = {
type = "string"
}
}
environmentId = "string"
managedEnvironmentId = "string"
template = {
containers = [
{
args = [
"string"
]
command = [
"string"
]
env = [
{
name = "string"
secretRef = "string"
value = "string"
}
]
image = "string"
name = "string"
probes = [
{
failureThreshold = int
httpGet = {
host = "string"
httpHeaders = [
{
name = "string"
value = "string"
}
]
path = "string"
port = int
scheme = "string"
}
initialDelaySeconds = int
periodSeconds = int
successThreshold = int
tcpSocket = {
host = "string"
port = int
}
terminationGracePeriodSeconds = int
timeoutSeconds = int
type = "string"
}
]
resources = {
cpu = int
memory = "string"
}
volumeMounts = [
{
mountPath = "string"
subPath = "string"
volumeName = "string"
}
]
}
]
initContainers = [
{
args = [
"string"
]
command = [
"string"
]
env = [
{
name = "string"
secretRef = "string"
value = "string"
}
]
image = "string"
name = "string"
resources = {
cpu = int
memory = "string"
}
volumeMounts = [
{
mountPath = "string"
subPath = "string"
volumeName = "string"
}
]
}
]
revisionSuffix = "string"
scale = {
maxReplicas = int
minReplicas = int
rules = [
{
azureQueue = {
auth = [
{
secretRef = "string"
triggerParameter = "string"
}
]
queueLength = int
queueName = "string"
}
custom = {
auth = [
{
secretRef = "string"
triggerParameter = "string"
}
]
metadata = {
{customized property} = "string"
}
type = "string"
}
http = {
auth = [
{
secretRef = "string"
triggerParameter = "string"
}
]
metadata = {
{customized property} = "string"
}
}
name = "string"
tcp = {
auth = [
{
secretRef = "string"
triggerParameter = "string"
}
]
metadata = {
{customized property} = "string"
}
}
}
]
}
serviceBinds = [
{
name = "string"
serviceId = "string"
}
]
terminationGracePeriodSeconds = int
volumes = [
{
mountOptions = "string"
name = "string"
secrets = [
{
path = "string"
secretRef = "string"
}
]
storageName = "string"
storageType = "string"
}
]
}
workloadProfileName = "string"
}
})
}
Valores de propiedad
Configuración
Nombre | Descripción | Valor |
---|---|---|
activeRevisionsMode | ActiveRevisionsMode controla cómo se controlan las revisiones activas para la aplicación contenedora: <lista><elemento>Multiple: se pueden activar varias revisiones.</item><elemento>Single: solo se puede activar una revisión a la vez. Los pesos de revisión no se pueden usar en este modo. Si no se proporciona ningún valor, este es el valor predeterminado.</item></list> |
"Múltiplo" 'Single' |
dapr | Configuración de Dapr para la aplicación contenedora. | Dapr |
ingreso | Configuraciones de entrada. | de entrada de |
maxInactiveRevisions | Opcional. Las revisiones inactivas máximas que puede tener una aplicación contenedora. | Int |
Registros | Recopilación de credenciales de registro de contenedor privado para contenedores usados por la aplicación contenedora | RegistryCredentials[] |
Secretos | Colección de secretos usados por una aplicación contenedora | secreto[] |
servicio | Aplicación contenedora para ser una instancia de Container App Service de desarrollo | Service |
Contenedor
Nombre | Descripción | Valor |
---|---|---|
args | Argumentos de comando de inicio de contenedor. | string[] |
mandar | Comando container start. | string[] |
Env | Variables de entorno de contenedor. | EnvironmentVar[] |
imagen | Etiqueta de imagen de contenedor. | cuerda |
nombre | Nombre de contenedor personalizado. | cuerda |
Sondas | Lista de sondeos para el contenedor. | |
Recursos | Requisitos de recursos de contenedor. | containerResources de |
volumeMounts | Montajes de volúmenes de contenedor. | VolumeMount[] |
ContainerAppProbe
Nombre | Descripción | Valor |
---|---|---|
failureThreshold | Se han producido errores consecutivos mínimos para que el sondeo se considere erróneo después de haber realizado correctamente. El valor predeterminado es 3. El valor mínimo es 1. El valor máximo es 10. | Int |
httpGet | HTTPGet especifica la solicitud HTTP que se va a realizar. | ContainerAppProbeHttpGet |
initialDelaySeconds | Número de segundos después de que se haya iniciado el contenedor antes de iniciar los sondeos de ejecución. El valor mínimo es 1. El valor máximo es 60. | Int |
periodSeconds | Frecuencia (en segundos) para realizar el sondeo. El valor predeterminado es de 10 segundos. El valor mínimo es 1. El valor máximo es 240. | Int |
successThreshold | Número mínimo de éxitos consecutivos para que el sondeo se considere correcto después de haber producido un error. El valor predeterminado es 1. Debe ser 1 para la vida y el inicio. El valor mínimo es 1. El valor máximo es 10. | Int |
tcpSocket | TCPSocket especifica una acción que implica un puerto TCP. Todavía no se admiten enlaces TCP. | containerAppProbeTcpSocket |
terminationGracePeriodSeconds | Duración opcional en segundos, el pod debe finalizar correctamente tras un error de sondeo. El período de gracia es la duración en segundos después de que los procesos que se ejecutan en el pod se envíen una señal de terminación y el tiempo en que los procesos se detengan forzadamente con una señal de eliminación. Establezca este valor más largo que el tiempo de limpieza esperado para el proceso. Si este valor es nulo, se usará la terminación del podGracePeriodSeconds. De lo contrario, este valor invalida el valor proporcionado por la especificación de pod. El valor debe ser entero no negativo. El valor cero indica que se detiene inmediatamente a través de la señal de eliminación (sin oportunidad de apagar). Se trata de un campo alfa y requiere habilitar la puerta de características ProbeTerminationGracePeriod. El valor máximo es de 3600 segundos (1 hora) | Int |
timeoutSeconds | Número de segundos después del cual el sondeo agota el tiempo de espera. El valor predeterminado es 1 segundo. El valor mínimo es 1. El valor máximo es 240. | Int |
tipo | Tipo de sondeo. | "Liveness" "Preparación" 'Inicio' |
ContainerAppProbeHttpGet
Nombre | Descripción | Valor |
---|---|---|
anfitrión | Nombre de host al que conectarse, el valor predeterminado es la dirección IP del pod. Probablemente quiera establecer "Host" en httpHeaders en su lugar. | cuerda |
httpHeaders | Encabezados personalizados que se van a establecer en la solicitud. HTTP permite encabezados repetidos. | ContainerAppProbeHttpGetHttpHeadersItem[] |
camino | Ruta de acceso al acceso en el servidor HTTP. | cuerda |
puerto | Nombre o número del puerto al que se va a acceder en el contenedor. El número debe estar en el intervalo de 1 a 65535. El nombre debe ser un IANA_SVC_NAME. | int (obligatorio) |
esquema | Esquema que se va a usar para conectarse al host. El valor predeterminado es HTTP. | 'HTTP' 'HTTPS' |
ContainerAppProbeHttpGetHttpHeadersItem
Nombre | Descripción | Valor |
---|---|---|
nombre | Nombre del campo de encabezado | string (obligatorio) |
valor | Valor del campo de encabezado | string (obligatorio) |
ContainerAppProbeTcpSocket
Nombre | Descripción | Valor |
---|---|---|
anfitrión | Opcional: nombre de host al que conectarse, el valor predeterminado es la dirección IP del pod. | cuerda |
puerto | Número o nombre del puerto al que se va a acceder en el contenedor. El número debe estar en el intervalo de 1 a 65535. El nombre debe ser un IANA_SVC_NAME. | int (obligatorio) |
ContainerAppProperties
Nombre | Descripción | Valor |
---|---|---|
configuración | Propiedades de configuración de la aplicación contenedora sin control de versiones. | configuración de |
environmentId | Identificador de recurso del entorno. | cuerda |
managedEnvironmentId | Obsolescente. Identificador de recurso del entorno de la aplicación contenedora. | cuerda |
plantilla | Definición de aplicación con versión de aplicación contenedora. | de plantilla de |
workloadProfileName | Nombre del perfil de carga de trabajo que se va a anclar para la ejecución de la aplicación contenedora. | cuerda |
ContainerResources
Nombre | Descripción | Valor |
---|---|---|
CPU | CPU necesaria en núcleos, por ejemplo, 0,5 | Int |
memoria | Memoria necesaria, por ejemplo, "250 Mb" | cuerda |
CorsPolicy
Nombre | Descripción | Valor |
---|---|---|
allowCredentials | Especifica si el recurso permite las credenciales. | Bool |
allowedHeaders | Especifica el contenido del encabezado access-control-allow-headers. | string[] |
allowedMethods | Especifica el contenido del encabezado access-control-allow-methods. | string[] |
allowedOrigins | Especifica el contenido del encabezado access-control-allow-origins. | string[] (obligatorio) |
exposeHeaders | Especifica el contenido del encabezado access-control-expose-headers. | string[] |
maxAge | Especifica el contenido del encabezado access-control-max-age. | Int |
CustomDomain
Nombre | Descripción | Valor |
---|---|---|
bindingType | Tipo de enlace dominio personalizado. | 'Deshabilitado' 'SniEnabled' |
certificateId | Identificador de recurso del certificado que se va a enlazar a este nombre de host. Debe existir en el entorno administrado. | cuerda |
nombre | Nombre de host. | string (obligatorio) |
CustomScaleRule
Nombre | Descripción | Valor |
---|---|---|
Auth | Secretos de autenticación para la regla de escalado personalizada. | scaleRuleAuth[] |
metadatos | Propiedades de metadatos para describir la regla de escalado personalizada. | CustomScaleRuleMetadata |
tipo | Tipo de la regla de escalado personalizada por ejemplo: azure-servicebus, redis etcetera. |
cuerda |
CustomScaleRuleMetadata
Nombre | Descripción | Valor |
---|
Dapr
Nombre | Descripción | Valor |
---|---|---|
appId | Identificador de aplicación dapr | cuerda |
appPort | Indica a Dapr en qué puerto escucha la aplicación. | Int |
appProtocol | Indica a Dapr qué protocolo usa la aplicación. Las opciones válidas son http y grpc. El valor predeterminado es http | 'grpc' 'http' |
enableApiLogging | Habilita el registro de API para el sidecar de Dapr | Bool |
Habilitado | Boolean que indica si el coche lateral dapr está habilitado | Bool |
httpMaxRequestSize | Aumento del tamaño máximo del parámetro http y grpc server del cuerpo de la solicitud en MB para controlar la carga de archivos grandes. El valor predeterminado es de 4 MB. | Int |
httpReadBufferSize | Tamaño máximo de dapr del búfer de lectura de encabezado http en KB para controlar al enviar encabezados de varios KB. El valor predeterminado es 65 KB. | Int |
logLevel | Establece el nivel de registro del sidecar de Dapr. Los valores permitidos son debug, info, warn, error. El valor predeterminado es info. | "depurar" 'error' 'info' "advertir" |
EnvironmentVar
Nombre | Descripción | Valor |
---|---|---|
nombre | Nombre de la variable de entorno. | cuerda |
secretRef | Nombre del secreto de aplicación contenedora del que se va a extraer el valor de la variable de entorno. | cuerda |
valor | Valor de variable de entorno no secreto. | cuerda |
ExtendedLocation
Nombre | Descripción | Valor |
---|---|---|
nombre | Nombre de la ubicación extendida. | cuerda |
tipo | Tipo de la ubicación extendida. | 'CustomLocation' |
HttpScaleRule
Nombre | Descripción | Valor |
---|---|---|
Auth | Secretos de autenticación para la regla de escalado personalizada. | scaleRuleAuth[] |
metadatos | Propiedades de metadatos para describir la regla de escalado http. | HttpScaleRuleMetadata |
HttpScaleRuleMetadata
Nombre | Descripción | Valor |
---|
Ingreso
Nombre | Descripción | Valor |
---|---|---|
additionalPortMappings | Configuración para exponer puertos adicionales en la aplicación contenedora | ingressPortMapping[] |
allowInsecure | Bool que indica si se permiten conexiones HTTP a . Si se establece en conexiones HTTP falsas se redirige automáticamente a conexiones HTTPS. | Bool |
clientCertificateMode | Modo de certificado de cliente para la autenticación mTLS. Omitir indica que el servidor quita el certificado de cliente al reenviar. Accept indica que el servidor reenvía el certificado de cliente, pero no requiere un certificado de cliente. Requerir indica que el servidor requiere un certificado de cliente. | 'accept' 'ignore' 'require' |
corsPolicy | Directiva de CORS para la aplicación contenedora | CorsPolicy |
customDomains | enlaces de dominio personalizados para los nombres de host de Container Apps. | CustomDomain [] |
exposedPort | Puerto expuesto en contenedores para el tráfico TCP desde la entrada | Int |
externo | Bool que indica si la aplicación expone un punto de conexión HTTP externo | Bool |
ipSecurityRestrictions | Reglas para restringir la dirección IP entrante. | ipSecurityRestrictionRule[] |
stickySessions | Sesiones permanentes para el modo de revisión única | ingressStickySessions |
targetPort | Puerto de destino en contenedores para el tráfico desde la entrada | Int |
tráfico | Pesos de tráfico para las revisiones de la aplicación | TrafficWeight[] |
transporte | Protocolo de transporte de entrada | 'auto' 'http' 'http2' 'tcp' |
EntradaPortMapping
Nombre | Descripción | Valor |
---|---|---|
exposedPort | Especifica el puerto expuesto para el puerto de destino. Si no se especifica, el valor predeterminado es el puerto de destino. | Int |
externo | Especifica si el puerto de la aplicación es accesible fuera del entorno. | bool (obligatorio) |
targetPort | Especifica la escucha del contenedor del usuario del puerto en | int (obligatorio) |
IngressStickySessions
Nombre | Descripción | Valor |
---|---|---|
afinidad | Afinidad de sesión pegajosa | 'none' 'sticky' |
InitContainer
Nombre | Descripción | Valor |
---|---|---|
args | Argumentos de comando de inicio de contenedor. | string[] |
mandar | Comando container start. | string[] |
Env | Variables de entorno de contenedor. | EnvironmentVar[] |
imagen | Etiqueta de imagen de contenedor. | cuerda |
nombre | Nombre de contenedor personalizado. | cuerda |
Recursos | Requisitos de recursos de contenedor. | containerResources de |
volumeMounts | Montajes de volúmenes de contenedor. | VolumeMount[] |
IpSecurityRestrictionRule
Nombre | Descripción | Valor |
---|---|---|
acción | Permitir o denegar reglas para determinar la dirección IP entrante. Nota: Las reglas solo pueden constar de ALL Allow o ALL Deny | 'Permitir' 'Deny' (obligatorio) |
descripción | Describir la regla de restricción de IP que se envía a la aplicación contenedora. Se trata de un campo opcional. | cuerda |
ipAddressRange | Notación CIDR para que coincida con la dirección IP entrante | string (obligatorio) |
nombre | Nombre de la regla de restricción de IP. | string (obligatorio) |
ManagedServiceIdentity
Microsoft.App/containerApps
Nombre | Descripción | Valor |
---|---|---|
extendedLocation | Tipo complejo de la ubicación extendida. | ExtendedLocation |
identidad | identidades administradas para que la aplicación contenedora interactúe con otros servicios de Azure sin mantener secretos ni credenciales en el código. | managedServiceIdentity |
ubicación | Ubicación geográfica donde reside el recurso | string (obligatorio) |
managedBy | Identificador de recurso completo del recurso que administra este recurso. Indica si otro recurso de Azure administra este recurso. Si está presente, la implementación del modo completo no eliminará el recurso si se quita de la plantilla, ya que otro recurso lo administra. | cuerda |
nombre | El nombre del recurso | string (obligatorio) |
Propiedades | Propiedades específicas del recurso ContainerApp | ContainerAppProperties |
Etiquetas | Etiquetas de recursos | Diccionario de nombres y valores de etiqueta. |
tipo | El tipo de recurso | "Microsoft.App/containerApps@2024-03-01" |
QueueScaleRule
Nombre | Descripción | Valor |
---|---|---|
Auth | Secretos de autenticación para la regla de escalado de colas. | scaleRuleAuth[] |
queueLength | Longitud de la cola. | Int |
queueName | Nombre de la cola. | cuerda |
RegistryCredentials
Nombre | Descripción | Valor |
---|---|---|
identidad | Una identidad administrada que se va a usar para autenticarse con Azure Container Registry. En el caso de las identidades asignadas por el usuario, use el identificador de recurso de identidad asignado por el usuario completo. En el caso de las identidades asignadas por el sistema, use "system" | cuerda |
passwordSecretRef | Nombre del secreto que contiene la contraseña de inicio de sesión del Registro | cuerda |
servidor | Container Registry Server | cuerda |
nombre de usuario | Nombre de usuario de Container Registry | cuerda |
Escama
ScaleRule
ScaleRuleAuth
Nombre | Descripción | Valor |
---|---|---|
secretRef | Nombre del secreto del que se va a extraer los parámetros de autenticación. | cuerda |
triggerParameter | Parámetro de desencadenador que usa el secreto | cuerda |
Secreto
Nombre | Descripción | Valor |
---|---|---|
identidad | Identificador de recurso de una identidad administrada para autenticarse con Azure Key Vault o sistema para usar una identidad asignada por el sistema. | cuerda |
keyVaultUrl | Dirección URL de Azure Key Vault que apunta al secreto al que hace referencia la aplicación contenedora. | cuerda |
nombre | Nombre del secreto. | cuerda |
valor | Valor secreto. | cuerda Restricciones: Valor confidencial. Pase como parámetro seguro. |
SecretVolumeItem
Nombre | Descripción | Valor |
---|---|---|
camino | Ruta de acceso al secreto del proyecto al que. Si no se proporciona ninguna ruta de acceso, la ruta de acceso tiene como valor predeterminado el nombre del secreto enumerado en secretRef. | cuerda |
secretRef | Nombre del secreto de la aplicación contenedora del que se va a extraer el valor del secreto. | cuerda |
Servicio
Nombre | Descripción | Valor |
---|---|---|
tipo | Tipo de servicio Dev ContainerApp | string (obligatorio) |
ServiceBind
Nombre | Descripción | Valor |
---|---|---|
nombre | Nombre del enlace de servicio | cuerda |
serviceId | Identificador de recurso del servicio de destino | cuerda |
TcpScaleRule
Nombre | Descripción | Valor |
---|---|---|
Auth | Secretos de autenticación para la regla de escalado tcp. | scaleRuleAuth[] |
metadatos | Propiedades de metadatos para describir la regla de escalado tcp. | TcpScaleRuleMetadata |
TcpScaleRuleMetadata
Nombre | Descripción | Valor |
---|
Plantilla
Nombre | Descripción | Valor |
---|---|---|
recipientes | Lista de definiciones de contenedor para la aplicación contenedora. | container[] |
initContainers | Lista de contenedores especializados que se ejecutan antes de los contenedores de aplicaciones. | initContainer[] |
revisionSuffix | Sufijo descriptivo que se anexa al nombre de revisión | cuerda |
escama | Propiedades de escalado de la aplicación contenedora. | Escala |
serviceBinds | Lista de servicios de aplicaciones de contenedor enlazados a la aplicación | ServiceBind[] |
terminationGracePeriodSeconds | Duración opcional en segundos que la instancia de la aplicación contenedora debe finalizar correctamente. El valor debe ser entero no negativo. El valor cero indica que se detiene inmediatamente a través de la señal de eliminación (sin oportunidad de apagar). Si este valor es nulo, se usará en su lugar el período de gracia predeterminado. Establezca este valor más largo que el tiempo de limpieza esperado para el proceso. El valor predeterminado es de 30 segundos. | Int |
Volúmenes | Lista de definiciones de volumen para la aplicación contenedora. | volumen[] |
TrackedResourceTags
Nombre | Descripción | Valor |
---|
TrafficWeight
Nombre | Descripción | Valor |
---|---|---|
etiqueta | Asocia una etiqueta de tráfico a una revisión | cuerda |
latestRevision | Indica que el peso del tráfico pertenece a una revisión estable más reciente. | Bool |
revisionName | Nombre de una revisión | cuerda |
peso | Peso del tráfico asignado a una revisión | Int |
UserAssignedIdentities
Nombre | Descripción | Valor |
---|
UserAssignedIdentity
Nombre | Descripción | Valor |
---|
Volumen
Nombre | Descripción | Valor |
---|---|---|
mountOptions | Opciones de montaje usadas durante el montaje de AzureFile. Debe ser una cadena separada por comas. | cuerda |
nombre | Nombre del volumen. | cuerda |
Secretos | Lista de secretos que se van a agregar en el volumen. Si no se proporciona ningún secreto, todos los secretos de la colección se agregarán al volumen. | secretVolumeItem[] |
storageName | Nombre del recurso de almacenamiento. No es necesario proporcionar EmptyDir y Secret. | cuerda |
storageType | Tipo de almacenamiento para el volumen. Si no se proporciona, use EmptyDir. | "AzureFile" 'EmptyDir' 'Secreto' |
VolumeMount
Nombre | Descripción | Valor |
---|---|---|
mountPath | Ruta de acceso dentro del contenedor en el que se debe montar el volumen. No debe contener ':'. | cuerda |
subPath | Ruta de acceso dentro del volumen desde el que se debe montar el volumen del contenedor. El valor predeterminado es "" (raíz del volumen). | cuerda |
volumeName | Debe coincidir con el nombre de un volumen. | cuerda |