Поделиться через


Microsoft.App containerApps 2023-05-02-preview

Определение ресурсов Bicep

Тип ресурса containerApps можно развернуть с помощью операций, предназначенных для следующих операций:

Список измененных свойств в каждой версии API см. в журнала изменений.

Формат ресурса

Чтобы создать ресурс Microsoft.App/containerApps, добавьте следующий Bicep в шаблон.

resource symbolicname 'Microsoft.App/containerApps@2023-05-02-preview' = {
  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'
  }
}

Значения свойств

Microsoft.App/containerApps

Имя Описание Ценность
расширенноеМестоположение Сложный тип расширенного расположения. РасширенноеМестоположение
идентичность управляемые удостоверения для приложения-контейнера для взаимодействия с другими службами Azure без сохранения секретов или учетных данных в коде. ManagedServiceIdentity (Управляемый сервисИдентификация)
расположение Географическое расположение, в котором находится ресурс строка (обязательно)
managedBy Полный идентификатор ресурса ресурса, который управляет этим ресурсом. Указывает, управляется ли этот ресурс другим ресурсом Azure. В этом случае развертывание полного режима не удаляет ресурс, если он удаляется из шаблона, так как он управляется другим ресурсом. струна
имя имя ресурса. строка (обязательно)
свойства Свойства, относящиеся к ресурсу ContainerApp Свойства ContainerAppProperties
Теги Теги ресурсов Словарь имен и значений тегов. См. теги в шаблонах

Конфигурация

Имя Описание Ценность
activeRevisionsMode ActiveRevisionsMode управляет обработкой активных редакций для приложения-контейнера:
<списке><элемент>Несколько: несколько редакций могут быть активными.</item><элемент>один. Только одна редакция может быть активной одновременно. Весы редакции нельзя использовать в этом режиме. Если значение не указано, это значение по умолчанию.</item></list>
"Несколько"
"Single"
дапра Конфигурация Dapr для приложения-контейнера. Дапрь
вход Конфигурации входящего трафика. Вход
maxInactiveRevisions Необязательно. Максимальные неактивные редакции приложения-контейнера могут иметь. инт
реестры Коллекция учетных данных реестра частных контейнеров для контейнеров, используемых приложением-контейнером Учетные данные реестра[]
Секреты Коллекция секретов, используемых приложением-контейнером секрет[]
услуга Приложение-контейнер, которое должно быть службой приложений для разработки Служба

Контейнер

Имя Описание Ценность
Аргументы Аргументы команд запуска контейнера. строка[]
Приказ Команда запуска контейнера. строка[]
окружение Переменные среды контейнера. Переменная окружающей среды[]
образ Тег образа контейнера. струна
имя Имя настраиваемого контейнера. струна
Зонды Список проб для контейнера. ContainerAppProbe[]
ресурсы Требования к ресурсам контейнера. Контейнерные ресурсы
volumeMounts Подключение тома контейнера. VolumeMount[]

ContainerAppProbe (КонтейнерAppПробу)

Имя Описание Ценность
Порог неудачи Минимальные последовательные сбои для проверки, которые будут считаться неудачными после успешного выполнения. Значение по умолчанию — 3. Минимальное значение — 1. Максимальное значение равно 10. инт
httpGet HTTPGet указывает http-запрос для выполнения. ContainerAppProbeHttpGet
initialDelaySeconds Количество секунд после запуска контейнера до начала пробы активности. Минимальное значение — 1. Максимальное значение равно 60. инт
период в секундах Частота (в секундах) выполнения пробы. Значение по умолчанию — 10 секунд. Минимальное значение — 1. Максимальное значение — 240. инт
Порог успеха Минимальные последовательные успехи для пробы, которые будут считаться успешными после сбоя. По умолчанию равен 1. Должно быть 1 для жизни и запуска. Минимальное значение — 1. Максимальное значение равно 10. инт
tcpSocket TCPSocket указывает действие, связанное с TCP-портом. Перехватчики TCP еще не поддерживаются. ContainerAppProbeTcpSocket (КонтейнерAppProbeTcpSocket)
terminationGracePeriodSeconds Необязательная длительность в секундах модуль pod должен завершиться корректно при сбое пробы. Льготный период — это длительность в секундах после того, как процессы, выполняемые в модуле pod, отправляются сигнал завершения и время принудительного прекращения процессов с помощью сигнала об убийстве. Установите это значение больше, чем ожидаемое время очистки для вашего процесса. Если это значение равно nil, будет использоваться завершение модуля podGracePeriodSeconds. В противном случае это значение переопределяет значение, предоставленное спецификацией pod. Значение должно быть неотрицательно целым числом. Нулевое значение указывает, что немедленно останавливается через сигнал убийства (нет возможности завершить работу). Это альфа-поле и требует включения шлюза функций ProbeTerminationGracePeriod. Максимальное значение — 3600 секунд (1 час) инт
timeoutSeconds Количество секунд, после которого время ожидания пробы истекает. По умолчанию используется значение 1 секунды. Минимальное значение — 1. Максимальное значение — 240. инт
тип Тип пробы. "Liveness"
"Готовность"
"Startup"

ContainerAppProbeHttpGet

Имя Описание Ценность
хост Имя узла для подключения по умолчанию к IP-адресу pod. Возможно, вы хотите задать "Host" в httpHeaders. струна
HTTP-заголовки Пользовательские заголовки, заданные в запросе. HTTP позволяет повторять заголовки. ContainerAppProbeHttpGetHttpHeadersItem[]
путь Путь к доступу на HTTP-сервере. струна
порт Имя или номер порта для доступа к контейнеру. Число должно находиться в диапазоне от 1 до 65535. Имя должно быть IANA_SVC_NAME. int (обязательно)
схема Схема, используемая для подключения к узлу. По умолчанию используется протокол HTTP. "HTTP"
"HTTPS"

ContainerAppProbeHttpGetHttpHeadersItem

Имя Описание Ценность
имя Имя поля заголовка строка (обязательно)
ценность Значение поля заголовка строка (обязательно)

ContainerAppProbeTcpSocket (КонтейнерAppProbeTcpSocket)

Имя Описание Ценность
хост Необязательно. Имя узла для подключения по умолчанию используется для IP-адреса pod. струна
порт Номер или имя порта для доступа к контейнеру. Число должно находиться в диапазоне от 1 до 65535. Имя должно быть IANA_SVC_NAME. int (обязательно)

Свойства ContainerAppProperties

Имя Описание Ценность
конфигурация Свойства конфигурации приложений контейнеров, отличные от версий. Конфигурация
environmentId Идентификатор ресурса среды. струна
managedEnvironmentId Устарело. Идентификатор ресурса среды приложения-контейнера. струна
шаблон Определение приложения с версиями контейнера. Шаблон
workloadProfileName Имя профиля рабочей нагрузки для закрепления для выполнения приложения контейнера. струна

Контейнерные ресурсы

Имя Описание Ценность
ЦПУ Обязательный ЦП в ядрах, например 0,5 инт
память Требуемая память, например "250 Мб" струна

КорсПолис

Имя Описание Ценность
allowCredentials Указывает, разрешает ли ресурс учетные данные булевая переменная (bool)
allowedHeaders Указывает содержимое заголовка access-control-allow-headers строка[]
allowedMethods Указывает содержимое заголовка метода access-control-allow-methods строка[]
allowedOrigins Указывает содержимое заголовка access-control-allow-origins string[] (обязательно)
Заголовки exposeЗаголовки Указывает содержимое заголовка access-control-expose-headers строка[]
maxAge Указывает содержимое заголовка access-control-max-age инт

Личныйдомен

