Microsoft.App containerApps 2022-10-01

Bicep 리소스 정의

containerApps 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.

각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.

리소스 형식

Microsoft.App/containerApps 리소스를 만들려면 템플릿에 다음 Bicep을 추가합니다.

resource symbolicname 'Microsoft.App/containerApps@2022-10-01' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  extendedLocation: {
    name: 'string'
    type: 'CustomLocation'
  }
  identity: {
    type: 'string'
    userAssignedIdentities: {
      {customized property}: {}
    }
  }
  properties: {
    configuration: {
      activeRevisionsMode: 'string'
      dapr: {
        appId: 'string'
        appPort: int
        appProtocol: 'string'
        enableApiLogging: bool
        enabled: bool
        httpMaxRequestSize: int
        httpReadBufferSize: int
        logLevel: 'string'
      }
      ingress: {
        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'
          }
        ]
        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: [
        {
          name: 'string'
          value: '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: json('decimal-as-string')
            memory: 'string'
          }
          volumeMounts: [
            {
              mountPath: 'string'
              volumeName: 'string'
            }
          ]
        }
      ]
      initContainers: [
        {
          args: [
            'string'
          ]
          command: [
            'string'
          ]
          env: [
            {
              name: 'string'
              secretRef: 'string'
              value: 'string'
            }
          ]
          image: 'string'
          name: 'string'
          resources: {
            cpu: json('decimal-as-string')
            memory: 'string'
          }
          volumeMounts: [
            {
              mountPath: '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'
              }
            }
          }
        ]
      }
      volumes: [
        {
          name: 'string'
          storageName: 'string'
          storageType: 'string'
        }
      ]
    }
    workloadProfileType: 'string'
  }
}

속성 값

containerApps

이름 묘사
이름 리소스 이름 string(필수)

문자 제한: 2-32

유효한 문자:
소문자, 숫자 및 하이픈입니다.

문자로 시작하고 영숫자로 끝납니다.
위치 리소스가 있는 지리적 위치 string(필수)
태그 리소스 태그. 태그 이름 및 값의 사전입니다. 템플릿 태그를 참조하세요.
extendedLocation 확장된 위치의 복합 형식입니다. ExtendedLocation
신원 코드에서 비밀 또는 자격 증명을 유지 관리하지 않고 컨테이너 앱이 다른 Azure 서비스와 상호 작용할 수 있도록 관리 ID입니다. ManagedServiceIdentity
속성 ContainerApp 리소스 관련 속성 ContainerAppProperties

ExtendedLocation

이름 묘사
이름 확장된 위치의 이름입니다. 문자열
확장된 위치의 형식입니다. 'CustomLocation'

ManagedServiceIdentity

이름 묘사
관리 서비스 ID의 유형입니다(SystemAssigned 및 UserAssigned 형식이 모두 허용되는 경우). 'None'
'SystemAssigned'
'SystemAssigned,UserAssigned'
'UserAssigned'(필수)
userAssignedIdentities 리소스와 연결된 사용자 할당 ID 집합입니다. userAssignedIdentities 사전 키는 '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} 형식의 ARM 리소스 ID입니다. 사전 값은 요청에서 빈 개체({})일 수 있습니다. UserAssignedIdentities

UserAssignedIdentities

이름 묘사
{customized property} UserAssignedIdentity

UserAssignedIdentity

이 개체에는 배포 중에 설정할 속성이 없습니다. 모든 속성은 ReadOnly입니다.

ContainerAppProperties

이름 묘사
구성 버전이 지정되지 않은 Container App 구성 속성입니다. 구성
environmentId 환경의 리소스 ID입니다. 문자열
managedEnvironmentId 되지 않는. 컨테이너 앱 환경의 리소스 ID입니다. 문자열
템플렛 컨테이너 앱 버전이 지정된 애플리케이션 정의입니다. 템플릿
workloadProfileType 컨테이너 앱 실행을 위해 고정할 워크로드 프로필 유형입니다. 문자열

구성

이름 묘사
activeRevisionsMode ActiveRevisionsMode는 컨테이너 앱에 대해 활성 수정 버전을 처리하는 방법을 제어합니다.
{list} {item} 다중: 여러 수정 버전을 활성화할 수 있습니다. {/item} {item} 단일: 한 번에 하나의 수정 버전만 활성화할 수 있습니다. 이 모드에서는 수정 가중치를 사용할 수 없습니다. 제공된 경우 값이 없으면 기본값입니다. {/item} {/list}
'Multiple'
'Single'
dapr 컨테이너 앱에 대한 Dapr 구성입니다. 다프
진입 수신 구성. 수신
maxInactiveRevisions 선택적. 컨테이너 앱에 사용할 수 있는 최대 비활성 수정 버전입니다. int
레지스트리 컨테이너 앱에서 사용하는 컨테이너에 대한 프라이빗 컨테이너 레지스트리 자격 증명 컬렉션 RegistryCredentials[]
비밀 컨테이너 앱에서 사용하는 비밀 컬렉션 비밀[]

다프(Dapr)

이름 묘사
appId Dapr 애플리케이션 식별자 문자열
appPort 애플리케이션이 수신 대기 중인 포트를 Dapr에 알릴 수 있습니다. int
appProtocol 애플리케이션에서 사용 중인 프로토콜을 Dapr에 알릴 수 있습니다. 유효한 옵션은 http 및 grpc입니다. 기본값은 http입니다. 'grpc'
'http'
enableApiLogging Dapr 사이드카에 대한 API 로깅 사용 bool
사용 Dapr 사이드카를 사용할 수 있는지 여부를 나타내는 부울 bool
httpMaxRequestSize 큰 파일 업로드를 처리하기 위해 요청 본문 http 및 grpc 서버 매개 변수의 최대 크기를 MB로 늘입니다. 기본값은 4MB입니다. int
httpReadBufferSize 다중 KB 헤더를 보낼 때 처리할 HTTP 헤더 읽기 버퍼의 Dapr 최대 크기입니다. 기본값은 65KB입니다. int
logLevel Dapr 사이드카의 로그 수준을 설정합니다. 허용되는 값은 디버그, 정보, 경고, 오류입니다. 기본값은 정보입니다. 'debug'
'error'
'info'
'경고'

진입

이름 묘사
allowInsecure HTTP 연결이 허용되는지 여부를 나타내는 부울입니다. false HTTP 연결로 설정된 경우 HTTPS 연결로 자동으로 리디렉션됩니다. bool
clientCertificateMode mTLS 인증을 위한 클라이언트 인증서 모드입니다. 무시는 서버가 전달에 클라이언트 인증서를 삭제함을 나타냅니다. 수락은 서버가 클라이언트 인증서를 전달하지만 클라이언트 인증서가 필요하지 않음을 나타냅니다. 서버에서 클라이언트 인증서가 필요했음을 나타냅니다. '수락'
'ignore'
'require'
corsPolicy 컨테이너 앱에 대한 CORS 정책 CorsPolicy
customDomains Container Apps 호스트 이름에 대한 사용자 지정 도메인 바인딩입니다. customDomain[]
exposedPort 수신에서 TCP 트래픽에 대한 컨테이너의 노출된 포트 int
외부 앱이 외부 http 엔드포인트를 노출하는지 여부를 나타내는 Bool bool
ipSecurityRestrictions 들어오는 IP 주소를 제한하는 규칙입니다. ipSecurityRestrictionRule[]
targetPort 수신 트래픽에 대한 컨테이너의 대상 포트 int
교통 앱의 수정 버전에 대한 트래픽 가중치 TrafficWeight[]
수송 수신 전송 프로토콜 'auto'
'http'
'http2'
'tcp'