Имя Описание Ценность
bindingType Тип привязки личного домена. "Отключено"
«Включено SniEnabled»
certificateId Идентификатор ресурса сертификата, привязанного к этому имени узла. Должен существовать в управляемой среде. струна
имя Имя узла. строка (обязательно)

Пользовательское правило масштабирования

Имя Описание Ценность
авторизация Секреты проверки подлинности для настраиваемого правила масштабирования. ScaleRuleAuth[]
метаданные Свойства метаданных для описания настраиваемого правила масштабирования. CustomScaleRuleMetadata
тип Тип настраиваемого правила масштабирования
например: azure-servicebus, redis и т. д.
струна

CustomScaleRuleMetadata

Имя Описание Ценность

Dapr

Имя Описание Ценность
appId (идентификатор приложения) Идентификатор приложения Dapr струна
appPort Сообщает Dapr, какой порт приложения прослушивается инт
appProtocol Сообщает Dapr, какой протокол использует приложение. Допустимые параметры: http и grpc. Значение по умолчанию — http 'GRPC'
"http"
enableApiLogging Включает ведение журнала API для бокового автомобиля Dapr булевая переменная (bool)
Активирован Логическое значение, указывающее, включен ли боковой автомобиль Dapr булевая переменная (bool)
httpMaxRequestSize Увеличение максимального размера параметра http и grpc-серверов текста запроса в МБ для обработки отправки больших файлов. Значение по умолчанию — 4 МБ. инт
httpReadBufferSize (httpReadBufferSize) Максимальный размер буфера чтения заголовка HTTP в КБ для обработки при отправке заголовков с несколькими КБ. Значение по умолчанию — 65 КБ. инт
LogLevel Задает уровень журнала для бокового автомобиля Dapr. Допустимые значения: отладка, информация, предупреждение, ошибка. По умолчанию используется информация. "отладка"
"error"
"info"
"предупреждать"

Окружающая средаVar

Имя Описание Ценность
имя Имя переменной среды. струна
secretRef Имя секрета приложения контейнера, из которого требуется извлечь значение переменной среды. струна
ценность Значение переменной среды, отличной от секрета. струна

Расширенное местоположение

Имя Описание Ценность
имя Имя расширенного расположения. струна
тип Тип расширенного расположения. CustomLocation

Правило httpScaleRule (Правило HttpScale)

Имя Описание Ценность
авторизация Секреты проверки подлинности для настраиваемого правила масштабирования. ScaleRuleAuth[]
метаданные Свойства метаданных для описания правила масштабирования HTTP. Метаданные HttpScaleRule

Метаданные HttpScaleRule

Имя Описание Ценность

Вход

Имя Описание Ценность
additionalPortMappings Параметры для предоставления дополнительных портов в приложении-контейнере IngressPortMapping[]
allowInsecure Логическое значение, указывающее, разрешено ли http-подключения. Если задано значение false HTTP-подключений, автоматически перенаправляются в подключения HTTPS. булевая переменная (bool)
clientCertificateMode Режим сертификата клиента для проверки подлинности mTLS. Игнорировать указывает, что сервер удаляет сертификат клиента при переадресации. Принять указывает, что сервер перенаправит сертификат клиента, но не требует сертификата клиента. Требовать, чтобы сервер должен иметь сертификат клиента. "принять"
"игнорировать"
"требовать"
corsПолитика Политика CORS для приложения-контейнера КорсПолис
пользовательские домены Привязки личного домена для имен узлов контейнерных приложений. Пользовательский домен[]
exposedPort Предоставленный порт в контейнерах для tcp-трафика из входящего трафика инт
внешний Bool, указывающий, предоставляет ли приложение внешнюю конечную точку HTTP булевая переменная (bool)
ipSecurityОграничения Правила ограничения входящих IP-адресов. Правило ограничения IP-безопасности[]
stickySessions Липкие сеансы для единого режима редакции IngressStickySessions
targetPort Целевой порт в контейнерах для трафика из входящего трафика инт
трафик Вес трафика для редакций приложения по весу трафика[]
транспорт Протокол входящего трафика "Auto"
"http"
"http2"
Tcp

IngressPortMapping

Имя Описание Ценность
exposedPort Указывает предоставленный порт для целевого порта. Если он не указан, по умолчанию используется целевой порт. инт
внешний Указывает, доступен ли порт приложения за пределами среды. bool (обязательно)
targetPort Указывает контейнер пользователя порта, который прослушивает int (обязательно)

IngressStickySessions

Имя Описание Ценность
сходство Сопоставление сеансов с привязкой "нет"
"Липкий"

Инициализация контейнера

Имя Описание Ценность
Аргументы Аргументы команд запуска контейнера. строка[]
Приказ Команда запуска контейнера. строка[]
окружение Переменные среды контейнера. Переменная окружающей среды[]
образ Тег образа контейнера. струна
имя Имя настраиваемого контейнера. струна
ресурсы Требования к ресурсам контейнера. Контейнерные ресурсы
volumeMounts Подключение тома контейнера. VolumeMount[]

Правило IpSecurityRestrictionRule

Имя Описание Ценность
действие Разрешить или запретить правила для определения входящего IP-адреса. Примечание. Правила могут состоять только из ALL Allow или ALL Deny "Разрешить"
"Запрет" (обязательно)
описание Опишите правило ограничения IP-адресов, которое отправляется в приложение-контейнер. Это необязательное поле. струна
ipAddressRange Нотация CIDR для сопоставления входящих IP-адресов строка (обязательно)
имя Имя правила ограничения IP-адресов. строка (обязательно)

Управляемая служебная идентичность

Имя Описание Ценность
тип Тип управляемого удостоверения службы (где разрешены типы SystemAssigned и UserAssigned). "Нет"
SystemAssigned
SystemAssigned, UserAssigned
UserAssigned (обязательно)
ИдентичностиНазначенныеПользователем Набор назначенных пользователем удостоверений, связанных с ресурсом. Ключи словаря userAssignedIdentities будут идентификаторами ресурсов ARM в форме: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. Значения словаря могут быть пустыми объектами ({}) в запросах. UserAssignedIdentity (Пользовательские идентификаторы)

Правило QueueScaleRule

Имя Описание Ценность
авторизация Секреты проверки подлинности для правила масштабирования очереди. ScaleRuleAuth[]
длина очереди Длина очереди. инт
название очереди Имя очереди. струна

RegistryCredentials

Имя Описание Ценность
идентичность Управляемое удостоверение, используемое для проверки подлинности в реестре контейнеров Azure. Для удостоверений, назначенных пользователем, используйте полный идентификатор ресурса удостоверения, назначаемого пользователем. Для удостоверений, назначенных системой, используйте system струна
passwordSecretRef Имя секрета, содержащего пароль для входа в реестр струна
сервер Сервер реестра контейнеров струна
имя пользователя Имя пользователя реестра контейнеров струна

Шкала

Имя Описание Ценность
maxReplicas Необязательно. Максимальное количество реплик контейнеров. Значение по умолчанию — 10, если не задано. инт
minReplicas Необязательно. Минимальное количество реплик контейнеров. инт
правила Правила масштабирования. Правило масштабирования[]

Правило масштабирования

Имя Описание Ценность
azureQueue Масштабирование на основе очереди Azure. Правило QueueScaleRule
обычай Пользовательское правило масштабирования. Пользовательское правило масштабирования
HTTP Масштабирование на основе HTTP-запросов. Правило httpScaleRule (Правило HttpScale)
имя Имя правила масштабирования струна
протокол tcp Масштабирование на основе tcp-запросов. Правило TcpScaleRule

ScaleRuleAuth (Масштабная аутентификация)

Имя Описание Ценность
secretRef Имя секрета, из которого необходимо извлечь парамс проверки подлинности. струна
triggerParameter Параметр триггера, использующий секрет струна