CorsPolicy

이름 묘사
allowCredentials 자격 증명 허용 여부 bool
allowedHeaders 허용되는 HTTP 헤더 string[]
allowedMethods 허용되는 HTTP 메서드 string[]
allowedOrigins 허용된 원본 string[] (필수)
exposeHeaders HTTP 헤더 노출 string[]
maxAge 최대 시간 클라이언트가 결과를 캐시할 수 있습니다. int

CustomDomain

이름 묘사
bindingType 사용자 지정 도메인 바인딩 형식입니다. '사용 안 함'
'SniEnabled'
certificateId 이 호스트 이름에 바인딩할 인증서의 리소스 ID입니다. 문자열
이름 호스트 이름입니다. string(필수)

IpSecurityRestrictionRule

이름 묘사
행동 들어오는 IP를 결정하는 규칙을 허용하거나 거부합니다. 참고: 규칙은 ALL 허용 또는 모든 거부로만 구성됩니다. '허용'
'Deny'(필수)
묘사 컨테이너 앱으로 전송되는 IP 제한 규칙을 설명합니다. 선택적 필드입니다. 문자열
ipAddressRange 들어오는 IP 주소와 일치하는 CIDR 표기법 string(필수)
이름 IP 제한 규칙의 이름입니다. string(필수)

TrafficWeight

이름 묘사
레이블 트래픽 레이블을 수정 버전과 연결 문자열
latestRevision 트래픽 가중치가 안정적인 최신 수정 버전에 속한다는 것을 나타냅니다. bool
revisionName 수정 버전 이름 문자열
무게 수정 버전에 할당된 트래픽 가중치 int

RegistryCredentials

이름 묘사
신원 Azure Container Registry로 인증하는 데 사용할 관리 ID입니다. 사용자 할당 ID의 경우 전체 사용자 할당 ID 리소스 ID를 사용합니다. 시스템 할당 ID의 경우 'system'을 사용합니다. 문자열
passwordSecretRef 레지스트리 로그인 암호를 포함하는 비밀의 이름입니다. 문자열
서버 Container Registry Server 문자열
사용자 이름 Container Registry 사용자 이름 문자열

비밀

이름 묘사
이름 비밀 이름입니다. 문자열
비밀 값입니다. 문자열

제약 조건:
중요한 값입니다. 보안 매개 변수로 전달합니다.

템플렛

이름 묘사
컨테이너 컨테이너 앱에 대한 컨테이너 정의 목록입니다. 컨테이너[]
initContainers 앱 컨테이너 앞에서 실행되는 특수 컨테이너 목록입니다. InitContainer[]
revisionSuffix 수정 이름에 추가된 사용자에게 친숙한 접미사 문자열
저울 컨테이너 앱의 크기 조정 속성입니다. 크기 조정
볼륨 컨테이너 앱에 대한 볼륨 정의 목록입니다. 볼륨[]

컨테이너

이름 묘사
인수(args) 컨테이너 시작 명령 인수입니다. string[]
명령 컨테이너 시작 명령입니다. string[]
환경을 컨테이너 환경 변수입니다. EnvironmentVar[]
이미지 컨테이너 이미지 태그입니다. 문자열
이름 사용자 지정 컨테이너 이름입니다. 문자열
프로브 컨테이너에 대한 프로브 목록입니다. ContainerAppProbe[]
리소스 컨테이너 리소스 요구 사항. containerResources
volumeMounts 컨테이너 볼륨 탑재. VolumeMount[]

EnvironmentVar

이름 묘사
이름 환경 변수 이름입니다. 문자열
secretRef 환경 변수 값을 끌어올 컨테이너 앱 비밀의 이름입니다. 문자열
비밀이 아닌 환경 변수 값입니다. 문자열

ContainerAppProbe

이름 묘사
failureThreshold 프로브를 고려할 최소 연속 실패는 성공한 후 실패했습니다. 기본값은 3입니다. 최소값은 1입니다. 최대값은 10입니다. int
httpGet HTTPGet은 수행할 http 요청을 지정합니다. ContainerAppProbeHttpGet
initialDelaySeconds 활동성 프로브가 시작되기 전에 컨테이너가 시작된 후의 시간(초)입니다. 최소값은 1입니다. 최대값은 60입니다. int
periodSeconds 프로브를 수행하는 빈도(초)입니다. 기본값은 10초입니다. 최소값은 1입니다. 최대값은 240입니다. int
successThreshold 실패한 후 프로브가 성공한 것으로 간주될 최소 연속 성공입니다. 기본값은 1입니다. 활동성 및 시작의 경우 1이어야 합니다. 최소값은 1입니다. 최대값은 10입니다. int
tcpSocket TCPSocket은 TCP 포트와 관련된 작업을 지정합니다. TCP 후크는 아직 지원되지 않습니다. ContainerAppProbeTcpSocket
terminationGracePeriodSeconds 선택적 기간(초)은 프로브 실패 시 Pod가 정상적으로 종료되어야 합니다. 유예 기간은 Pod에서 실행되는 프로세스가 종료 신호를 보낸 후의 기간(초)이며 프로세스가 종료 신호로 강제로 중단되는 시간입니다. 이 값을 프로세스의 예상 정리 시간보다 길게 설정합니다. 이 값이 nil이면 Pod의 terminationGracePeriodSeconds가 사용됩니다. 그렇지 않으면 이 값은 Pod 사양에서 제공하는 값을 재정의합니다. 값은 음수가 아닌 정수여야 합니다. 값 0은 kill 신호를 통해 즉시 중지됨을 나타냅니다(종료할 기회가 없음). 알파 필드이며 ProbeTerminationGracePeriod 기능 게이트를 사용하도록 설정해야 합니다. 최대값은 3600초(1시간)입니다. int
timeoutSeconds 프로브 시간이 초과된 후의 시간(초)입니다. 기본값은 1초입니다. 최소값은 1입니다. 최대값은 240입니다. int
프로브의 형식입니다. '활기'
'준비'
'Startup'

ContainerAppProbeHttpGet

이름 묘사
호스트 연결할 호스트 이름입니다. 기본적으로 Pod IP가 사용됩니다. 대신 httpHeaders에서 "호스트"를 설정하려고 할 것입니다. 문자열
httpHeaders 요청에 설정할 사용자 지정 헤더입니다. HTTP는 반복되는 헤더를 허용합니다. ContainerAppProbeHttpGetHttpHeadersItem[]
HTTP 서버에서 액세스하는 경로입니다. 문자열
항구 컨테이너에서 액세스할 포트의 이름 또는 번호입니다. 번호는 1에서 65535까지의 범위에 있어야 합니다. 이름은 IANA_SVC_NAME 합니다. int(필수)
음모 호스트에 연결하는 데 사용할 체계입니다. 기본값은 HTTP입니다. 'HTTP'
'HTTPS'

ContainerAppProbeHttpGetHttpHeadersItem

이름 묘사
이름 헤더 필드 이름 string(필수)
헤더 필드 값 string(필수)

ContainerAppProbeTcpSocket