Секрет

Имя Описание Ценность
идентичность Идентификатор ресурса управляемого удостоверения для проверки подлинности в Azure Key Vault или System для использования удостоверения, назначаемого системой. струна
keyVaultUrl URL-адрес Azure Key Vault, указывающий на секрет, на который ссылается приложение контейнера. струна
имя Имя секрета. струна
ценность Значение секрета. струна

Ограничения целостности:
Конфиденциальное значение. Передайте в качестве безопасного параметра.

СекретныйVolumeItem (СекретныйVolumeItem)

Имя Описание Ценность
путь Путь к секрету проекта. Если путь не указан, путь по умолчанию имеет имя секрета, указанного в secretRef. струна
secretRef Имя секрета приложения-контейнера, из которого необходимо извлечь значение секрета. струна

Услуга

Имя Описание Ценность
тип Тип службы Dev ContainerApp строка (обязательно)

ServiceBind

Имя Описание Ценность
имя Имя привязки службы струна
serviceId Идентификатор ресурса целевой службы струна

Правило TcpScaleRule

Имя Описание Ценность
авторизация Секреты проверки подлинности для правила масштабирования tcp. ScaleRuleAuth[]
метаданные Свойства метаданных для описания правила масштабирования tcp. Метаданные TcpScaleRule

Метаданные TcpScaleRule

Имя Описание Ценность

Шаблон

Имя Описание Ценность
Контейнеры Список определений контейнеров для приложения-контейнера. контейнера[]
initContainers Список специализированных контейнеров, выполняемых перед контейнерами приложений. InitContainer[]
редакцияSuffix Понятный суффикс, добавляемый к имени редакции струна
масштаб Масштабирование свойств для приложения-контейнера. Масштабировать
serviceBinds Список служб приложений-контейнеров, привязанных к приложению ServiceBind[]
terminationGracePeriodSeconds Необязательная длительность в секундах экземпляра приложения-контейнера должна завершиться корректно. Значение должно быть неотрицательно целым числом. Нулевое значение указывает, что немедленно останавливается через сигнал убийства (нет возможности завершить работу). Если это значение равно nil, вместо этого будет использоваться льготный период по умолчанию. Установите это значение больше, чем ожидаемое время очистки для вашего процесса. Значение по умолчанию — 30 секунд. инт
томов. Список определений томов для приложения-контейнера. тома[]

Отслеживаемые Ресурсные Теги

Имя Описание Ценность

Вес трафика

Имя Описание Ценность
этикетка Связывает метку трафика с редакцией струна
latestRevision Указывает, что вес трафика принадлежит последней стабильной редакции булевая переменная (bool)
имя редакции Имя редакции струна
вес Вес трафика, назначенный редакции инт

UserAssignedIdentity (Пользовательские идентификаторы)

Имя Описание Ценность

Пользовательская назначенная идентичность

Имя Описание Ценность

Объем

Имя Описание Ценность
Варианты монтирования Параметры подключения, используемые при подключении AzureFile. Должен быть строкой, разделенной запятыми. струна
имя Имя тома. струна
Секреты Список секретов, добавляемых в том. Если секреты отсутствуют, все секреты в коллекции будут добавлены в том. Секретный объемItem[]
storageName Имя ресурса хранилища. Не требуется предоставлять значение EmptyDir и Secret. струна
storageType Тип хранилища для тома. Если этот параметр не указан, используйте EmptyDir. AzureFile
«ПустойДиректор»
"Секрет"

Крепление VolumeMount

Имя Описание Ценность
mountPath Путь в контейнере, в котором должен быть подключен том. Не должно содержать ":". струна
подконтур Путь в томе, из которого должен быть подключен том контейнера. По умолчанию используется значение "" (корневой каталог тома). струна
имя тома Это должно соответствовать имени тома. струна

Примеры использования

Проверенные модули Azure

Следующие проверенные модули Azure можно использовать для развертывания этого типа ресурсов.

Модуль Описание
Контейнерное приложение Модуль ресурсов AVM для приложения-контейнера

Примеры быстрого запуска Azure

Следующие шаблоны быстрого запуска Azure содержат примеры Bicep для развертывания этого типа ресурса.

Bicep-файл Описание
создание приложения контейнера и среды с реестра Создайте среду приложения-контейнера с базовым приложением контейнера из реестра контейнеров Azure. Она также развертывает рабочую область Log Analytics для хранения журналов.
Создает приложение-контейнер с определенным правилом масштабирования HTTP Создайте среду приложения-контейнера с базовым приложением-контейнером, которое масштабируется на основе HTTP-трафика.
Создание приложения-контейнера в среде приложения-контейнера Создайте среду приложения-контейнера с базовым приложением контейнера. Она также развертывает рабочую область Log Analytics для хранения журналов.
создает приложение микрослужб Dapr с помощью приложений контейнеров Создайте приложение микрослужб Dapr с помощью контейнерных приложений.
Создает приложение dapr pub-sub servicebus с помощью приложений контейнеров Создайте приложение dapr pub-sub servicebus с помощью контейнерных приложений.
Создание двух приложений-контейнеров с средой приложения-контейнера Создайте две среды приложения-контейнера с базовым приложением-контейнером. Она также развертывает рабочую область Log Analytics для хранения журналов.
Создает внешнюю среду приложения-контейнера с виртуальной сетью Создает внешнюю среду приложения-контейнера с виртуальной сетью.
Создает внутреннюю среду приложения-контейнера с виртуальной сетью Создает внутреннюю среду приложения-контейнера с виртуальной сетью.

Определение ресурса шаблона ARM

Тип ресурса containerApps можно развернуть с помощью операций, предназначенных для следующих операций:

Список измененных свойств в каждой версии API см. в журнала изменений.

Формат ресурса

Чтобы создать ресурс Microsoft.App/containerApps, добавьте следующий код JSON в шаблон.

{
  "type": "Microsoft.App/containerApps",
  "apiVersion": "2023-05-02-preview",
  "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"
  }
}

Значения свойств

Microsoft.App/containerApps

Имя Описание Ценность
apiVersion Версия API «2023-05-02-превью»
расширенноеМестоположение Сложный тип расширенного расположения. РасширенноеМестоположение
идентичность управляемые удостоверения для приложения-контейнера для взаимодействия с другими службами Azure без сохранения секретов или учетных данных в коде. ManagedServiceIdentity (Управляемый сервисИдентификация)
расположение Географическое расположение, в котором находится ресурс строка (обязательно)
managedBy Полный идентификатор ресурса ресурса, который управляет этим ресурсом. Указывает, управляется ли этот ресурс другим ресурсом Azure. В этом случае развертывание полного режима не удаляет ресурс, если он удаляется из шаблона, так как он управляется другим ресурсом. струна
имя имя ресурса. строка (обязательно)
свойства Свойства, относящиеся к ресурсу ContainerApp Свойства ContainerAppProperties
Теги Теги ресурсов Словарь имен и значений тегов. См. теги в шаблонах
тип Тип ресурса "Microsoft.App/containerApps"

Конфигурация

Имя Описание Ценность
activeRevisionsMode ActiveRevisionsMode управляет обработкой активных редакций для приложения-контейнера:
<списке><элемент>Несколько: несколько редакций могут быть активными.</item><элемент>один. Только одна редакция может быть активной одновременно. Весы редакции нельзя использовать в этом режиме. Если значение не указано, это значение по умолчанию.</item></list>
"Несколько"
"Single"
дапра Конфигурация Dapr для приложения-контейнера. Дапрь
вход Конфигурации входящего трафика. Вход
maxInactiveRevisions Необязательно. Максимальные неактивные редакции приложения-контейнера могут иметь. инт
реестры Коллекция учетных данных реестра частных контейнеров для контейнеров, используемых приложением-контейнером Учетные данные реестра[]
Секреты Коллекция секретов, используемых приложением-контейнером секрет[]
услуга Приложение-контейнер, которое должно быть службой приложений для разработки Служба