이름 묘사
호스트 선택 사항: 연결할 호스트 이름, 기본값은 Pod IP입니다. 문자열
항구 컨테이너에서 액세스할 포트의 번호 또는 이름입니다. 번호는 1에서 65535까지의 범위에 있어야 합니다. 이름은 IANA_SVC_NAME 합니다. int(필수)

ContainerResources

이름 묘사
cpu(cpu) 코어의 필수 CPU(예: 0.5)는 10진수 값을 지정하려면 json() 함수를 사용합니다. int 또는 json decimal
기억 필요한 메모리(예: "250Mb") 문자열

VolumeMount

이름 묘사
mountPath 볼륨을 탑재해야 하는 컨테이너 내의 경로입니다. ':'을 포함하지 않아야 합니다. 문자열
volumeName 볼륨의 이름과 일치해야 합니다. 문자열

InitContainer

이름 묘사
인수(args) 컨테이너 시작 명령 인수입니다. string[]
명령 컨테이너 시작 명령입니다. string[]
환경을 컨테이너 환경 변수입니다. EnvironmentVar[]
이미지 컨테이너 이미지 태그입니다. 문자열
이름 사용자 지정 컨테이너 이름입니다. 문자열
리소스 컨테이너 리소스 요구 사항. containerResources
volumeMounts 컨테이너 볼륨 탑재. VolumeMount[]

저울

이름 묘사
maxReplicas 선택적. 컨테이너 복제본의 최대 수입니다. 설정되지 않은 경우 기본값은 10입니다. int
minReplicas 선택적. 컨테이너 복제본의 최소 수입니다. int
규칙 규칙 크기 조정 ScaleRule[]

ScaleRule

이름 묘사
azureQueue Azure 큐 기반 크기 조정. QueueScaleRule
관습 사용자 지정 크기 조정 규칙입니다. CustomScaleRule
http(http) HTTP 요청 기반 크기 조정 httpScaleRule
이름 크기 조정 규칙 이름 문자열
tcp Tcp 요청 기반 크기 조정 TcpScaleRule

QueueScaleRule

이름 묘사
인증 큐 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
queueLength 큐 길이입니다. int
queueName 큐 이름입니다. 문자열

ScaleRuleAuth

이름 묘사
secretRef 인증 매개 변수를 끌어올 컨테이너 앱 비밀의 이름입니다. 문자열
triggerParameter 비밀을 사용하는 트리거 매개 변수 문자열

CustomScaleRule

이름 묘사
인증 사용자 지정 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
메타데이터 사용자 지정 크기 조정 규칙을 설명하는 메타데이터 속성입니다. CustomScaleRuleMetadata
사용자 지정 배율 규칙의 형식
예: azure-servicebus, redis 등
문자열

CustomScaleRuleMetadata

이름 묘사
{customized property} 문자열

HttpScaleRule

이름 묘사
인증 사용자 지정 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
메타데이터 http 크기 조정 규칙을 설명하는 메타데이터 속성입니다. httpScaleRuleMetadata

HttpScaleRuleMetadata

이름 묘사
{customized property} 문자열

TcpScaleRule

이름 묘사
인증 tcp 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
메타데이터 tcp 크기 조정 규칙을 설명하는 메타데이터 속성입니다. TcpScaleRuleMetadata

TcpScaleRuleMetadata

이름 묘사
{customized property} 문자열

음량

이름 묘사
이름 볼륨 이름입니다. 문자열
storageName 스토리지 리소스의 이름입니다. EmptyDir을 제공할 필요가 없습니다. 문자열
storageType 볼륨의 스토리지 유형입니다. 제공되지 않은 경우 EmptyDir을 사용합니다. 'AzureFile'
'EmptyDir'

빠른 시작 템플릿

다음 빠른 시작 템플릿은 이 리소스 유형을 배포합니다.

템플렛 묘사
레지스트리 사용하여 컨테이너 앱 및 환경을 만듭니다.

Azure 배포
Azure Container Registry에서 기본 컨테이너 앱을 사용하여 컨테이너 앱 환경을 만듭니다. 또한 Log Analytics 작업 영역을 배포하여 로그를 저장합니다.
컨테이너 앱 환경 사용하여 두 개의 컨테이너 앱을 만듭니다.

Azure 배포
기본 컨테이너 앱을 사용하여 두 개의 컨테이너 앱 환경을 만듭니다. 또한 Log Analytics 작업 영역을 배포하여 로그를 저장합니다.
컨테이너 앱 환경 내에 컨테이너 앱을 만듭니다.

Azure 배포
기본 컨테이너 앱을 사용하여 컨테이너 앱 환경을 만듭니다. 또한 Log Analytics 작업 영역을 배포하여 로그를 저장합니다.
정의된 HTTP 크기 조정 규칙 사용하여 컨테이너 앱을 만듭니다.

Azure 배포
HTTP 트래픽에 따라 크기가 조정되는 기본 컨테이너 앱을 사용하여 컨테이너 앱 환경을 만듭니다.
VNET 사용하여 외부 컨테이너 앱 환경을 만듭니다.

Azure 배포
VNET을 사용하여 외부 컨테이너 앱 환경을 만듭니다.
VNET 사용하여 내부 컨테이너 앱 환경을 만듭니다.

Azure 배포
VNET을 사용하여 내부 컨테이너 앱 환경을 만듭니다.

ARM 템플릿 리소스 정의

containerApps 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.

각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.

리소스 형식

Microsoft.App/containerApps 리소스를 만들려면 템플릿에 다음 JSON을 추가합니다.

{
  "type": "Microsoft.App/containerApps",
  "apiVersion": "2022-10-01",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "extendedLocation": {
    "name": "string",
    "type": "CustomLocation"
  },
  "identity": {
    "type": "string",
    "userAssignedIdentities": {
      "{customized property}": {}
    }
  },
  "properties": {
    "configuration": {
      "activeRevisionsMode": "string",
      "dapr": {
        "appId": "string",
        "appPort": "int",
        "appProtocol": "string",
        "enableApiLogging": "bool",
        "enabled": "bool",
        "httpMaxRequestSize": "int",
        "httpReadBufferSize": "int",
        "logLevel": "string"
      },
      "ingress": {
        "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"
          }
        ],
        "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": [
        {
          "name": "string",
          "value": "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": "[json('decimal-as-string')]",
            "memory": "string"
          },
          "volumeMounts": [
            {
              "mountPath": "string",
              "volumeName": "string"
            }
          ]
        }
      ],
      "initContainers": [
        {
          "args": [ "string" ],
          "command": [ "string" ],
          "env": [
            {
              "name": "string",
              "secretRef": "string",
              "value": "string"
            }
          ],
          "image": "string",
          "name": "string",
          "resources": {
            "cpu": "[json('decimal-as-string')]",
            "memory": "string"
          },
          "volumeMounts": [
            {
              "mountPath": "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"
              }
            }
          }
        ]
      },
      "volumes": [
        {
          "name": "string",
          "storageName": "string",
          "storageType": "string"
        }
      ]
    },
    "workloadProfileType": "string"
  }
}

속성 값

containerApps

이름 묘사
리소스 종류 'Microsoft.App/containerApps'
apiVersion 리소스 api 버전 '2022-10-01'
이름 리소스 이름 string(필수)

문자 제한: 2-32

유효한 문자:
소문자, 숫자 및 하이픈입니다.

문자로 시작하고 영숫자로 끝납니다.
위치 리소스가 있는 지리적 위치 string(필수)
태그 리소스 태그. 태그 이름 및 값의 사전입니다. 템플릿 태그를 참조하세요.
extendedLocation 확장된 위치의 복합 형식입니다. ExtendedLocation
신원 코드에서 비밀 또는 자격 증명을 유지 관리하지 않고 컨테이너 앱이 다른 Azure 서비스와 상호 작용할 수 있도록 관리 ID입니다. ManagedServiceIdentity
속성 ContainerApp 리소스 관련 속성 ContainerAppProperties

ExtendedLocation

이름 묘사
이름 확장된 위치의 이름입니다. 문자열
확장된 위치의 형식입니다. 'CustomLocation'

ManagedServiceIdentity

이름 묘사
관리 서비스 ID의 유형입니다(SystemAssigned 및 UserAssigned 형식이 모두 허용되는 경우). 'None'
'SystemAssigned'
'SystemAssigned,UserAssigned'
'UserAssigned'(필수)
userAssignedIdentities 리소스와 연결된 사용자 할당 ID 집합입니다. userAssignedIdentities 사전 키는 '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} 형식의 ARM 리소스 ID입니다. 사전 값은 요청에서 빈 개체({})일 수 있습니다. UserAssignedIdentities

UserAssignedIdentities

이름 묘사
{customized property} UserAssignedIdentity

UserAssignedIdentity

이 개체에는 배포 중에 설정할 속성이 없습니다. 모든 속성은 ReadOnly입니다.

ContainerAppProperties

이름 묘사
구성 버전이 지정되지 않은 Container App 구성 속성입니다. 구성
environmentId 환경의 리소스 ID입니다. 문자열
managedEnvironmentId 되지 않는. 컨테이너 앱 환경의 리소스 ID입니다. 문자열
템플렛 컨테이너 앱 버전이 지정된 애플리케이션 정의입니다. 템플릿
workloadProfileType 컨테이너 앱 실행을 위해 고정할 워크로드 프로필 유형입니다. 문자열

구성

이름 묘사
activeRevisionsMode ActiveRevisionsMode는 컨테이너 앱에 대해 활성 수정 버전을 처리하는 방법을 제어합니다.
{list} {item} 다중: 여러 수정 버전을 활성화할 수 있습니다. {/item} {item} 단일: 한 번에 하나의 수정 버전만 활성화할 수 있습니다. 이 모드에서는 수정 가중치를 사용할 수 없습니다. 제공된 경우 값이 없으면 기본값입니다. {/item} {/list}
'Multiple'
'Single'
dapr 컨테이너 앱에 대한 Dapr 구성입니다. 다프
진입 수신 구성. 수신
maxInactiveRevisions 선택적. 컨테이너 앱에 사용할 수 있는 최대 비활성 수정 버전입니다. int
레지스트리 컨테이너 앱에서 사용하는 컨테이너에 대한 프라이빗 컨테이너 레지스트리 자격 증명 컬렉션 RegistryCredentials[]
비밀 컨테이너 앱에서 사용하는 비밀 컬렉션 비밀[]

다프(Dapr)

이름 묘사
appId Dapr 애플리케이션 식별자 문자열
appPort 애플리케이션이 수신 대기 중인 포트를 Dapr에 알릴 수 있습니다. int
appProtocol 애플리케이션에서 사용 중인 프로토콜을 Dapr에 알릴 수 있습니다. 유효한 옵션은 http 및 grpc입니다. 기본값은 http입니다. 'grpc'
'http'
enableApiLogging Dapr 사이드카에 대한 API 로깅 사용 bool
사용 Dapr 사이드카를 사용할 수 있는지 여부를 나타내는 부울 bool
httpMaxRequestSize 큰 파일 업로드를 처리하기 위해 요청 본문 http 및 grpc 서버 매개 변수의 최대 크기를 MB로 늘입니다. 기본값은 4MB입니다. int
httpReadBufferSize 다중 KB 헤더를 보낼 때 처리할 HTTP 헤더 읽기 버퍼의 Dapr 최대 크기입니다. 기본값은 65KB입니다. int
logLevel Dapr 사이드카의 로그 수준을 설정합니다. 허용되는 값은 디버그, 정보, 경고, 오류입니다. 기본값은 정보입니다. 'debug'
'error'
'info'
'경고'

진입

이름 묘사
allowInsecure HTTP 연결이 허용되는지 여부를 나타내는 부울입니다. false HTTP 연결로 설정된 경우 HTTPS 연결로 자동으로 리디렉션됩니다. bool
clientCertificateMode mTLS 인증을 위한 클라이언트 인증서 모드입니다. 무시는 서버가 전달에 클라이언트 인증서를 삭제함을 나타냅니다. 수락은 서버가 클라이언트 인증서를 전달하지만 클라이언트 인증서가 필요하지 않음을 나타냅니다. 서버에서 클라이언트 인증서가 필요했음을 나타냅니다. '수락'
'ignore'
'require'
corsPolicy 컨테이너 앱에 대한 CORS 정책 CorsPolicy
customDomains Container Apps 호스트 이름에 대한 사용자 지정 도메인 바인딩입니다. customDomain[]
exposedPort 수신에서 TCP 트래픽에 대한 컨테이너의 노출된 포트 int
외부 앱이 외부 http 엔드포인트를 노출하는지 여부를 나타내는 Bool bool
ipSecurityRestrictions 들어오는 IP 주소를 제한하는 규칙입니다. ipSecurityRestrictionRule[]
targetPort 수신 트래픽에 대한 컨테이너의 대상 포트 int
교통 앱의 수정 버전에 대한 트래픽 가중치 TrafficWeight[]
수송 수신 전송 프로토콜 'auto'
'http'
'http2'
'tcp'

CorsPolicy

이름 묘사
allowCredentials 자격 증명 허용 여부 bool
allowedHeaders 허용되는 HTTP 헤더 string[]
allowedMethods 허용되는 HTTP 메서드 string[]
allowedOrigins 허용된 원본 string[] (필수)
exposeHeaders HTTP 헤더 노출 string[]
maxAge 최대 시간 클라이언트가 결과를 캐시할 수 있습니다. int

CustomDomain

이름 묘사
bindingType 사용자 지정 도메인 바인딩 형식입니다. '사용 안 함'
'SniEnabled'
certificateId 이 호스트 이름에 바인딩할 인증서의 리소스 ID입니다. 문자열
이름 호스트 이름입니다. string(필수)

IpSecurityRestrictionRule

이름 묘사
행동 들어오는 IP를 결정하는 규칙을 허용하거나 거부합니다. 참고: 규칙은 ALL 허용 또는 모든 거부로만 구성됩니다. '허용'
'Deny'(필수)
묘사 컨테이너 앱으로 전송되는 IP 제한 규칙을 설명합니다. 선택적 필드입니다. 문자열
ipAddressRange 들어오는 IP 주소와 일치하는 CIDR 표기법 string(필수)
이름 IP 제한 규칙의 이름입니다. string(필수)

TrafficWeight

이름 묘사
레이블 트래픽 레이블을 수정 버전과 연결 문자열
latestRevision 트래픽 가중치가 안정적인 최신 수정 버전에 속한다는 것을 나타냅니다. bool
revisionName 수정 버전 이름 문자열
무게 수정 버전에 할당된 트래픽 가중치 int