Контейнер

Имя Описание Ценность
Аргументы Аргументы команд запуска контейнера. строка[]
Приказ Команда запуска контейнера. строка[]
окружение Переменные среды контейнера. Переменная окружающей среды[]
образ Тег образа контейнера. струна
имя Имя настраиваемого контейнера. струна
Зонды Список проб для контейнера. ContainerAppProbe[]
ресурсы Требования к ресурсам контейнера. Контейнерные ресурсы
volumeMounts Подключение тома контейнера. VolumeMount[]

ContainerAppProbe (КонтейнерAppПробу)

Имя Описание Ценность
Порог неудачи Минимальные последовательные сбои для проверки, которые будут считаться неудачными после успешного выполнения. Значение по умолчанию — 3. Минимальное значение — 1. Максимальное значение равно 10. инт
httpGet HTTPGet указывает http-запрос для выполнения. ContainerAppProbeHttpGet
initialDelaySeconds Количество секунд после запуска контейнера до начала пробы активности. Минимальное значение — 1. Максимальное значение равно 60. инт
период в секундах Частота (в секундах) выполнения пробы. Значение по умолчанию — 10 секунд. Минимальное значение — 1. Максимальное значение — 240. инт
Порог успеха Минимальные последовательные успехи для пробы, которые будут считаться успешными после сбоя. По умолчанию равен 1. Должно быть 1 для жизни и запуска. Минимальное значение — 1. Максимальное значение равно 10. инт
tcpSocket TCPSocket указывает действие, связанное с TCP-портом. Перехватчики TCP еще не поддерживаются. ContainerAppProbeTcpSocket (КонтейнерAppProbeTcpSocket)
terminationGracePeriodSeconds Необязательная длительность в секундах модуль pod должен завершиться корректно при сбое пробы. Льготный период — это длительность в секундах после того, как процессы, выполняемые в модуле pod, отправляются сигнал завершения и время принудительного прекращения процессов с помощью сигнала об убийстве. Установите это значение больше, чем ожидаемое время очистки для вашего процесса. Если это значение равно nil, будет использоваться завершение модуля podGracePeriodSeconds. В противном случае это значение переопределяет значение, предоставленное спецификацией pod. Значение должно быть неотрицательно целым числом. Нулевое значение указывает, что немедленно останавливается через сигнал убийства (нет возможности завершить работу). Это альфа-поле и требует включения шлюза функций ProbeTerminationGracePeriod. Максимальное значение — 3600 секунд (1 час) инт
timeoutSeconds Количество секунд, после которого время ожидания пробы истекает. По умолчанию используется значение 1 секунды. Минимальное значение — 1. Максимальное значение — 240. инт
тип Тип пробы. "Liveness"
"Готовность"
"Startup"

ContainerAppProbeHttpGet

Имя Описание Ценность
хост Имя узла для подключения по умолчанию к IP-адресу pod. Возможно, вы хотите задать "Host" в httpHeaders. струна
HTTP-заголовки Пользовательские заголовки, заданные в запросе. HTTP позволяет повторять заголовки. ContainerAppProbeHttpGetHttpHeadersItem[]
путь Путь к доступу на HTTP-сервере. струна
порт Имя или номер порта для доступа к контейнеру. Число должно находиться в диапазоне от 1 до 65535. Имя должно быть IANA_SVC_NAME. int (обязательно)
схема Схема, используемая для подключения к узлу. По умолчанию используется протокол HTTP. "HTTP"
"HTTPS"

ContainerAppProbeHttpGetHttpHeadersItem

Имя Описание Ценность
имя Имя поля заголовка строка (обязательно)
ценность Значение поля заголовка строка (обязательно)

ContainerAppProbeTcpSocket (КонтейнерAppProbeTcpSocket)

Имя Описание Ценность
хост Необязательно. Имя узла для подключения по умолчанию используется для IP-адреса pod. струна
порт Номер или имя порта для доступа к контейнеру. Число должно находиться в диапазоне от 1 до 65535. Имя должно быть IANA_SVC_NAME. int (обязательно)

Свойства ContainerAppProperties

Имя Описание Ценность
конфигурация Свойства конфигурации приложений контейнеров, отличные от версий. Конфигурация
environmentId Идентификатор ресурса среды. струна
managedEnvironmentId Устарело. Идентификатор ресурса среды приложения-контейнера. струна
шаблон Определение приложения с версиями контейнера. Шаблон
workloadProfileName Имя профиля рабочей нагрузки для закрепления для выполнения приложения контейнера. струна

Контейнерные ресурсы

Имя Описание Ценность
ЦПУ Обязательный ЦП в ядрах, например 0,5 инт
память Требуемая память, например "250 Мб" струна

КорсПолис

Имя Описание Ценность
allowCredentials Указывает, разрешает ли ресурс учетные данные булевая переменная (bool)
allowedHeaders Указывает содержимое заголовка access-control-allow-headers строка[]
allowedMethods Указывает содержимое заголовка метода access-control-allow-methods строка[]
allowedOrigins Указывает содержимое заголовка access-control-allow-origins string[] (обязательно)
Заголовки exposeЗаголовки Указывает содержимое заголовка access-control-expose-headers строка[]
maxAge Указывает содержимое заголовка access-control-max-age инт

Личныйдомен

Имя Описание Ценность
bindingType Тип привязки личного домена. "Отключено"
«Включено SniEnabled»
certificateId Идентификатор ресурса сертификата, привязанного к этому имени узла. Должен существовать в управляемой среде. струна
имя Имя узла. строка (обязательно)

Пользовательское правило масштабирования

Имя Описание Ценность
авторизация Секреты проверки подлинности для настраиваемого правила масштабирования. ScaleRuleAuth[]
метаданные Свойства метаданных для описания настраиваемого правила масштабирования. CustomScaleRuleMetadata
тип Тип настраиваемого правила масштабирования
например: azure-servicebus, redis и т. д.
струна

CustomScaleRuleMetadata

Имя Описание Ценность

Dapr

Имя Описание Ценность
appId (идентификатор приложения) Идентификатор приложения Dapr струна
appPort Сообщает Dapr, какой порт приложения прослушивается инт
appProtocol Сообщает Dapr, какой протокол использует приложение. Допустимые параметры: http и grpc. Значение по умолчанию — http 'GRPC'
"http"
enableApiLogging Включает ведение журнала API для бокового автомобиля Dapr булевая переменная (bool)
Активирован Логическое значение, указывающее, включен ли боковой автомобиль Dapr булевая переменная (bool)
httpMaxRequestSize Увеличение максимального размера параметра http и grpc-серверов текста запроса в МБ для обработки отправки больших файлов. Значение по умолчанию — 4 МБ. инт
httpReadBufferSize (httpReadBufferSize) Максимальный размер буфера чтения заголовка HTTP в КБ для обработки при отправке заголовков с несколькими КБ. Значение по умолчанию — 65 КБ. инт
LogLevel Задает уровень журнала для бокового автомобиля Dapr. Допустимые значения: отладка, информация, предупреждение, ошибка. По умолчанию используется информация. "отладка"
"error"
"info"
"предупреждать"

Окружающая средаVar

Имя Описание Ценность
имя Имя переменной среды. струна
secretRef Имя секрета приложения контейнера, из которого требуется извлечь значение переменной среды. струна
ценность Значение переменной среды, отличной от секрета. струна

Расширенное местоположение