RegistryCredentials

이름 묘사
신원 Azure Container Registry로 인증하는 데 사용할 관리 ID입니다. 사용자 할당 ID의 경우 전체 사용자 할당 ID 리소스 ID를 사용합니다. 시스템 할당 ID의 경우 'system'을 사용합니다. 문자열
passwordSecretRef 레지스트리 로그인 암호를 포함하는 비밀의 이름입니다. 문자열
서버 Container Registry Server 문자열
사용자 이름 Container Registry 사용자 이름 문자열

비밀

이름 묘사
이름 비밀 이름입니다. 문자열
비밀 값입니다. 문자열

제약 조건:
중요한 값입니다. 보안 매개 변수로 전달합니다.

템플렛

이름 묘사
컨테이너 컨테이너 앱에 대한 컨테이너 정의 목록입니다. 컨테이너[]
initContainers 앱 컨테이너 앞에서 실행되는 특수 컨테이너 목록입니다. InitContainer[]
revisionSuffix 수정 이름에 추가된 사용자에게 친숙한 접미사 문자열
저울 컨테이너 앱의 크기 조정 속성입니다. 크기 조정
볼륨 컨테이너 앱에 대한 볼륨 정의 목록입니다. 볼륨[]

컨테이너

이름 묘사
인수(args) 컨테이너 시작 명령 인수입니다. string[]
명령 컨테이너 시작 명령입니다. string[]
환경을 컨테이너 환경 변수입니다. EnvironmentVar[]
이미지 컨테이너 이미지 태그입니다. 문자열
이름 사용자 지정 컨테이너 이름입니다. 문자열
프로브 컨테이너에 대한 프로브 목록입니다. ContainerAppProbe[]
리소스 컨테이너 리소스 요구 사항. containerResources
volumeMounts 컨테이너 볼륨 탑재. VolumeMount[]

EnvironmentVar

이름 묘사
이름 환경 변수 이름입니다. 문자열
secretRef 환경 변수 값을 끌어올 컨테이너 앱 비밀의 이름입니다. 문자열
비밀이 아닌 환경 변수 값입니다. 문자열

ContainerAppProbe

이름 묘사
failureThreshold 프로브를 고려할 최소 연속 실패는 성공한 후 실패했습니다. 기본값은 3입니다. 최소값은 1입니다. 최대값은 10입니다. int
httpGet HTTPGet은 수행할 http 요청을 지정합니다. ContainerAppProbeHttpGet
initialDelaySeconds 활동성 프로브가 시작되기 전에 컨테이너가 시작된 후의 시간(초)입니다. 최소값은 1입니다. 최대값은 60입니다. int
periodSeconds 프로브를 수행하는 빈도(초)입니다. 기본값은 10초입니다. 최소값은 1입니다. 최대값은 240입니다. int
successThreshold 실패한 후 프로브가 성공한 것으로 간주될 최소 연속 성공입니다. 기본값은 1입니다. 활동성 및 시작의 경우 1이어야 합니다. 최소값은 1입니다. 최대값은 10입니다. int
tcpSocket TCPSocket은 TCP 포트와 관련된 작업을 지정합니다. TCP 후크는 아직 지원되지 않습니다. ContainerAppProbeTcpSocket
terminationGracePeriodSeconds 선택적 기간(초)은 프로브 실패 시 Pod가 정상적으로 종료되어야 합니다. 유예 기간은 Pod에서 실행되는 프로세스가 종료 신호를 보낸 후의 기간(초)이며 프로세스가 종료 신호로 강제로 중단되는 시간입니다. 이 값을 프로세스의 예상 정리 시간보다 길게 설정합니다. 이 값이 nil이면 Pod의 terminationGracePeriodSeconds가 사용됩니다. 그렇지 않으면 이 값은 Pod 사양에서 제공하는 값을 재정의합니다. 값은 음수가 아닌 정수여야 합니다. 값 0은 kill 신호를 통해 즉시 중지됨을 나타냅니다(종료할 기회가 없음). 알파 필드이며 ProbeTerminationGracePeriod 기능 게이트를 사용하도록 설정해야 합니다. 최대값은 3600초(1시간)입니다. int
timeoutSeconds 프로브 시간이 초과된 후의 시간(초)입니다. 기본값은 1초입니다. 최소값은 1입니다. 최대값은 240입니다. int
프로브의 형식입니다. '활기'
'준비'
'Startup'

ContainerAppProbeHttpGet

이름 묘사
호스트 연결할 호스트 이름입니다. 기본적으로 Pod IP가 사용됩니다. 대신 httpHeaders에서 "호스트"를 설정하려고 할 것입니다. 문자열
httpHeaders 요청에 설정할 사용자 지정 헤더입니다. HTTP는 반복되는 헤더를 허용합니다. ContainerAppProbeHttpGetHttpHeadersItem[]
HTTP 서버에서 액세스하는 경로입니다. 문자열
항구 컨테이너에서 액세스할 포트의 이름 또는 번호입니다. 번호는 1에서 65535까지의 범위에 있어야 합니다. 이름은 IANA_SVC_NAME 합니다. int(필수)
음모 호스트에 연결하는 데 사용할 체계입니다. 기본값은 HTTP입니다. 'HTTP'
'HTTPS'

ContainerAppProbeHttpGetHttpHeadersItem

이름 묘사
이름 헤더 필드 이름 string(필수)
헤더 필드 값 string(필수)

ContainerAppProbeTcpSocket

이름 묘사
호스트 선택 사항: 연결할 호스트 이름, 기본값은 Pod IP입니다. 문자열
항구 컨테이너에서 액세스할 포트의 번호 또는 이름입니다. 번호는 1에서 65535까지의 범위에 있어야 합니다. 이름은 IANA_SVC_NAME 합니다. int(필수)

ContainerResources

이름 묘사
cpu(cpu) 코어의 필수 CPU(예: 0.5)는 10진수 값을 지정하려면 json() 함수를 사용합니다. int 또는 json decimal
기억 필요한 메모리(예: "250Mb") 문자열

VolumeMount

이름 묘사
mountPath 볼륨을 탑재해야 하는 컨테이너 내의 경로입니다. ':'을 포함하지 않아야 합니다. 문자열
volumeName 볼륨의 이름과 일치해야 합니다. 문자열

InitContainer

이름 묘사
인수(args) 컨테이너 시작 명령 인수입니다. string[]
명령 컨테이너 시작 명령입니다. string[]
환경을 컨테이너 환경 변수입니다. EnvironmentVar[]
이미지 컨테이너 이미지 태그입니다. 문자열
이름 사용자 지정 컨테이너 이름입니다. 문자열
리소스 컨테이너 리소스 요구 사항. containerResources
volumeMounts 컨테이너 볼륨 탑재. VolumeMount[]

저울

이름 묘사
maxReplicas 선택적. 컨테이너 복제본의 최대 수입니다. 설정되지 않은 경우 기본값은 10입니다. int
minReplicas 선택적. 컨테이너 복제본의 최소 수입니다. int
규칙 규칙 크기 조정 ScaleRule[]

ScaleRule

이름 묘사
azureQueue Azure 큐 기반 크기 조정. QueueScaleRule
관습 사용자 지정 크기 조정 규칙입니다. CustomScaleRule
http(http) HTTP 요청 기반 크기 조정 httpScaleRule
이름 크기 조정 규칙 이름 문자열
tcp Tcp 요청 기반 크기 조정 TcpScaleRule

QueueScaleRule

이름 묘사
인증 큐 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
queueLength 큐 길이입니다. int
queueName 큐 이름입니다. 문자열

ScaleRuleAuth

이름 묘사
secretRef 인증 매개 변수를 끌어올 컨테이너 앱 비밀의 이름입니다. 문자열
triggerParameter 비밀을 사용하는 트리거 매개 변수 문자열

CustomScaleRule

이름 묘사
인증 사용자 지정 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
메타데이터 사용자 지정 크기 조정 규칙을 설명하는 메타데이터 속성입니다. CustomScaleRuleMetadata
사용자 지정 배율 규칙의 형식
예: azure-servicebus, redis 등
문자열

CustomScaleRuleMetadata

이름 묘사
{customized property} 문자열

HttpScaleRule

이름 묘사
인증 사용자 지정 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
메타데이터 http 크기 조정 규칙을 설명하는 메타데이터 속성입니다. httpScaleRuleMetadata

HttpScaleRuleMetadata

이름 묘사
{customized property} 문자열

TcpScaleRule

이름 묘사
인증 tcp 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
메타데이터 tcp 크기 조정 규칙을 설명하는 메타데이터 속성입니다. TcpScaleRuleMetadata

TcpScaleRuleMetadata

이름 묘사
{customized property} 문자열

음량

이름 묘사
이름 볼륨 이름입니다. 문자열
storageName 스토리지 리소스의 이름입니다. EmptyDir을 제공할 필요가 없습니다. 문자열
storageType 볼륨의 스토리지 유형입니다. 제공되지 않은 경우 EmptyDir을 사용합니다. 'AzureFile'
'EmptyDir'

빠른 시작 템플릿

다음 빠른 시작 템플릿은 이 리소스 유형을 배포합니다.

템플렛 묘사
레지스트리 사용하여 컨테이너 앱 및 환경을 만듭니다.

Azure 배포
Azure Container Registry에서 기본 컨테이너 앱을 사용하여 컨테이너 앱 환경을 만듭니다. 또한 Log Analytics 작업 영역을 배포하여 로그를 저장합니다.
컨테이너 앱 환경 사용하여 두 개의 컨테이너 앱을 만듭니다.

Azure 배포
기본 컨테이너 앱을 사용하여 두 개의 컨테이너 앱 환경을 만듭니다. 또한 Log Analytics 작업 영역을 배포하여 로그를 저장합니다.
컨테이너 앱 환경 내에 컨테이너 앱을 만듭니다.

Azure 배포
기본 컨테이너 앱을 사용하여 컨테이너 앱 환경을 만듭니다. 또한 Log Analytics 작업 영역을 배포하여 로그를 저장합니다.
정의된 HTTP 크기 조정 규칙 사용하여 컨테이너 앱을 만듭니다.

Azure 배포
HTTP 트래픽에 따라 크기가 조정되는 기본 컨테이너 앱을 사용하여 컨테이너 앱 환경을 만듭니다.
VNET 사용하여 외부 컨테이너 앱 환경을 만듭니다.

Azure 배포
VNET을 사용하여 외부 컨테이너 앱 환경을 만듭니다.
VNET 사용하여 내부 컨테이너 앱 환경을 만듭니다.

Azure 배포
VNET을 사용하여 내부 컨테이너 앱 환경을 만듭니다.

Terraform(AzAPI 공급자) 리소스 정의

containerApps 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.

  • 리소스 그룹

각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.

리소스 형식

Microsoft.App/containerApps 리소스를 만들려면 템플릿에 다음 Terraform을 추가합니다.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.App/containerApps@2022-10-01"
  name = "string"
  location = "string"
  parent_id = "string"
  tags = {
    tagName1 = "tagValue1"
    tagName2 = "tagValue2"
  }
  identity {
    type = "string"
    identity_ids = []
  }
  body = jsonencode({
    properties = {
      configuration = {
        activeRevisionsMode = "string"
        dapr = {
          appId = "string"
          appPort = int
          appProtocol = "string"
          enableApiLogging = bool
          enabled = bool
          httpMaxRequestSize = int
          httpReadBufferSize = int
          logLevel = "string"
        }
        ingress = {
          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"
            }
          ]
          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 = [
          {
            name = "string"
            value = "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 = "decimal-as-string"
              memory = "string"
            }
            volumeMounts = [
              {
                mountPath = "string"
                volumeName = "string"
              }
            ]
          }
        ]
        initContainers = [
          {
            args = [
              "string"
            ]
            command = [
              "string"
            ]
            env = [
              {
                name = "string"
                secretRef = "string"
                value = "string"
              }
            ]
            image = "string"
            name = "string"
            resources = {
              cpu = "decimal-as-string"
              memory = "string"
            }
            volumeMounts = [
              {
                mountPath = "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"
                }
              }
            }
          ]
        }
        volumes = [
          {
            name = "string"
            storageName = "string"
            storageType = "string"
          }
        ]
      }
      workloadProfileType = "string"
    }
    extendedLocation = {
      name = "string"
      type = "CustomLocation"
    }
  })
}

속성 값

containerApps

이름 묘사
리소스 종류 "Microsoft.App/containerApps@2022-10-01"
이름 리소스 이름 string(필수)

문자 제한: 2-32

유효한 문자:
소문자, 숫자 및 하이픈입니다.

문자로 시작하고 영숫자로 끝납니다.
위치 리소스가 있는 지리적 위치 string(필수)
parent_id 리소스 그룹에 배포하려면 해당 리소스 그룹의 ID를 사용합니다. string(필수)
태그 리소스 태그. 태그 이름 및 값의 사전입니다.
extendedLocation 확장된 위치의 복합 형식입니다. ExtendedLocation
신원 코드에서 비밀 또는 자격 증명을 유지 관리하지 않고 컨테이너 앱이 다른 Azure 서비스와 상호 작용할 수 있도록 관리 ID입니다. ManagedServiceIdentity
속성 ContainerApp 리소스 관련 속성 ContainerAppProperties

ExtendedLocation

이름 묘사
이름 확장된 위치의 이름입니다. 문자열
확장된 위치의 형식입니다. "CustomLocation"

ManagedServiceIdentity

이름 묘사
관리 서비스 ID의 유형입니다(SystemAssigned 및 UserAssigned 형식이 모두 허용되는 경우). "SystemAssigned"
"SystemAssigned,UserAssigned"
"UserAssigned"(필수)
identity_ids 리소스와 연결된 사용자 할당 ID 집합입니다. userAssignedIdentities 사전 키는 '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} 형식의 ARM 리소스 ID입니다. 사전 값은 요청에서 빈 개체({})일 수 있습니다. 사용자 ID ID의 배열입니다.

UserAssignedIdentities

이름 묘사
{customized property} UserAssignedIdentity

UserAssignedIdentity

이 개체에는 배포 중에 설정할 속성이 없습니다. 모든 속성은 ReadOnly입니다.

ContainerAppProperties