Имя Описание Ценность
имя Имя расширенного расположения. струна
тип Тип расширенного расположения. CustomLocation

Правило httpScaleRule (Правило HttpScale)

Имя Описание Ценность
авторизация Секреты проверки подлинности для настраиваемого правила масштабирования. ScaleRuleAuth[]
метаданные Свойства метаданных для описания правила масштабирования HTTP. Метаданные HttpScaleRule

Метаданные HttpScaleRule

Имя Описание Ценность

Вход

Имя Описание Ценность
additionalPortMappings Параметры для предоставления дополнительных портов в приложении-контейнере IngressPortMapping[]
allowInsecure Логическое значение, указывающее, разрешено ли http-подключения. Если задано значение false HTTP-подключений, автоматически перенаправляются в подключения HTTPS. булевая переменная (bool)
clientCertificateMode Режим сертификата клиента для проверки подлинности mTLS. Игнорировать указывает, что сервер удаляет сертификат клиента при переадресации. Принять указывает, что сервер перенаправит сертификат клиента, но не требует сертификата клиента. Требовать, чтобы сервер должен иметь сертификат клиента. "принять"
"игнорировать"
"требовать"
corsПолитика Политика CORS для приложения-контейнера КорсПолис
пользовательские домены Привязки личного домена для имен узлов контейнерных приложений. Пользовательский домен[]
exposedPort Предоставленный порт в контейнерах для tcp-трафика из входящего трафика инт
внешний Bool, указывающий, предоставляет ли приложение внешнюю конечную точку HTTP булевая переменная (bool)
ipSecurityОграничения Правила ограничения входящих IP-адресов. Правило ограничения IP-безопасности[]
stickySessions Липкие сеансы для единого режима редакции IngressStickySessions
targetPort Целевой порт в контейнерах для трафика из входящего трафика инт
трафик Вес трафика для редакций приложения по весу трафика[]
транспорт Протокол входящего трафика "Auto"
"http"
"http2"
Tcp

IngressPortMapping

Имя Описание Ценность
exposedPort Указывает предоставленный порт для целевого порта. Если он не указан, по умолчанию используется целевой порт. инт
внешний Указывает, доступен ли порт приложения за пределами среды. bool (обязательно)
targetPort Указывает контейнер пользователя порта, который прослушивает int (обязательно)

IngressStickySessions

Имя Описание Ценность
сходство Сопоставление сеансов с привязкой "нет"
"Липкий"

Инициализация контейнера

Имя Описание Ценность
Аргументы Аргументы команд запуска контейнера. строка[]
Приказ Команда запуска контейнера. строка[]
окружение Переменные среды контейнера. Переменная окружающей среды[]
образ Тег образа контейнера. струна
имя Имя настраиваемого контейнера. струна
ресурсы Требования к ресурсам контейнера. Контейнерные ресурсы
volumeMounts Подключение тома контейнера. VolumeMount[]

Правило IpSecurityRestrictionRule

Имя Описание Ценность
действие Разрешить или запретить правила для определения входящего IP-адреса. Примечание. Правила могут состоять только из ALL Allow или ALL Deny "Разрешить"
"Запрет" (обязательно)
описание Опишите правило ограничения IP-адресов, которое отправляется в приложение-контейнер. Это необязательное поле. струна
ipAddressRange Нотация CIDR для сопоставления входящих IP-адресов строка (обязательно)
имя Имя правила ограничения IP-адресов. строка (обязательно)

Управляемая служебная идентичность

Имя Описание Ценность
тип Тип управляемого удостоверения службы (где разрешены типы SystemAssigned и UserAssigned). "Нет"
SystemAssigned
SystemAssigned, UserAssigned
UserAssigned (обязательно)
ИдентичностиНазначенныеПользователем Набор назначенных пользователем удостоверений, связанных с ресурсом. Ключи словаря userAssignedIdentities будут идентификаторами ресурсов ARM в форме: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. Значения словаря могут быть пустыми объектами ({}) в запросах. UserAssignedIdentity (Пользовательские идентификаторы)

Правило QueueScaleRule

Имя Описание Ценность
авторизация Секреты проверки подлинности для правила масштабирования очереди. ScaleRuleAuth[]
длина очереди Длина очереди. инт
название очереди Имя очереди. струна

RegistryCredentials

Имя Описание Ценность
идентичность Управляемое удостоверение, используемое для проверки подлинности в реестре контейнеров Azure. Для удостоверений, назначенных пользователем, используйте полный идентификатор ресурса удостоверения, назначаемого пользователем. Для удостоверений, назначенных системой, используйте system струна
passwordSecretRef Имя секрета, содержащего пароль для входа в реестр струна
сервер Сервер реестра контейнеров струна
имя пользователя Имя пользователя реестра контейнеров струна

Шкала

Имя Описание Ценность
maxReplicas Необязательно. Максимальное количество реплик контейнеров. Значение по умолчанию — 10, если не задано. инт
minReplicas Необязательно. Минимальное количество реплик контейнеров. инт
правила Правила масштабирования. Правило масштабирования[]

Правило масштабирования

Имя Описание Ценность
azureQueue Масштабирование на основе очереди Azure. Правило QueueScaleRule
обычай Пользовательское правило масштабирования. Пользовательское правило масштабирования
HTTP Масштабирование на основе HTTP-запросов. Правило httpScaleRule (Правило HttpScale)
имя Имя правила масштабирования струна
протокол tcp Масштабирование на основе tcp-запросов. Правило TcpScaleRule

ScaleRuleAuth (Масштабная аутентификация)

Имя Описание Ценность
secretRef Имя секрета, из которого необходимо извлечь парамс проверки подлинности. струна
triggerParameter Параметр триггера, использующий секрет струна

Секрет

Имя Описание Ценность
идентичность Идентификатор ресурса управляемого удостоверения для проверки подлинности в Azure Key Vault или System для использования удостоверения, назначаемого системой. струна
keyVaultUrl URL-адрес Azure Key Vault, указывающий на секрет, на который ссылается приложение контейнера. струна
имя Имя секрета. струна
ценность Значение секрета. струна

Ограничения целостности:
Конфиденциальное значение. Передайте в качестве безопасного параметра.

СекретныйVolumeItem (СекретныйVolumeItem)

Имя Описание Ценность
путь Путь к секрету проекта. Если путь не указан, путь по умолчанию имеет имя секрета, указанного в secretRef. струна
secretRef Имя секрета приложения-контейнера, из которого необходимо извлечь значение секрета. струна

Услуга

Имя Описание Ценность
тип Тип службы Dev ContainerApp строка (обязательно)

ServiceBind

Имя Описание Ценность
имя Имя привязки службы струна
serviceId Идентификатор ресурса целевой службы струна

Правило TcpScaleRule

Имя Описание Ценность
авторизация Секреты проверки подлинности для правила масштабирования tcp. ScaleRuleAuth[]
метаданные Свойства метаданных для описания правила масштабирования tcp. Метаданные TcpScaleRule

Метаданные TcpScaleRule

Имя Описание Ценность

Шаблон

Имя Описание Ценность
Контейнеры Список определений контейнеров для приложения-контейнера. контейнера[]
initContainers Список специализированных контейнеров, выполняемых перед контейнерами приложений. InitContainer[]
редакцияSuffix Понятный суффикс, добавляемый к имени редакции струна
масштаб Масштабирование свойств для приложения-контейнера. Масштабировать
serviceBinds Список служб приложений-контейнеров, привязанных к приложению ServiceBind[]
terminationGracePeriodSeconds Необязательная длительность в секундах экземпляра приложения-контейнера должна завершиться корректно. Значение должно быть неотрицательно целым числом. Нулевое значение указывает, что немедленно останавливается через сигнал убийства (нет возможности завершить работу). Если это значение равно nil, вместо этого будет использоваться льготный период по умолчанию. Установите это значение больше, чем ожидаемое время очистки для вашего процесса. Значение по умолчанию — 30 секунд. инт
томов. Список определений томов для приложения-контейнера. тома[]

Отслеживаемые Ресурсные Теги

Имя Описание Ценность

Вес трафика

Имя Описание Ценность
этикетка Связывает метку трафика с редакцией струна
latestRevision Указывает, что вес трафика принадлежит последней стабильной редакции булевая переменная (bool)
имя редакции Имя редакции струна
вес Вес трафика, назначенный редакции инт

UserAssignedIdentity (Пользовательские идентификаторы)

Имя Описание Ценность

Пользовательская назначенная идентичность

Имя Описание Ценность

Объем

Имя Описание Ценность
Варианты монтирования Параметры подключения, используемые при подключении AzureFile. Должен быть строкой, разделенной запятыми. струна
имя Имя тома. струна
Секреты Список секретов, добавляемых в том. Если секреты отсутствуют, все секреты в коллекции будут добавлены в том. Секретный объемItem[]
storageName Имя ресурса хранилища. Не требуется предоставлять значение EmptyDir и Secret. струна
storageType Тип хранилища для тома. Если этот параметр не указан, используйте EmptyDir. AzureFile
«ПустойДиректор»
"Секрет"

Крепление VolumeMount

Имя Описание Ценность
mountPath Путь в контейнере, в котором должен быть подключен том. Не должно содержать ":". струна
подконтур Путь в томе, из которого должен быть подключен том контейнера. По умолчанию используется значение "" (корневой каталог тома). струна
имя тома Это должно соответствовать имени тома. струна

Примеры использования

Шаблоны быстрого запуска Azure

Следующие шаблоны быстрого запуска Azure развернуть этот тип ресурса.

Шаблон Описание
создание приложения контейнера и среды с реестра

Развертывание в Azure
Создайте среду приложения-контейнера с базовым приложением контейнера из реестра контейнеров Azure. Она также развертывает рабочую область Log Analytics для хранения журналов.
Создает приложение-контейнер с определенным правилом масштабирования HTTP

Развертывание в Azure
Создайте среду приложения-контейнера с базовым приложением-контейнером, которое масштабируется на основе HTTP-трафика.
Создание приложения-контейнера в среде приложения-контейнера

Развертывание в Azure
Создайте среду приложения-контейнера с базовым приложением контейнера. Она также развертывает рабочую область Log Analytics для хранения журналов.
создает приложение микрослужб Dapr с помощью приложений контейнеров

Развертывание в Azure
Создайте приложение микрослужб Dapr с помощью контейнерных приложений.
Создает приложение dapr pub-sub servicebus с помощью приложений контейнеров

Развертывание в Azure
Создайте приложение dapr pub-sub servicebus с помощью контейнерных приложений.
Создание двух приложений-контейнеров с средой приложения-контейнера

Развертывание в Azure
Создайте две среды приложения-контейнера с базовым приложением-контейнером. Она также развертывает рабочую область Log Analytics для хранения журналов.
Создает внешнюю среду приложения-контейнера с виртуальной сетью

Развертывание в Azure
Создает внешнюю среду приложения-контейнера с виртуальной сетью.
Создает внутреннюю среду приложения-контейнера с виртуальной сетью

Развертывание в Azure
Создает внутреннюю среду приложения-контейнера с виртуальной сетью.

Определение ресурса Terraform (поставщик AzAPI)

Тип ресурса containerApps можно развернуть с помощью операций, предназначенных для следующих операций:

  • Группы ресурсов

Список измененных свойств в каждой версии API см. в журнала изменений.

Формат ресурса

Чтобы создать ресурс Microsoft.App/containerApps, добавьте следующий объект Terraform в шаблон.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.App/containerApps@2023-05-02-preview"
  name = "string"
  parent_id = "string"
  identity {
    type = "string"
    identity_ids = [
      "string"
    ]
  }
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    extendedLocation = {
      name = "string"
      type = "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"
    }
  }
}

Значения свойств

Microsoft.App/containerApps

Имя Описание Ценность
расширенноеМестоположение Сложный тип расширенного расположения. РасширенноеМестоположение
идентичность управляемые удостоверения для приложения-контейнера для взаимодействия с другими службами Azure без сохранения секретов или учетных данных в коде. ManagedServiceIdentity (Управляемый сервисИдентификация)
расположение Географическое расположение, в котором находится ресурс строка (обязательно)
managedBy Полный идентификатор ресурса ресурса, который управляет этим ресурсом. Указывает, управляется ли этот ресурс другим ресурсом Azure. В этом случае развертывание полного режима не удаляет ресурс, если он удаляется из шаблона, так как он управляется другим ресурсом. струна
имя имя ресурса. строка (обязательно)
свойства Свойства, относящиеся к ресурсу ContainerApp Свойства ContainerAppProperties
Теги Теги ресурсов Словарь имен и значений тегов.
тип Тип ресурса "Microsoft.App/containerApps@2023-05-02-preview"

Конфигурация

Имя Описание Ценность
activeRevisionsMode ActiveRevisionsMode управляет обработкой активных редакций для приложения-контейнера:
<списке><элемент>Несколько: несколько редакций могут быть активными.</item><элемент>один. Только одна редакция может быть активной одновременно. Весы редакции нельзя использовать в этом режиме. Если значение не указано, это значение по умолчанию.</item></list>
"Несколько"
"Single"
дапра Конфигурация Dapr для приложения-контейнера. Дапрь
вход Конфигурации входящего трафика. Вход
maxInactiveRevisions Необязательно. Максимальные неактивные редакции приложения-контейнера могут иметь. инт
реестры Коллекция учетных данных реестра частных контейнеров для контейнеров, используемых приложением-контейнером Учетные данные реестра[]
Секреты Коллекция секретов, используемых приложением-контейнером секрет[]
услуга Приложение-контейнер, которое должно быть службой приложений для разработки Служба

Контейнер

Имя Описание Ценность
Аргументы Аргументы команд запуска контейнера. строка[]
Приказ Команда запуска контейнера. строка[]
окружение Переменные среды контейнера. Переменная окружающей среды[]
образ Тег образа контейнера. струна
имя Имя настраиваемого контейнера. струна
Зонды Список проб для контейнера. ContainerAppProbe[]
ресурсы Требования к ресурсам контейнера. Контейнерные ресурсы
volumeMounts Подключение тома контейнера. VolumeMount[]

ContainerAppProbe (КонтейнерAppПробу)

Имя Описание Ценность
Порог неудачи Минимальные последовательные сбои для проверки, которые будут считаться неудачными после успешного выполнения. Значение по умолчанию — 3. Минимальное значение — 1. Максимальное значение равно 10. инт
httpGet HTTPGet указывает http-запрос для выполнения. ContainerAppProbeHttpGet
initialDelaySeconds Количество секунд после запуска контейнера до начала пробы активности. Минимальное значение — 1. Максимальное значение равно 60. инт
период в секундах Частота (в секундах) выполнения пробы. Значение по умолчанию — 10 секунд. Минимальное значение — 1. Максимальное значение — 240. инт
Порог успеха Минимальные последовательные успехи для пробы, которые будут считаться успешными после сбоя. По умолчанию равен 1. Должно быть 1 для жизни и запуска. Минимальное значение — 1. Максимальное значение равно 10. инт
tcpSocket TCPSocket указывает действие, связанное с TCP-портом. Перехватчики TCP еще не поддерживаются. ContainerAppProbeTcpSocket (КонтейнерAppProbeTcpSocket)
terminationGracePeriodSeconds Необязательная длительность в секундах модуль pod должен завершиться корректно при сбое пробы. Льготный период — это длительность в секундах после того, как процессы, выполняемые в модуле pod, отправляются сигнал завершения и время принудительного прекращения процессов с помощью сигнала об убийстве. Установите это значение больше, чем ожидаемое время очистки для вашего процесса. Если это значение равно nil, будет использоваться завершение модуля podGracePeriodSeconds. В противном случае это значение переопределяет значение, предоставленное спецификацией pod. Значение должно быть неотрицательно целым числом. Нулевое значение указывает, что немедленно останавливается через сигнал убийства (нет возможности завершить работу). Это альфа-поле и требует включения шлюза функций ProbeTerminationGracePeriod. Максимальное значение — 3600 секунд (1 час) инт
timeoutSeconds Количество секунд, после которого время ожидания пробы истекает. По умолчанию используется значение 1 секунды. Минимальное значение — 1. Максимальное значение — 240. инт
тип Тип пробы. "Liveness"
"Готовность"
"Startup"