이름 묘사
구성 버전이 지정되지 않은 Container App 구성 속성입니다. 구성
environmentId 환경의 리소스 ID입니다. 문자열
managedEnvironmentId 되지 않는. 컨테이너 앱 환경의 리소스 ID입니다. 문자열
템플렛 컨테이너 앱 버전이 지정된 애플리케이션 정의입니다. 템플릿
workloadProfileType 컨테이너 앱 실행을 위해 고정할 워크로드 프로필 유형입니다. 문자열

구성

이름 묘사
activeRevisionsMode ActiveRevisionsMode는 컨테이너 앱에 대해 활성 수정 버전을 처리하는 방법을 제어합니다.
{list} {item} 다중: 여러 수정 버전을 활성화할 수 있습니다. {/item} {item} 단일: 한 번에 하나의 수정 버전만 활성화할 수 있습니다. 이 모드에서는 수정 가중치를 사용할 수 없습니다. 제공된 경우 값이 없으면 기본값입니다. {/item} {/list}
"다중"
"Single"
dapr 컨테이너 앱에 대한 Dapr 구성입니다. 다프
진입 수신 구성. 수신
maxInactiveRevisions 선택적. 컨테이너 앱에 사용할 수 있는 최대 비활성 수정 버전입니다. int
레지스트리 컨테이너 앱에서 사용하는 컨테이너에 대한 프라이빗 컨테이너 레지스트리 자격 증명 컬렉션 RegistryCredentials[]
비밀 컨테이너 앱에서 사용하는 비밀 컬렉션 비밀[]

다프(Dapr)

이름 묘사
appId Dapr 애플리케이션 식별자 문자열
appPort 애플리케이션이 수신 대기 중인 포트를 Dapr에 알릴 수 있습니다. int
appProtocol 애플리케이션에서 사용 중인 프로토콜을 Dapr에 알릴 수 있습니다. 유효한 옵션은 http 및 grpc입니다. 기본값은 http입니다. "grpc"
"http"
enableApiLogging Dapr 사이드카에 대한 API 로깅 사용 bool
사용 Dapr 사이드카를 사용할 수 있는지 여부를 나타내는 부울 bool
httpMaxRequestSize 큰 파일 업로드를 처리하기 위해 요청 본문 http 및 grpc 서버 매개 변수의 최대 크기를 MB로 늘입니다. 기본값은 4MB입니다. int
httpReadBufferSize 다중 KB 헤더를 보낼 때 처리할 HTTP 헤더 읽기 버퍼의 Dapr 최대 크기입니다. 기본값은 65KB입니다. int
logLevel Dapr 사이드카의 로그 수준을 설정합니다. 허용되는 값은 디버그, 정보, 경고, 오류입니다. 기본값은 정보입니다. "debug"
"error"
"info"
"경고"

진입

이름 묘사
allowInsecure HTTP 연결이 허용되는지 여부를 나타내는 부울입니다. false HTTP 연결로 설정된 경우 HTTPS 연결로 자동으로 리디렉션됩니다. bool
clientCertificateMode mTLS 인증을 위한 클라이언트 인증서 모드입니다. 무시는 서버가 전달에 클라이언트 인증서를 삭제함을 나타냅니다. 수락은 서버가 클라이언트 인증서를 전달하지만 클라이언트 인증서가 필요하지 않음을 나타냅니다. 서버에서 클라이언트 인증서가 필요했음을 나타냅니다. "수락"
"ignore"
"require"
corsPolicy 컨테이너 앱에 대한 CORS 정책 CorsPolicy
customDomains Container Apps 호스트 이름에 대한 사용자 지정 도메인 바인딩입니다. customDomain[]
exposedPort 수신에서 TCP 트래픽에 대한 컨테이너의 노출된 포트 int
외부 앱이 외부 http 엔드포인트를 노출하는지 여부를 나타내는 Bool bool
ipSecurityRestrictions 들어오는 IP 주소를 제한하는 규칙입니다. ipSecurityRestrictionRule[]
targetPort 수신 트래픽에 대한 컨테이너의 대상 포트 int
교통 앱의 수정 버전에 대한 트래픽 가중치 TrafficWeight[]
수송 수신 전송 프로토콜 "auto"
"http"
"http2"
"tcp"

CorsPolicy

이름 묘사
allowCredentials 자격 증명 허용 여부 bool
allowedHeaders 허용되는 HTTP 헤더 string[]
allowedMethods 허용되는 HTTP 메서드 string[]
allowedOrigins 허용된 원본 string[] (필수)
exposeHeaders HTTP 헤더 노출 string[]
maxAge 최대 시간 클라이언트가 결과를 캐시할 수 있습니다. int

CustomDomain

이름 묘사
bindingType 사용자 지정 도메인 바인딩 형식입니다. "사용 안 함"
"SniEnabled"
certificateId 이 호스트 이름에 바인딩할 인증서의 리소스 ID입니다. 문자열
이름 호스트 이름입니다. string(필수)

IpSecurityRestrictionRule

이름 묘사
행동 들어오는 IP를 결정하는 규칙을 허용하거나 거부합니다. 참고: 규칙은 ALL 허용 또는 모든 거부로만 구성됩니다. "허용"
"거부"(필수)
묘사 컨테이너 앱으로 전송되는 IP 제한 규칙을 설명합니다. 선택적 필드입니다. 문자열
ipAddressRange 들어오는 IP 주소와 일치하는 CIDR 표기법 string(필수)
이름 IP 제한 규칙의 이름입니다. string(필수)

TrafficWeight

이름 묘사
레이블 트래픽 레이블을 수정 버전과 연결 문자열
latestRevision 트래픽 가중치가 안정적인 최신 수정 버전에 속한다는 것을 나타냅니다. bool
revisionName 수정 버전 이름 문자열
무게 수정 버전에 할당된 트래픽 가중치 int

RegistryCredentials

이름 묘사
신원 Azure Container Registry로 인증하는 데 사용할 관리 ID입니다. 사용자 할당 ID의 경우 전체 사용자 할당 ID 리소스 ID를 사용합니다. 시스템 할당 ID의 경우 'system'을 사용합니다. 문자열
passwordSecretRef 레지스트리 로그인 암호를 포함하는 비밀의 이름입니다. 문자열
서버 Container Registry Server 문자열
사용자 이름 Container Registry 사용자 이름 문자열

비밀

이름 묘사
이름 비밀 이름입니다. 문자열
비밀 값입니다. 문자열

제약 조건:
중요한 값입니다. 보안 매개 변수로 전달합니다.

템플렛

이름 묘사
컨테이너 컨테이너 앱에 대한 컨테이너 정의 목록입니다. 컨테이너[]
initContainers 앱 컨테이너 앞에서 실행되는 특수 컨테이너 목록입니다. InitContainer[]
revisionSuffix 수정 이름에 추가된 사용자에게 친숙한 접미사 문자열
저울 컨테이너 앱의 크기 조정 속성입니다. 크기 조정
볼륨 컨테이너 앱에 대한 볼륨 정의 목록입니다. 볼륨[]

컨테이너

이름 묘사
인수(args) 컨테이너 시작 명령 인수입니다. string[]
명령 컨테이너 시작 명령입니다. string[]
환경을 컨테이너 환경 변수입니다. EnvironmentVar[]
이미지 컨테이너 이미지 태그입니다. 문자열
이름 사용자 지정 컨테이너 이름입니다. 문자열
프로브 컨테이너에 대한 프로브 목록입니다. ContainerAppProbe[]
리소스 컨테이너 리소스 요구 사항. containerResources
volumeMounts 컨테이너 볼륨 탑재. VolumeMount[]