ContainerAppProbeHttpGet

Имя Описание Ценность
хост Имя узла для подключения по умолчанию к IP-адресу pod. Возможно, вы хотите задать "Host" в httpHeaders. струна
HTTP-заголовки Пользовательские заголовки, заданные в запросе. HTTP позволяет повторять заголовки. ContainerAppProbeHttpGetHttpHeadersItem[]
путь Путь к доступу на HTTP-сервере. струна
порт Имя или номер порта для доступа к контейнеру. Число должно находиться в диапазоне от 1 до 65535. Имя должно быть IANA_SVC_NAME. int (обязательно)
схема Схема, используемая для подключения к узлу. По умолчанию используется протокол HTTP. "HTTP"
"HTTPS"

ContainerAppProbeHttpGetHttpHeadersItem

Имя Описание Ценность
имя Имя поля заголовка строка (обязательно)
ценность Значение поля заголовка строка (обязательно)

ContainerAppProbeTcpSocket (КонтейнерAppProbeTcpSocket)

Имя Описание Ценность
хост Необязательно. Имя узла для подключения по умолчанию используется для IP-адреса pod. струна
порт Номер или имя порта для доступа к контейнеру. Число должно находиться в диапазоне от 1 до 65535. Имя должно быть IANA_SVC_NAME. int (обязательно)

Свойства ContainerAppProperties

Имя Описание Ценность
конфигурация Свойства конфигурации приложений контейнеров, отличные от версий. Конфигурация
environmentId Идентификатор ресурса среды. струна
managedEnvironmentId Устарело. Идентификатор ресурса среды приложения-контейнера. струна
шаблон Определение приложения с версиями контейнера. Шаблон
workloadProfileName Имя профиля рабочей нагрузки для закрепления для выполнения приложения контейнера. струна

Контейнерные ресурсы

Имя Описание Ценность
ЦПУ Обязательный ЦП в ядрах, например 0,5 инт
память Требуемая память, например "250 Мб" струна

КорсПолис

Имя Описание Ценность
allowCredentials Указывает, разрешает ли ресурс учетные данные булевая переменная (bool)
allowedHeaders Указывает содержимое заголовка access-control-allow-headers строка[]
allowedMethods Указывает содержимое заголовка метода access-control-allow-methods строка[]
allowedOrigins Указывает содержимое заголовка access-control-allow-origins string[] (обязательно)
Заголовки exposeЗаголовки Указывает содержимое заголовка access-control-expose-headers строка[]
maxAge Указывает содержимое заголовка access-control-max-age инт

Личныйдомен

Имя Описание Ценность
bindingType Тип привязки личного домена. "Отключено"
«Включено SniEnabled»
certificateId Идентификатор ресурса сертификата, привязанного к этому имени узла. Должен существовать в управляемой среде. струна
имя Имя узла. строка (обязательно)

Пользовательское правило масштабирования

Имя Описание Ценность
авторизация Секреты проверки подлинности для настраиваемого правила масштабирования. ScaleRuleAuth[]
метаданные Свойства метаданных для описания настраиваемого правила масштабирования. CustomScaleRuleMetadata
тип Тип настраиваемого правила масштабирования
например: azure-servicebus, redis и т. д.
струна

CustomScaleRuleMetadata

Имя Описание Ценность

Dapr

Имя Описание Ценность
appId (идентификатор приложения) Идентификатор приложения Dapr струна
appPort Сообщает Dapr, какой порт приложения прослушивается инт
appProtocol Сообщает Dapr, какой протокол использует приложение. Допустимые параметры: http и grpc. Значение по умолчанию — http 'GRPC'
"http"
enableApiLogging Включает ведение журнала API для бокового автомобиля Dapr булевая переменная (bool)
Активирован Логическое значение, указывающее, включен ли боковой автомобиль Dapr булевая переменная (bool)
httpMaxRequestSize Увеличение максимального размера параметра http и grpc-серверов текста запроса в МБ для обработки отправки больших файлов. Значение по умолчанию — 4 МБ. инт
httpReadBufferSize (httpReadBufferSize) Максимальный размер буфера чтения заголовка HTTP в КБ для обработки при отправке заголовков с несколькими КБ. Значение по умолчанию — 65 КБ. инт
LogLevel Задает уровень журнала для бокового автомобиля Dapr. Допустимые значения: отладка, информация, предупреждение, ошибка. По умолчанию используется информация. "отладка"
"error"
"info"
"предупреждать"

Окружающая средаVar

Имя Описание Ценность
имя Имя переменной среды. струна
secretRef Имя секрета приложения контейнера, из которого требуется извлечь значение переменной среды. струна
ценность Значение переменной среды, отличной от секрета. струна

Расширенное местоположение

Имя Описание Ценность
имя Имя расширенного расположения. струна
тип Тип расширенного расположения. CustomLocation

Правило httpScaleRule (Правило HttpScale)

Имя Описание Ценность
авторизация Секреты проверки подлинности для настраиваемого правила масштабирования. ScaleRuleAuth[]
метаданные Свойства метаданных для описания правила масштабирования HTTP. Метаданные HttpScaleRule

Метаданные HttpScaleRule

Имя Описание Ценность

Вход

Имя Описание Ценность
additionalPortMappings Параметры для предоставления дополнительных портов в приложении-контейнере IngressPortMapping[]
allowInsecure Логическое значение, указывающее, разрешено ли http-подключения. Если задано значение false HTTP-подключений, автоматически перенаправляются в подключения HTTPS. булевая переменная (bool)
clientCertificateMode Режим сертификата клиента для проверки подлинности mTLS. Игнорировать указывает, что сервер удаляет сертификат клиента при переадресации. Принять указывает, что сервер перенаправит сертификат клиента, но не требует сертификата клиента. Требовать, чтобы сервер должен иметь сертификат клиента. "принять"
"игнорировать"
"требовать"
corsПолитика Политика CORS для приложения-контейнера КорсПолис
пользовательские домены Привязки личного домена для имен узлов контейнерных приложений. Пользовательский домен[]
exposedPort Предоставленный порт в контейнерах для tcp-трафика из входящего трафика инт
внешний Bool, указывающий, предоставляет ли приложение внешнюю конечную точку HTTP булевая переменная (bool)
ipSecurityОграничения Правила ограничения входящих IP-адресов. Правило ограничения IP-безопасности[]
stickySessions Липкие сеансы для единого режима редакции IngressStickySessions
targetPort Целевой порт в контейнерах для трафика из входящего трафика инт
трафик Вес трафика для редакций приложения по весу трафика[]
транспорт Протокол входящего трафика "Auto"
"http"
"http2"
Tcp

IngressPortMapping