EnvironmentVar

이름 묘사
이름 환경 변수 이름입니다. 문자열
secretRef 환경 변수 값을 끌어올 컨테이너 앱 비밀의 이름입니다. 문자열
비밀이 아닌 환경 변수 값입니다. 문자열

ContainerAppProbe

이름 묘사
failureThreshold 프로브를 고려할 최소 연속 실패는 성공한 후 실패했습니다. 기본값은 3입니다. 최소값은 1입니다. 최대값은 10입니다. int
httpGet HTTPGet은 수행할 http 요청을 지정합니다. ContainerAppProbeHttpGet
initialDelaySeconds 활동성 프로브가 시작되기 전에 컨테이너가 시작된 후의 시간(초)입니다. 최소값은 1입니다. 최대값은 60입니다. int
periodSeconds 프로브를 수행하는 빈도(초)입니다. 기본값은 10초입니다. 최소값은 1입니다. 최대값은 240입니다. int
successThreshold 실패한 후 프로브가 성공한 것으로 간주될 최소 연속 성공입니다. 기본값은 1입니다. 활동성 및 시작의 경우 1이어야 합니다. 최소값은 1입니다. 최대값은 10입니다. int
tcpSocket TCPSocket은 TCP 포트와 관련된 작업을 지정합니다. TCP 후크는 아직 지원되지 않습니다. ContainerAppProbeTcpSocket
terminationGracePeriodSeconds 선택적 기간(초)은 프로브 실패 시 Pod가 정상적으로 종료되어야 합니다. 유예 기간은 Pod에서 실행되는 프로세스가 종료 신호를 보낸 후의 기간(초)이며 프로세스가 종료 신호로 강제로 중단되는 시간입니다. 이 값을 프로세스의 예상 정리 시간보다 길게 설정합니다. 이 값이 nil이면 Pod의 terminationGracePeriodSeconds가 사용됩니다. 그렇지 않으면 이 값은 Pod 사양에서 제공하는 값을 재정의합니다. 값은 음수가 아닌 정수여야 합니다. 값 0은 kill 신호를 통해 즉시 중지됨을 나타냅니다(종료할 기회가 없음). 알파 필드이며 ProbeTerminationGracePeriod 기능 게이트를 사용하도록 설정해야 합니다. 최대값은 3600초(1시간)입니다. int
timeoutSeconds 프로브 시간이 초과된 후의 시간(초)입니다. 기본값은 1초입니다. 최소값은 1입니다. 최대값은 240입니다. int
프로브의 형식입니다. "활기"
"준비 상태"
"시작"

ContainerAppProbeHttpGet

이름 묘사
호스트 연결할 호스트 이름입니다. 기본적으로 Pod IP가 사용됩니다. 대신 httpHeaders에서 "호스트"를 설정하려고 할 것입니다. 문자열
httpHeaders 요청에 설정할 사용자 지정 헤더입니다. HTTP는 반복되는 헤더를 허용합니다. ContainerAppProbeHttpGetHttpHeadersItem[]
HTTP 서버에서 액세스하는 경로입니다. 문자열
항구 컨테이너에서 액세스할 포트의 이름 또는 번호입니다. 번호는 1에서 65535까지의 범위에 있어야 합니다. 이름은 IANA_SVC_NAME 합니다. int(필수)
음모 호스트에 연결하는 데 사용할 체계입니다. 기본값은 HTTP입니다. "HTTP"
"HTTPS"

ContainerAppProbeHttpGetHttpHeadersItem

이름 묘사
이름 헤더 필드 이름 string(필수)
헤더 필드 값 string(필수)

ContainerAppProbeTcpSocket

이름 묘사
호스트 선택 사항: 연결할 호스트 이름, 기본값은 Pod IP입니다. 문자열
항구 컨테이너에서 액세스할 포트의 번호 또는 이름입니다. 번호는 1에서 65535까지의 범위에 있어야 합니다. 이름은 IANA_SVC_NAME 합니다. int(필수)

ContainerResources

이름 묘사
cpu(cpu) 코어의 필수 CPU(예: 0.5)는 10진수 값을 문자열로 지정합니다. int 또는 json decimal
기억 필요한 메모리(예: "250Mb") 문자열

VolumeMount

이름 묘사
mountPath 볼륨을 탑재해야 하는 컨테이너 내의 경로입니다. ':'을 포함하지 않아야 합니다. 문자열
volumeName 볼륨의 이름과 일치해야 합니다. 문자열

InitContainer

이름 묘사
인수(args) 컨테이너 시작 명령 인수입니다. string[]
명령 컨테이너 시작 명령입니다. string[]
환경을 컨테이너 환경 변수입니다. EnvironmentVar[]
이미지 컨테이너 이미지 태그입니다. 문자열
이름 사용자 지정 컨테이너 이름입니다. 문자열
리소스 컨테이너 리소스 요구 사항. containerResources
volumeMounts 컨테이너 볼륨 탑재. VolumeMount[]

저울

이름 묘사
maxReplicas 선택적. 컨테이너 복제본의 최대 수입니다. 설정되지 않은 경우 기본값은 10입니다. int
minReplicas 선택적. 컨테이너 복제본의 최소 수입니다. int
규칙 규칙 크기 조정 ScaleRule[]

ScaleRule

이름 묘사
azureQueue Azure 큐 기반 크기 조정. QueueScaleRule
관습 사용자 지정 크기 조정 규칙입니다. CustomScaleRule
http(http) HTTP 요청 기반 크기 조정 httpScaleRule
이름 크기 조정 규칙 이름 문자열
tcp Tcp 요청 기반 크기 조정 TcpScaleRule

QueueScaleRule

이름 묘사
인증 큐 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
queueLength 큐 길이입니다. int
queueName 큐 이름입니다. 문자열

ScaleRuleAuth

이름 묘사
secretRef 인증 매개 변수를 끌어올 컨테이너 앱 비밀의 이름입니다. 문자열
triggerParameter 비밀을 사용하는 트리거 매개 변수 문자열

CustomScaleRule

이름 묘사
인증 사용자 지정 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
메타데이터 사용자 지정 크기 조정 규칙을 설명하는 메타데이터 속성입니다. CustomScaleRuleMetadata
사용자 지정 배율 규칙의 형식
예: azure-servicebus, redis 등
문자열

CustomScaleRuleMetadata

이름 묘사
{customized property} 문자열

HttpScaleRule

이름 묘사
인증 사용자 지정 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
메타데이터 http 크기 조정 규칙을 설명하는 메타데이터 속성입니다. httpScaleRuleMetadata

HttpScaleRuleMetadata

이름 묘사
{customized property} 문자열

TcpScaleRule

이름 묘사
인증 tcp 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
메타데이터 tcp 크기 조정 규칙을 설명하는 메타데이터 속성입니다. TcpScaleRuleMetadata

TcpScaleRuleMetadata

이름 묘사
{customized property} 문자열

음량

이름 묘사
이름 볼륨 이름입니다. 문자열
storageName 스토리지 리소스의 이름입니다. EmptyDir을 제공할 필요가 없습니다. 문자열
storageType 볼륨의 스토리지 유형입니다. 제공되지 않은 경우 EmptyDir을 사용합니다. "AzureFile"
"EmptyDir"