Имя Описание Ценность
exposedPort Указывает предоставленный порт для целевого порта. Если он не указан, по умолчанию используется целевой порт. инт
внешний Указывает, доступен ли порт приложения за пределами среды. bool (обязательно)
targetPort Указывает контейнер пользователя порта, который прослушивает int (обязательно)

IngressStickySessions

Имя Описание Ценность
сходство Сопоставление сеансов с привязкой "нет"
"Липкий"

Инициализация контейнера

Имя Описание Ценность
Аргументы Аргументы команд запуска контейнера. строка[]
Приказ Команда запуска контейнера. строка[]
окружение Переменные среды контейнера. Переменная окружающей среды[]
образ Тег образа контейнера. струна
имя Имя настраиваемого контейнера. струна
ресурсы Требования к ресурсам контейнера. Контейнерные ресурсы
volumeMounts Подключение тома контейнера. VolumeMount[]

Правило IpSecurityRestrictionRule

Имя Описание Ценность
действие Разрешить или запретить правила для определения входящего IP-адреса. Примечание. Правила могут состоять только из ALL Allow или ALL Deny "Разрешить"
"Запрет" (обязательно)
описание Опишите правило ограничения IP-адресов, которое отправляется в приложение-контейнер. Это необязательное поле. струна
ipAddressRange Нотация CIDR для сопоставления входящих IP-адресов строка (обязательно)
имя Имя правила ограничения IP-адресов. строка (обязательно)

Управляемая служебная идентичность

Имя Описание Ценность
тип Тип управляемого удостоверения службы (где разрешены типы SystemAssigned и UserAssigned). "Нет"
SystemAssigned
SystemAssigned, UserAssigned
UserAssigned (обязательно)
ИдентичностиНазначенныеПользователем Набор назначенных пользователем удостоверений, связанных с ресурсом. Ключи словаря userAssignedIdentities будут идентификаторами ресурсов ARM в форме: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. Значения словаря могут быть пустыми объектами ({}) в запросах. UserAssignedIdentity (Пользовательские идентификаторы)

Правило QueueScaleRule

Имя Описание Ценность
авторизация Секреты проверки подлинности для правила масштабирования очереди. ScaleRuleAuth[]
длина очереди Длина очереди. инт
название очереди Имя очереди. струна

RegistryCredentials

Имя Описание Ценность
идентичность Управляемое удостоверение, используемое для проверки подлинности в реестре контейнеров Azure. Для удостоверений, назначенных пользователем, используйте полный идентификатор ресурса удостоверения, назначаемого пользователем. Для удостоверений, назначенных системой, используйте system струна
passwordSecretRef Имя секрета, содержащего пароль для входа в реестр струна
сервер Сервер реестра контейнеров струна
имя пользователя Имя пользователя реестра контейнеров струна

Шкала

Имя Описание Ценность
maxReplicas Необязательно. Максимальное количество реплик контейнеров. Значение по умолчанию — 10, если не задано. инт
minReplicas Необязательно. Минимальное количество реплик контейнеров. инт
правила Правила масштабирования. Правило масштабирования[]

Правило масштабирования

Имя Описание Ценность
azureQueue Масштабирование на основе очереди Azure. Правило QueueScaleRule
обычай Пользовательское правило масштабирования. Пользовательское правило масштабирования
HTTP Масштабирование на основе HTTP-запросов. Правило httpScaleRule (Правило HttpScale)
имя Имя правила масштабирования струна
протокол tcp Масштабирование на основе tcp-запросов. Правило TcpScaleRule

ScaleRuleAuth (Масштабная аутентификация)

Имя Описание Ценность
secretRef Имя секрета, из которого необходимо извлечь парамс проверки подлинности. струна
triggerParameter Параметр триггера, использующий секрет струна

Секрет

Имя Описание Ценность
идентичность Идентификатор ресурса управляемого удостоверения для проверки подлинности в Azure Key Vault или System для использования удостоверения, назначаемого системой. струна
keyVaultUrl URL-адрес Azure Key Vault, указывающий на секрет, на который ссылается приложение контейнера. струна
имя Имя секрета. струна
ценность Значение секрета. струна

Ограничения целостности:
Конфиденциальное значение. Передайте в качестве безопасного параметра.

СекретныйVolumeItem (СекретныйVolumeItem)

Имя Описание Ценность
путь Путь к секрету проекта. Если путь не указан, путь по умолчанию имеет имя секрета, указанного в secretRef. струна
secretRef Имя секрета приложения-контейнера, из которого необходимо извлечь значение секрета. струна

Услуга

Имя Описание Ценность
тип Тип службы Dev ContainerApp строка (обязательно)

ServiceBind

Имя Описание Ценность
имя Имя привязки службы струна
serviceId Идентификатор ресурса целевой службы струна

Правило TcpScaleRule

Имя Описание Ценность
авторизация Секреты проверки подлинности для правила масштабирования tcp. ScaleRuleAuth[]
метаданные Свойства метаданных для описания правила масштабирования tcp. Метаданные TcpScaleRule

Метаданные TcpScaleRule

Имя Описание Ценность

Шаблон

Имя Описание Ценность
Контейнеры Список определений контейнеров для приложения-контейнера. контейнера[]
initContainers Список специализированных контейнеров, выполняемых перед контейнерами приложений. InitContainer[]
редакцияSuffix Понятный суффикс, добавляемый к имени редакции струна
масштаб Масштабирование свойств для приложения-контейнера. Масштабировать
serviceBinds Список служб приложений-контейнеров, привязанных к приложению ServiceBind[]
terminationGracePeriodSeconds Необязательная длительность в секундах экземпляра приложения-контейнера должна завершиться корректно. Значение должно быть неотрицательно целым числом. Нулевое значение указывает, что немедленно останавливается через сигнал убийства (нет возможности завершить работу). Если это значение равно nil, вместо этого будет использоваться льготный период по умолчанию. Установите это значение больше, чем ожидаемое время очистки для вашего процесса. Значение по умолчанию — 30 секунд. инт
томов. Список определений томов для приложения-контейнера. тома[]

Отслеживаемые Ресурсные Теги

Имя Описание Ценность

Вес трафика

Имя Описание Ценность
этикетка Связывает метку трафика с редакцией струна
latestRevision Указывает, что вес трафика принадлежит последней стабильной редакции булевая переменная (bool)
имя редакции Имя редакции струна
вес Вес трафика, назначенный редакции инт

UserAssignedIdentity (Пользовательские идентификаторы)

Имя Описание Ценность

Пользовательская назначенная идентичность

Имя Описание Ценность

Объем

Имя Описание Ценность
Варианты монтирования Параметры подключения, используемые при подключении AzureFile. Должен быть строкой, разделенной запятыми. струна
имя Имя тома. струна
Секреты Список секретов, добавляемых в том. Если секреты отсутствуют, все секреты в коллекции будут добавлены в том. Секретный объемItem[]
storageName Имя ресурса хранилища. Не требуется предоставлять значение EmptyDir и Secret. струна
storageType Тип хранилища для тома. Если этот параметр не указан, используйте EmptyDir. AzureFile
«ПустойДиректор»
"Секрет"

Крепление VolumeMount

Имя Описание Ценность
mountPath Путь в контейнере, в котором должен быть подключен том. Не должно содержать ":". струна
подконтур Путь в томе, из которого должен быть подключен том контейнера. По умолчанию используется значение "" (корневой каталог тома). струна
имя тома Это должно соответствовать имени тома. струна

Примеры использования

Проверенные модули Azure

Следующие проверенные модули Azure можно использовать для развертывания этого типа ресурсов.

Модуль Описание
Контейнерное приложение Модуль ресурсов AVM для приложения-контейнера