다음을 통해 공유


containerApps Microsoft.App

Bicep 리소스 정의

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

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

리소스 형식

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

resource symbolicname 'Microsoft.App/containerApps@2024-10-02-preview' = {
  extendedLocation: {
    name: 'string'
    type: 'string'
  }
  identity: {
    type: 'string'
    userAssignedIdentities: {
      {customized property}: {}
    }
  }
  kind: 'string'
  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'
      }
      identitySettings: [
        {
          identity: 'string'
          lifecycle: '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
        targetPortHttpScheme: 'string'
        traffic: [
          {
            label: 'string'
            latestRevision: bool
            revisionName: 'string'
            weight: int
          }
        ]
        transport: 'string'
      }
      maxInactiveRevisions: int
      registries: [
        {
          identity: 'string'
          passwordSecretRef: 'string'
          server: 'string'
          username: 'string'
        }
      ]
      revisionTransitionThreshold: int
      runtime: {
        dotnet: {
          autoConfigureDataProtection: bool
        }
        java: {
          enableMetrics: bool
          javaAgent: {
            enabled: bool
            logging: {
              loggerSettings: [
                {
                  level: 'string'
                  logger: 'string'
                }
              ]
            }
          }
        }
      }
      secrets: [
        {
          identity: 'string'
          keyVaultUrl: 'string'
          name: 'string'
          value: 'string'
        }
      ]
      service: {
        type: 'string'
      }
      targetLabel: 'string'
    }
    environmentId: 'string'
    managedEnvironmentId: 'string'
    patchingConfiguration: {
      patchingMode: 'string'
    }
    template: {
      containers: [
        {
          args: [
            'string'
          ]
          command: [
            'string'
          ]
          env: [
            {
              name: 'string'
              secretRef: 'string'
              value: 'string'
            }
          ]
          image: 'string'
          imageType: '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
            gpu: int
            memory: 'string'
          }
          volumeMounts: [
            {
              mountPath: 'string'
              subPath: 'string'
              volumeName: 'string'
            }
          ]
        }
      ]
      initContainers: [
        {
          args: [
            'string'
          ]
          command: [
            'string'
          ]
          env: [
            {
              name: 'string'
              secretRef: 'string'
              value: 'string'
            }
          ]
          image: 'string'
          imageType: 'string'
          name: 'string'
          resources: {
            cpu: int
            gpu: int
            memory: 'string'
          }
          volumeMounts: [
            {
              mountPath: 'string'
              subPath: 'string'
              volumeName: 'string'
            }
          ]
        }
      ]
      revisionSuffix: 'string'
      scale: {
        cooldownPeriod: int
        maxReplicas: int
        minReplicas: int
        pollingInterval: int
        rules: [
          {
            azureQueue: {
              accountName: 'string'
              auth: [
                {
                  secretRef: 'string'
                  triggerParameter: 'string'
                }
              ]
              identity: 'string'
              queueLength: int
              queueName: 'string'
            }
            custom: {
              auth: [
                {
                  secretRef: 'string'
                  triggerParameter: 'string'
                }
              ]
              identity: 'string'
              metadata: {
                {customized property}: 'string'
              }
              type: 'string'
            }
            http: {
              auth: [
                {
                  secretRef: 'string'
                  triggerParameter: 'string'
                }
              ]
              identity: 'string'
              metadata: {
                {customized property}: 'string'
              }
            }
            name: 'string'
            tcp: {
              auth: [
                {
                  secretRef: 'string'
                  triggerParameter: 'string'
                }
              ]
              identity: 'string'
              metadata: {
                {customized property}: 'string'
              }
            }
          }
        ]
      }
      serviceBinds: [
        {
          clientType: 'string'
          customizedKeys: {
            {customized property}: 'string'
          }
          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'
  }
}

속성 값

구성

이름 묘사
activeRevisionsMode ActiveRevisionsMode는 컨테이너 앱에 대해 활성 수정 버전을 처리하는 방법을 제어합니다.
<목록><항목>Single: 한 번에 하나의 수정 버전만 활성화할 수 있습니다. 트래픽 가중치는 사용할 수 없습니다. 기본값입니다.</item><항목>다중: 선택적 트래픽 가중치 및 레이블을 포함하여 여러 수정 버전을 활성화할 수 있습니다.</item><항목>레이블: 레이블이 있는 수정 버전만 활성화됩니다. 트래픽 가중치는 레이블에 적용할 수 있습니다. /item></list><
'레이블'
'Multiple'
'Single'
dapr 컨테이너 앱에 대한 Dapr 구성입니다. Dapr
identitySettings 컨테이너 앱에 할당된 관리 ID에 대한 선택적 설정입니다. 여기에 관리 ID를 지정하지 않으면 기본 설정이 사용됩니다. IdentitySettings[]
진입 수신 구성. 수신
maxInactiveRevisions 선택적. 컨테이너 앱에 사용할 수 있는 최대 비활성 수정 버전입니다. int
레지스트리 컨테이너 앱에서 사용하는 컨테이너에 대한 프라이빗 컨테이너 레지스트리 자격 증명 컬렉션 RegistryCredentials[]
revisionTransitionThreshold 선택적. 수정 버전 전환이 발생하기 전에 발생해야 하는 총 복제본 수의 백분율입니다. 지정되지 않은 경우 기본값은 100입니다. 값은 0보다 크고 100보다 작거나 같아야 합니다. int

제약 조건:
최소값 = 1
최대값 = 100
런타임 컨테이너 앱에 대한 앱 런타임 구성입니다. 런타임
비밀 컨테이너 앱에서 사용하는 비밀 컬렉션 비밀[]
서비스 개발 Container App Service가 될 컨테이너 앱 서비스
targetLabel 레이블 수정 모드에 필요합니다. 새로 만든 수정 버전에 적용할 레이블입니다. 문자열

컨테이너

이름 묘사
인수(args) 컨테이너 시작 명령 인수입니다. string[]
명령 컨테이너 시작 명령입니다. string[]
환경을 컨테이너 환경 변수입니다. EnvironmentVar[]
이미지 컨테이너 이미지 태그입니다. 문자열
이미지 유형 이미지의 형식입니다. 시스템에서 이미지를 관리할 수 있도록 CloudBuild로 설정합니다. 여기서 사용자는 이미지 필드를 통해 이미지를 업데이트할 수 없습니다. 사용자가 제공한 이미지에 대해 ContainerImage로 설정합니다. 'CloudBuild'
'ContainerImage'
이름 사용자 지정 컨테이너 이름입니다. 문자열
프로브 컨테이너에 대한 프로브 목록입니다. ContainerAppProbe[]
리소스 컨테이너 리소스 요구 사항. containerResources
volumeMounts 컨테이너 볼륨 탑재. VolumeMount[]

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(필수)

ContainerAppProperties

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

ContainerAppPropertiesPatchingConfiguration

이름 묘사
patchingMode 컨테이너 앱에 대한 패치 모드입니다. 이 필드의 Null 또는 기본값은 RP에 의해 자동으로 해석됩니다. 자동 모드는 사용 가능한 패치를 자동으로 적용합니다. 수동 모드에서는 사용자가 패치를 수동으로 적용해야 합니다. 비활성화된 모드는 패치 검색 및 자동 패치를 중지합니다. 'Automatic'
'사용 안 함'
'수동'

ContainerResources

이름 묘사
cpu(cpu) 코어의 필수 CPU(예: 0.5) int
gpu GPU 기반 앱의 코어에 필요한 GPU(예: 1.0) int
기억 필요한 메모리(예: "250Mb") 문자열

CorsPolicy

이름 묘사
allowCredentials 리소스에서 자격 증명을 허용하는지 여부를 지정합니다. bool
allowedHeaders access-control-allow-headers 헤더의 콘텐츠를 지정합니다. string[]
allowedMethods access-control-allow-methods 헤더의 콘텐츠를 지정합니다. string[]
allowedOrigins access-control-allow-origins 헤더의 콘텐츠를 지정합니다. string[] (필수)
exposeHeaders access-control-expose-headers 헤더의 콘텐츠를 지정합니다. string[]
maxAge access-control-max-age 헤더의 콘텐츠를 지정합니다. int

CustomDomain

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

CustomScaleRule

이름 묘사
인증 사용자 지정 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
신원 컨테이너 앱에 할당된 사용자 할당 관리 ID의 리소스 ID이거나 시스템 할당 ID에 대한 '시스템'입니다. 문자열
메타데이터 사용자 지정 크기 조정 규칙을 설명하는 메타데이터 속성입니다. CustomScaleRuleMetadata
사용자 지정 배율 규칙의 형식
예: azure-servicebus, redis 등
문자열

CustomScaleRuleMetadata

이름 묘사

다프(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'
'경고'

EnvironmentVar

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

ExtendedLocation

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

HttpScaleRule

이름 묘사
인증 사용자 지정 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
신원 컨테이너 앱에 할당된 사용자 할당 관리 ID의 리소스 ID이거나 시스템 할당 ID에 대한 '시스템'입니다. 문자열
메타데이터 http 크기 조정 규칙을 설명하는 메타데이터 속성입니다. httpScaleRuleMetadata

HttpScaleRuleMetadata

이름 묘사

IdentitySettings

이름 묘사
신원 컨테이너 앱에 할당된 사용자 할당 관리 ID의 리소스 ID이거나 시스템 할당 ID에 대한 '시스템'입니다. string(필수)
수명 주기 관리 ID를 사용할 수 있어야 하는 컨테이너 앱의 수명 주기 단계를 선택하는 데 사용합니다. 'All'
'Init'
'Main'
'None'

진입

이름 묘사
additionalPortMappings 컨테이너 앱에 추가 포트를 노출하는 설정 IngressPortMapping[]
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[]
stickySessions 단일 수정 모드에 대한 고정 세션 IngressStickySessions
targetPort 수신 트래픽에 대한 컨테이너의 대상 포트 int
targetPortHttpScheme http 앱이 http 또는 https에서 수신 대기하는지 여부 'http'
'https'
교통 앱의 수정 버전에 대한 트래픽 가중치 TrafficWeight[]
수송 수신 전송 프로토콜 'auto'
'http'
'http2'
'tcp'

IngressPortMapping

이름 묘사
exposedPort 대상 포트에 대해 노출된 포트를 지정합니다. 지정하지 않으면 기본적으로 대상 포트로 설정됩니다. int
외부 환경 외부에서 앱 포트에 액세스할 수 있는지 여부를 지정합니다. bool(필수)
targetPort 포트 사용자의 컨테이너 수신 대기를 지정합니다. int(필수)

IngressStickySessions

이름 묘사
선호도 고정 세션 선호도 'none'
'끈적끈적한'

InitContainer

이름 묘사
인수(args) 컨테이너 시작 명령 인수입니다. string[]
명령 컨테이너 시작 명령입니다. string[]
환경을 컨테이너 환경 변수입니다. EnvironmentVar[]
이미지 컨테이너 이미지 태그입니다. 문자열
이미지 유형 이미지의 형식입니다. 시스템에서 이미지를 관리할 수 있도록 CloudBuild로 설정합니다. 여기서 사용자는 이미지 필드를 통해 이미지를 업데이트할 수 없습니다. 사용자가 제공한 이미지에 대해 ContainerImage로 설정합니다. 'CloudBuild'
'ContainerImage'
이름 사용자 지정 컨테이너 이름입니다. 문자열
리소스 컨테이너 리소스 요구 사항. containerResources
volumeMounts 컨테이너 볼륨 탑재. VolumeMount[]

IpSecurityRestrictionRule

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

LoggerSetting

이름 묘사
수준 지정된 로거의 로그 수준입니다. 'debug'
'error'
'info'
'off'
'trace'
'warn'(필수)
로거 이름입니다. string(필수)

ManagedServiceIdentity

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

Microsoft.App/containerApps

이름 묘사
extendedLocation 확장된 위치의 복합 형식입니다. ExtendedLocation
신원 코드에서 비밀 또는 자격 증명을 유지 관리하지 않고 컨테이너 앱이 다른 Azure 서비스와 상호 작용할 수 있도록 관리 ID입니다. ManagedServiceIdentity
종류 동일한 형식의 리소스에 대해 다른 환경을 렌더링하는 데 사용되는 메타데이터입니다. 예를 들어 WorkflowApp은 일종의 Microsoft.App/ContainerApps 형식입니다. 지원되는 경우 리소스 공급자는 이 값의 유효성을 검사하고 유지해야 합니다. 'workflowapp'
위치 리소스가 있는 지리적 위치 string(필수)
managedBy 이 리소스를 관리하는 리소스의 정규화된 리소스 ID입니다. 이 리소스가 다른 Azure 리소스에서 관리되는지를 나타냅니다. 이 경우 전체 모드 배포는 다른 리소스에서 관리되므로 템플릿에서 제거된 경우 리소스를 삭제하지 않습니다. 문자열
이름 리소스 이름 string(필수)
속성 ContainerApp 리소스 관련 속성 ContainerAppProperties
태그 리소스 태그 태그 이름 및 값의 사전입니다. 템플릿 태그를 참조하세요.

QueueScaleRule

이름 묘사
accountName 스토리지 계정 이름입니다. 관리 ID를 사용하여 인증하는 경우 필수 문자열
인증 큐 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
신원 컨테이너 앱에 할당된 사용자 할당 관리 ID의 리소스 ID이거나 시스템 할당 ID에 대한 '시스템'입니다. 문자열
queueLength 큐 길이입니다. int
queueName 큐 이름입니다. 문자열

RegistryCredentials

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

런타임

이름 묘사
dotnet .NET 앱 구성 RuntimeDotnet
자바 Java 앱 구성 RuntimeJava

RuntimeDotnet

이름 묘사
autoConfigureDataProtection ASP.NET Core Data Protection 기능 자동 구성 bool

RuntimeJava

이름 묘사
enableMetrics Java 앱에 jmx 핵심 메트릭 사용 bool
javaAgent Java 에이전트에서 달성한 진단 기능 RuntimeJavaAgent

RuntimeJavaAgent

이름 묘사
사용 Java 앱에 대해 Java 에이전트 삽입을 사용하도록 설정합니다. bool
로깅 Java 로깅 시나리오의 기능입니다. runtimeJavaAgentLogging

RuntimeJavaAgentLogging

이름 묘사
loggerSettings Java 앱에 대한 로거 설정입니다. LoggerSetting[]

저울

이름 묘사
cooldownPeriod 선택적. KEDA 쿨다운 기간. 설정하지 않으면 기본값은 300초입니다. int
maxReplicas 선택적. 컨테이너 복제본의 최대 수입니다. 설정되지 않은 경우 기본값은 10입니다. int
minReplicas 선택적. 컨테이너 복제본의 최소 수입니다. int
pollingInterval 선택적. KEDA 폴링 간격입니다. 설정되지 않은 경우 기본값은 30초입니다. int
규칙 규칙 크기 조정 ScaleRule[]

ScaleRule

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

ScaleRuleAuth

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

비밀

이름 묘사
신원 Azure Key Vault로 인증할 관리 ID의 리소스 ID 또는 시스템 할당 ID를 사용하는 시스템입니다. 문자열
keyVaultUrl 컨테이너 앱에서 참조하는 비밀을 가리키는 Azure Key Vault URL입니다. 문자열
이름 비밀 이름입니다. 문자열
비밀 값입니다. 문자열

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

SecretVolumeItem

이름 묘사
프로젝트 비밀에 대한 경로입니다. 경로가 제공되지 않은 경우 경로는 기본적으로 secretRef에 나열된 비밀의 이름으로 설정됩니다. 문자열
secretRef 비밀 값을 끌어올 컨테이너 앱 비밀의 이름입니다. 문자열

서비스

이름 묘사
Dev ContainerApp 서비스 유형 string(필수)

ServiceBind

이름 묘사
clientType 서비스에 연결하는 데 사용할 클라이언트 유형 문자열
customizedKeys 앱에 삽입된 값을 사용자 지정하기 위한 사용자 지정된 키 ServiceBindCustomizedKeys
이름 서비스 바인딩의 이름 문자열
serviceId 대상 서비스의 리소스 ID 문자열

ServiceBindCustomizedKeys

이름 묘사

TcpScaleRule

이름 묘사
인증 tcp 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
신원 컨테이너 앱에 할당된 사용자 할당 관리 ID의 리소스 ID이거나 시스템 할당 ID에 대한 '시스템'입니다. 문자열
메타데이터 tcp 크기 조정 규칙을 설명하는 메타데이터 속성입니다. TcpScaleRuleMetadata

TcpScaleRuleMetadata

이름 묘사

템플렛

이름 묘사
컨테이너 컨테이너 앱에 대한 컨테이너 정의 목록입니다. 컨테이너[]
initContainers 앱 컨테이너 앞에서 실행되는 특수 컨테이너 목록입니다. InitContainer[]
revisionSuffix 수정 이름에 추가된 사용자에게 친숙한 접미사 문자열
저울 컨테이너 앱의 크기 조정 속성입니다. 크기 조정
serviceBinds 앱에 바인딩된 컨테이너 앱 서비스 목록 ServiceBind[]
terminationGracePeriodSeconds 컨테이너 앱 인스턴스가 정상적으로 종료되어야 하는 시간(초)입니다. 값은 음수가 아닌 정수여야 합니다. 값 0은 kill 신호를 통해 즉시 중지됨을 나타냅니다(종료할 기회가 없음). 이 값이 nil이면 기본 유예 기간이 대신 사용됩니다. 이 값을 프로세스의 예상 정리 시간보다 길게 설정합니다. 기본값은 30초입니다. int
볼륨 컨테이너 앱에 대한 볼륨 정의 목록입니다. 볼륨[]

TrackedResourceTags

이름 묘사

TrafficWeight

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

UserAssignedIdentities

이름 묘사

UserAssignedIdentity

이름 묘사

음량

이름 묘사
mountOptions Azure 파일 공유 또는 NFS Azure 파일 공유를 탑재하는 동안 사용되는 탑재 옵션입니다. 쉼표로 구분된 문자열이어야 합니다. 문자열
이름 볼륨 이름입니다. 문자열
비밀 볼륨에 추가할 비밀 목록입니다. 비밀이 제공되지 않으면 컬렉션의 모든 비밀이 볼륨에 추가됩니다. SecretVolumeItem[]
storageName 스토리지 리소스의 이름입니다. EmptyDir 및 Secret을 제공할 필요가 없습니다. 문자열
storageType 볼륨의 스토리지 유형입니다. 제공되지 않은 경우 EmptyDir을 사용합니다. 'AzureFile'
'EmptyDir'
'NfsAzureFile'
'비밀'
'Smb'

VolumeMount

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

빠른 시작 샘플

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

Bicep 파일 묘사
레지스트리 사용하여 컨테이너 앱 및 환경을 만듭니다. Azure Container Registry에서 기본 컨테이너 앱을 사용하여 컨테이너 앱 환경을 만듭니다. 또한 Log Analytics 작업 영역을 배포하여 로그를 저장합니다.
정의된 HTTP 크기 조정 규칙 사용하여 컨테이너 앱을 만듭니다. HTTP 트래픽에 따라 크기가 조정되는 기본 컨테이너 앱을 사용하여 컨테이너 앱 환경을 만듭니다.
컨테이너 앱 환경 내에 컨테이너 앱을 만듭니다. 기본 컨테이너 앱을 사용하여 컨테이너 앱 환경을 만듭니다. 또한 Log Analytics 작업 영역을 배포하여 로그를 저장합니다.
Container Apps 사용하여 Dapr 마이크로 서비스 앱을 만듭니다. Container Apps를 사용하여 Dapr 마이크로 서비스 앱을 만듭니다.
Container Apps 사용하여 Dapr pub-sub servicebus 앱을 만듭니다. Container Apps를 사용하여 Dapr pub-sub servicebus 앱을 만듭니다.
컨테이너 앱 환경 사용하여 두 개의 컨테이너 앱을 만듭니다. 기본 컨테이너 앱을 사용하여 두 개의 컨테이너 앱 환경을 만듭니다. 또한 Log Analytics 작업 영역을 배포하여 로그를 저장합니다.
VNET 사용하여 외부 컨테이너 앱 환경을 만듭니다. VNET을 사용하여 외부 컨테이너 앱 환경을 만듭니다.
VNET 사용하여 내부 컨테이너 앱 환경을 만듭니다. VNET을 사용하여 내부 컨테이너 앱 환경을 만듭니다.

ARM 템플릿 리소스 정의

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

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

리소스 형식

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

{
  "type": "Microsoft.App/containerApps",
  "apiVersion": "2024-10-02-preview",
  "name": "string",
  "extendedLocation": {
    "name": "string",
    "type": "string"
  },
  "identity": {
    "type": "string",
    "userAssignedIdentities": {
      "{customized property}": {
      }
    }
  },
  "kind": "string",
  "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"
      },
      "identitySettings": [
        {
          "identity": "string",
          "lifecycle": "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",
        "targetPortHttpScheme": "string",
        "traffic": [
          {
            "label": "string",
            "latestRevision": "bool",
            "revisionName": "string",
            "weight": "int"
          }
        ],
        "transport": "string"
      },
      "maxInactiveRevisions": "int",
      "registries": [
        {
          "identity": "string",
          "passwordSecretRef": "string",
          "server": "string",
          "username": "string"
        }
      ],
      "revisionTransitionThreshold": "int",
      "runtime": {
        "dotnet": {
          "autoConfigureDataProtection": "bool"
        },
        "java": {
          "enableMetrics": "bool",
          "javaAgent": {
            "enabled": "bool",
            "logging": {
              "loggerSettings": [
                {
                  "level": "string",
                  "logger": "string"
                }
              ]
            }
          }
        }
      },
      "secrets": [
        {
          "identity": "string",
          "keyVaultUrl": "string",
          "name": "string",
          "value": "string"
        }
      ],
      "service": {
        "type": "string"
      },
      "targetLabel": "string"
    },
    "environmentId": "string",
    "managedEnvironmentId": "string",
    "patchingConfiguration": {
      "patchingMode": "string"
    },
    "template": {
      "containers": [
        {
          "args": [ "string" ],
          "command": [ "string" ],
          "env": [
            {
              "name": "string",
              "secretRef": "string",
              "value": "string"
            }
          ],
          "image": "string",
          "imageType": "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",
            "gpu": "int",
            "memory": "string"
          },
          "volumeMounts": [
            {
              "mountPath": "string",
              "subPath": "string",
              "volumeName": "string"
            }
          ]
        }
      ],
      "initContainers": [
        {
          "args": [ "string" ],
          "command": [ "string" ],
          "env": [
            {
              "name": "string",
              "secretRef": "string",
              "value": "string"
            }
          ],
          "image": "string",
          "imageType": "string",
          "name": "string",
          "resources": {
            "cpu": "int",
            "gpu": "int",
            "memory": "string"
          },
          "volumeMounts": [
            {
              "mountPath": "string",
              "subPath": "string",
              "volumeName": "string"
            }
          ]
        }
      ],
      "revisionSuffix": "string",
      "scale": {
        "cooldownPeriod": "int",
        "maxReplicas": "int",
        "minReplicas": "int",
        "pollingInterval": "int",
        "rules": [
          {
            "azureQueue": {
              "accountName": "string",
              "auth": [
                {
                  "secretRef": "string",
                  "triggerParameter": "string"
                }
              ],
              "identity": "string",
              "queueLength": "int",
              "queueName": "string"
            },
            "custom": {
              "auth": [
                {
                  "secretRef": "string",
                  "triggerParameter": "string"
                }
              ],
              "identity": "string",
              "metadata": {
                "{customized property}": "string"
              },
              "type": "string"
            },
            "http": {
              "auth": [
                {
                  "secretRef": "string",
                  "triggerParameter": "string"
                }
              ],
              "identity": "string",
              "metadata": {
                "{customized property}": "string"
              }
            },
            "name": "string",
            "tcp": {
              "auth": [
                {
                  "secretRef": "string",
                  "triggerParameter": "string"
                }
              ],
              "identity": "string",
              "metadata": {
                "{customized property}": "string"
              }
            }
          }
        ]
      },
      "serviceBinds": [
        {
          "clientType": "string",
          "customizedKeys": {
            "{customized property}": "string"
          },
          "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"
  }
}

속성 값

구성

이름 묘사
activeRevisionsMode ActiveRevisionsMode는 컨테이너 앱에 대해 활성 수정 버전을 처리하는 방법을 제어합니다.
<목록><항목>Single: 한 번에 하나의 수정 버전만 활성화할 수 있습니다. 트래픽 가중치는 사용할 수 없습니다. 기본값입니다.</item><항목>다중: 선택적 트래픽 가중치 및 레이블을 포함하여 여러 수정 버전을 활성화할 수 있습니다.</item><항목>레이블: 레이블이 있는 수정 버전만 활성화됩니다. 트래픽 가중치는 레이블에 적용할 수 있습니다. /item></list><
'레이블'
'Multiple'
'Single'
dapr 컨테이너 앱에 대한 Dapr 구성입니다. Dapr
identitySettings 컨테이너 앱에 할당된 관리 ID에 대한 선택적 설정입니다. 여기에 관리 ID를 지정하지 않으면 기본 설정이 사용됩니다. IdentitySettings[]
진입 수신 구성. 수신
maxInactiveRevisions 선택적. 컨테이너 앱에 사용할 수 있는 최대 비활성 수정 버전입니다. int
레지스트리 컨테이너 앱에서 사용하는 컨테이너에 대한 프라이빗 컨테이너 레지스트리 자격 증명 컬렉션 RegistryCredentials[]
revisionTransitionThreshold 선택적. 수정 버전 전환이 발생하기 전에 발생해야 하는 총 복제본 수의 백분율입니다. 지정되지 않은 경우 기본값은 100입니다. 값은 0보다 크고 100보다 작거나 같아야 합니다. int

제약 조건:
최소값 = 1
최대값 = 100
런타임 컨테이너 앱에 대한 앱 런타임 구성입니다. 런타임
비밀 컨테이너 앱에서 사용하는 비밀 컬렉션 비밀[]
서비스 개발 Container App Service가 될 컨테이너 앱 서비스
targetLabel 레이블 수정 모드에 필요합니다. 새로 만든 수정 버전에 적용할 레이블입니다. 문자열

컨테이너

이름 묘사
인수(args) 컨테이너 시작 명령 인수입니다. string[]
명령 컨테이너 시작 명령입니다. string[]
환경을 컨테이너 환경 변수입니다. EnvironmentVar[]
이미지 컨테이너 이미지 태그입니다. 문자열
이미지 유형 이미지의 형식입니다. 시스템에서 이미지를 관리할 수 있도록 CloudBuild로 설정합니다. 여기서 사용자는 이미지 필드를 통해 이미지를 업데이트할 수 없습니다. 사용자가 제공한 이미지에 대해 ContainerImage로 설정합니다. 'CloudBuild'
'ContainerImage'
이름 사용자 지정 컨테이너 이름입니다. 문자열
프로브 컨테이너에 대한 프로브 목록입니다. ContainerAppProbe[]
리소스 컨테이너 리소스 요구 사항. containerResources
volumeMounts 컨테이너 볼륨 탑재. VolumeMount[]

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(필수)

ContainerAppProperties

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

ContainerAppPropertiesPatchingConfiguration

이름 묘사
patchingMode 컨테이너 앱에 대한 패치 모드입니다. 이 필드의 Null 또는 기본값은 RP에 의해 자동으로 해석됩니다. 자동 모드는 사용 가능한 패치를 자동으로 적용합니다. 수동 모드에서는 사용자가 패치를 수동으로 적용해야 합니다. 비활성화된 모드는 패치 검색 및 자동 패치를 중지합니다. 'Automatic'
'사용 안 함'
'수동'

ContainerResources

이름 묘사
cpu(cpu) 코어의 필수 CPU(예: 0.5) int
gpu GPU 기반 앱의 코어에 필요한 GPU(예: 1.0) int
기억 필요한 메모리(예: "250Mb") 문자열

CorsPolicy

이름 묘사
allowCredentials 리소스에서 자격 증명을 허용하는지 여부를 지정합니다. bool
allowedHeaders access-control-allow-headers 헤더의 콘텐츠를 지정합니다. string[]
allowedMethods access-control-allow-methods 헤더의 콘텐츠를 지정합니다. string[]
allowedOrigins access-control-allow-origins 헤더의 콘텐츠를 지정합니다. string[] (필수)
exposeHeaders access-control-expose-headers 헤더의 콘텐츠를 지정합니다. string[]
maxAge access-control-max-age 헤더의 콘텐츠를 지정합니다. int

CustomDomain

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

CustomScaleRule

이름 묘사
인증 사용자 지정 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
신원 컨테이너 앱에 할당된 사용자 할당 관리 ID의 리소스 ID이거나 시스템 할당 ID에 대한 '시스템'입니다. 문자열
메타데이터 사용자 지정 크기 조정 규칙을 설명하는 메타데이터 속성입니다. CustomScaleRuleMetadata
사용자 지정 배율 규칙의 형식
예: azure-servicebus, redis 등
문자열

CustomScaleRuleMetadata

이름 묘사

다프(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'
'경고'

EnvironmentVar

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

ExtendedLocation

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

HttpScaleRule

이름 묘사
인증 사용자 지정 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
신원 컨테이너 앱에 할당된 사용자 할당 관리 ID의 리소스 ID이거나 시스템 할당 ID에 대한 '시스템'입니다. 문자열
메타데이터 http 크기 조정 규칙을 설명하는 메타데이터 속성입니다. httpScaleRuleMetadata

HttpScaleRuleMetadata

이름 묘사

IdentitySettings

이름 묘사
신원 컨테이너 앱에 할당된 사용자 할당 관리 ID의 리소스 ID이거나 시스템 할당 ID에 대한 '시스템'입니다. string(필수)
수명 주기 관리 ID를 사용할 수 있어야 하는 컨테이너 앱의 수명 주기 단계를 선택하는 데 사용합니다. 'All'
'Init'
'Main'
'None'

진입

이름 묘사
additionalPortMappings 컨테이너 앱에 추가 포트를 노출하는 설정 IngressPortMapping[]
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[]
stickySessions 단일 수정 모드에 대한 고정 세션 IngressStickySessions
targetPort 수신 트래픽에 대한 컨테이너의 대상 포트 int
targetPortHttpScheme http 앱이 http 또는 https에서 수신 대기하는지 여부 'http'
'https'
교통 앱의 수정 버전에 대한 트래픽 가중치 TrafficWeight[]
수송 수신 전송 프로토콜 'auto'
'http'
'http2'
'tcp'

IngressPortMapping

이름 묘사
exposedPort 대상 포트에 대해 노출된 포트를 지정합니다. 지정하지 않으면 기본적으로 대상 포트로 설정됩니다. int
외부 환경 외부에서 앱 포트에 액세스할 수 있는지 여부를 지정합니다. bool(필수)
targetPort 포트 사용자의 컨테이너 수신 대기를 지정합니다. int(필수)

IngressStickySessions

이름 묘사
선호도 고정 세션 선호도 'none'
'끈적끈적한'

InitContainer

이름 묘사
인수(args) 컨테이너 시작 명령 인수입니다. string[]
명령 컨테이너 시작 명령입니다. string[]
환경을 컨테이너 환경 변수입니다. EnvironmentVar[]
이미지 컨테이너 이미지 태그입니다. 문자열
이미지 유형 이미지의 형식입니다. 시스템에서 이미지를 관리할 수 있도록 CloudBuild로 설정합니다. 여기서 사용자는 이미지 필드를 통해 이미지를 업데이트할 수 없습니다. 사용자가 제공한 이미지에 대해 ContainerImage로 설정합니다. 'CloudBuild'
'ContainerImage'
이름 사용자 지정 컨테이너 이름입니다. 문자열
리소스 컨테이너 리소스 요구 사항. containerResources
volumeMounts 컨테이너 볼륨 탑재. VolumeMount[]

IpSecurityRestrictionRule

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

LoggerSetting

이름 묘사
수준 지정된 로거의 로그 수준입니다. 'debug'
'error'
'info'
'off'
'trace'
'warn'(필수)
로거 이름입니다. string(필수)

ManagedServiceIdentity

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

Microsoft.App/containerApps

이름 묘사
apiVersion api 버전 '2024-10-02-preview'
extendedLocation 확장된 위치의 복합 형식입니다. ExtendedLocation
신원 코드에서 비밀 또는 자격 증명을 유지 관리하지 않고 컨테이너 앱이 다른 Azure 서비스와 상호 작용할 수 있도록 관리 ID입니다. ManagedServiceIdentity
종류 동일한 형식의 리소스에 대해 다른 환경을 렌더링하는 데 사용되는 메타데이터입니다. 예를 들어 WorkflowApp은 일종의 Microsoft.App/ContainerApps 형식입니다. 지원되는 경우 리소스 공급자는 이 값의 유효성을 검사하고 유지해야 합니다. 'workflowapp'
위치 리소스가 있는 지리적 위치 string(필수)
managedBy 이 리소스를 관리하는 리소스의 정규화된 리소스 ID입니다. 이 리소스가 다른 Azure 리소스에서 관리되는지를 나타냅니다. 이 경우 전체 모드 배포는 다른 리소스에서 관리되므로 템플릿에서 제거된 경우 리소스를 삭제하지 않습니다. 문자열
이름 리소스 이름 string(필수)
속성 ContainerApp 리소스 관련 속성 ContainerAppProperties
태그 리소스 태그 태그 이름 및 값의 사전입니다. 템플릿 태그를 참조하세요.
리소스 종류 'Microsoft.App/containerApps'

QueueScaleRule

이름 묘사
accountName 스토리지 계정 이름입니다. 관리 ID를 사용하여 인증하는 경우 필수 문자열
인증 큐 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
신원 컨테이너 앱에 할당된 사용자 할당 관리 ID의 리소스 ID이거나 시스템 할당 ID에 대한 '시스템'입니다. 문자열
queueLength 큐 길이입니다. int
queueName 큐 이름입니다. 문자열

RegistryCredentials

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

런타임

이름 묘사
dotnet .NET 앱 구성 RuntimeDotnet
자바 Java 앱 구성 RuntimeJava

RuntimeDotnet

이름 묘사
autoConfigureDataProtection ASP.NET Core Data Protection 기능 자동 구성 bool

RuntimeJava

이름 묘사
enableMetrics Java 앱에 jmx 핵심 메트릭 사용 bool
javaAgent Java 에이전트에서 달성한 진단 기능 RuntimeJavaAgent

RuntimeJavaAgent

이름 묘사
사용 Java 앱에 대해 Java 에이전트 삽입을 사용하도록 설정합니다. bool
로깅 Java 로깅 시나리오의 기능입니다. runtimeJavaAgentLogging

RuntimeJavaAgentLogging

이름 묘사
loggerSettings Java 앱에 대한 로거 설정입니다. LoggerSetting[]

저울

이름 묘사
cooldownPeriod 선택적. KEDA 쿨다운 기간. 설정하지 않으면 기본값은 300초입니다. int
maxReplicas 선택적. 컨테이너 복제본의 최대 수입니다. 설정되지 않은 경우 기본값은 10입니다. int
minReplicas 선택적. 컨테이너 복제본의 최소 수입니다. int
pollingInterval 선택적. KEDA 폴링 간격입니다. 설정되지 않은 경우 기본값은 30초입니다. int
규칙 규칙 크기 조정 ScaleRule[]

ScaleRule

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

ScaleRuleAuth

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

비밀

이름 묘사
신원 Azure Key Vault로 인증할 관리 ID의 리소스 ID 또는 시스템 할당 ID를 사용하는 시스템입니다. 문자열
keyVaultUrl 컨테이너 앱에서 참조하는 비밀을 가리키는 Azure Key Vault URL입니다. 문자열
이름 비밀 이름입니다. 문자열
비밀 값입니다. 문자열

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

SecretVolumeItem

이름 묘사
프로젝트 비밀에 대한 경로입니다. 경로가 제공되지 않은 경우 경로는 기본적으로 secretRef에 나열된 비밀의 이름으로 설정됩니다. 문자열
secretRef 비밀 값을 끌어올 컨테이너 앱 비밀의 이름입니다. 문자열

서비스

이름 묘사
Dev ContainerApp 서비스 유형 string(필수)

ServiceBind

이름 묘사
clientType 서비스에 연결하는 데 사용할 클라이언트 유형 문자열
customizedKeys 앱에 삽입된 값을 사용자 지정하기 위한 사용자 지정된 키 ServiceBindCustomizedKeys
이름 서비스 바인딩의 이름 문자열
serviceId 대상 서비스의 리소스 ID 문자열

ServiceBindCustomizedKeys

이름 묘사

TcpScaleRule

이름 묘사
인증 tcp 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
신원 컨테이너 앱에 할당된 사용자 할당 관리 ID의 리소스 ID이거나 시스템 할당 ID에 대한 '시스템'입니다. 문자열
메타데이터 tcp 크기 조정 규칙을 설명하는 메타데이터 속성입니다. TcpScaleRuleMetadata

TcpScaleRuleMetadata

이름 묘사

템플렛

이름 묘사
컨테이너 컨테이너 앱에 대한 컨테이너 정의 목록입니다. 컨테이너[]
initContainers 앱 컨테이너 앞에서 실행되는 특수 컨테이너 목록입니다. InitContainer[]
revisionSuffix 수정 이름에 추가된 사용자에게 친숙한 접미사 문자열
저울 컨테이너 앱의 크기 조정 속성입니다. 크기 조정
serviceBinds 앱에 바인딩된 컨테이너 앱 서비스 목록 ServiceBind[]
terminationGracePeriodSeconds 컨테이너 앱 인스턴스가 정상적으로 종료되어야 하는 시간(초)입니다. 값은 음수가 아닌 정수여야 합니다. 값 0은 kill 신호를 통해 즉시 중지됨을 나타냅니다(종료할 기회가 없음). 이 값이 nil이면 기본 유예 기간이 대신 사용됩니다. 이 값을 프로세스의 예상 정리 시간보다 길게 설정합니다. 기본값은 30초입니다. int
볼륨 컨테이너 앱에 대한 볼륨 정의 목록입니다. 볼륨[]

TrackedResourceTags

이름 묘사

TrafficWeight

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

UserAssignedIdentities

이름 묘사

UserAssignedIdentity

이름 묘사

음량

이름 묘사
mountOptions Azure 파일 공유 또는 NFS Azure 파일 공유를 탑재하는 동안 사용되는 탑재 옵션입니다. 쉼표로 구분된 문자열이어야 합니다. 문자열
이름 볼륨 이름입니다. 문자열
비밀 볼륨에 추가할 비밀 목록입니다. 비밀이 제공되지 않으면 컬렉션의 모든 비밀이 볼륨에 추가됩니다. SecretVolumeItem[]
storageName 스토리지 리소스의 이름입니다. EmptyDir 및 Secret을 제공할 필요가 없습니다. 문자열
storageType 볼륨의 스토리지 유형입니다. 제공되지 않은 경우 EmptyDir을 사용합니다. 'AzureFile'
'EmptyDir'
'NfsAzureFile'
'비밀'
'Smb'

VolumeMount

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

빠른 시작 템플릿

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

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

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

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

Azure에 배포
기본 컨테이너 앱을 사용하여 컨테이너 앱 환경을 만듭니다. 또한 Log Analytics 작업 영역을 배포하여 로그를 저장합니다.
Container Apps 사용하여 Dapr 마이크로 서비스 앱을 만듭니다.

Azure에 배포
Container Apps를 사용하여 Dapr 마이크로 서비스 앱을 만듭니다.
Container Apps 사용하여 Dapr pub-sub servicebus 앱을 만듭니다.

Azure에 배포
Container Apps를 사용하여 Dapr pub-sub servicebus 앱을 만듭니다.
컨테이너 앱 환경 사용하여 두 개의 컨테이너 앱을 만듭니다.

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

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

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

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

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

  • 리소스 그룹

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

리소스 형식

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

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.App/containerApps@2024-10-02-preview"
  name = "string"
  identity = {
    type = "string"
    userAssignedIdentities = {
      {customized property} = {
      }
    }
  }
  kind = "string"
  location = "string"
  managedBy = "string"
  tags = {
    {customized property} = "string"
  }
  body = jsonencode({
    extendedLocation = {
      name = "string"
      type = "string"
    }
    properties = {
      configuration = {
        activeRevisionsMode = "string"
        dapr = {
          appId = "string"
          appPort = int
          appProtocol = "string"
          enableApiLogging = bool
          enabled = bool
          httpMaxRequestSize = int
          httpReadBufferSize = int
          logLevel = "string"
        }
        identitySettings = [
          {
            identity = "string"
            lifecycle = "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
          targetPortHttpScheme = "string"
          traffic = [
            {
              label = "string"
              latestRevision = bool
              revisionName = "string"
              weight = int
            }
          ]
          transport = "string"
        }
        maxInactiveRevisions = int
        registries = [
          {
            identity = "string"
            passwordSecretRef = "string"
            server = "string"
            username = "string"
          }
        ]
        revisionTransitionThreshold = int
        runtime = {
          dotnet = {
            autoConfigureDataProtection = bool
          }
          java = {
            enableMetrics = bool
            javaAgent = {
              enabled = bool
              logging = {
                loggerSettings = [
                  {
                    level = "string"
                    logger = "string"
                  }
                ]
              }
            }
          }
        }
        secrets = [
          {
            identity = "string"
            keyVaultUrl = "string"
            name = "string"
            value = "string"
          }
        ]
        service = {
          type = "string"
        }
        targetLabel = "string"
      }
      environmentId = "string"
      managedEnvironmentId = "string"
      patchingConfiguration = {
        patchingMode = "string"
      }
      template = {
        containers = [
          {
            args = [
              "string"
            ]
            command = [
              "string"
            ]
            env = [
              {
                name = "string"
                secretRef = "string"
                value = "string"
              }
            ]
            image = "string"
            imageType = "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
              gpu = int
              memory = "string"
            }
            volumeMounts = [
              {
                mountPath = "string"
                subPath = "string"
                volumeName = "string"
              }
            ]
          }
        ]
        initContainers = [
          {
            args = [
              "string"
            ]
            command = [
              "string"
            ]
            env = [
              {
                name = "string"
                secretRef = "string"
                value = "string"
              }
            ]
            image = "string"
            imageType = "string"
            name = "string"
            resources = {
              cpu = int
              gpu = int
              memory = "string"
            }
            volumeMounts = [
              {
                mountPath = "string"
                subPath = "string"
                volumeName = "string"
              }
            ]
          }
        ]
        revisionSuffix = "string"
        scale = {
          cooldownPeriod = int
          maxReplicas = int
          minReplicas = int
          pollingInterval = int
          rules = [
            {
              azureQueue = {
                accountName = "string"
                auth = [
                  {
                    secretRef = "string"
                    triggerParameter = "string"
                  }
                ]
                identity = "string"
                queueLength = int
                queueName = "string"
              }
              custom = {
                auth = [
                  {
                    secretRef = "string"
                    triggerParameter = "string"
                  }
                ]
                identity = "string"
                metadata = {
                  {customized property} = "string"
                }
                type = "string"
              }
              http = {
                auth = [
                  {
                    secretRef = "string"
                    triggerParameter = "string"
                  }
                ]
                identity = "string"
                metadata = {
                  {customized property} = "string"
                }
              }
              name = "string"
              tcp = {
                auth = [
                  {
                    secretRef = "string"
                    triggerParameter = "string"
                  }
                ]
                identity = "string"
                metadata = {
                  {customized property} = "string"
                }
              }
            }
          ]
        }
        serviceBinds = [
          {
            clientType = "string"
            customizedKeys = {
              {customized property} = "string"
            }
            name = "string"
            serviceId = "string"
          }
        ]
        terminationGracePeriodSeconds = int
        volumes = [
          {
            mountOptions = "string"
            name = "string"
            secrets = [
              {
                path = "string"
                secretRef = "string"
              }
            ]
            storageName = "string"
            storageType = "string"
          }
        ]
      }
      workloadProfileName = "string"
    }
  })
}

속성 값

구성

이름 묘사
activeRevisionsMode ActiveRevisionsMode는 컨테이너 앱에 대해 활성 수정 버전을 처리하는 방법을 제어합니다.
<목록><항목>Single: 한 번에 하나의 수정 버전만 활성화할 수 있습니다. 트래픽 가중치는 사용할 수 없습니다. 기본값입니다.</item><항목>다중: 선택적 트래픽 가중치 및 레이블을 포함하여 여러 수정 버전을 활성화할 수 있습니다.</item><항목>레이블: 레이블이 있는 수정 버전만 활성화됩니다. 트래픽 가중치는 레이블에 적용할 수 있습니다. /item></list><
'레이블'
'Multiple'
'Single'
dapr 컨테이너 앱에 대한 Dapr 구성입니다. Dapr
identitySettings 컨테이너 앱에 할당된 관리 ID에 대한 선택적 설정입니다. 여기에 관리 ID를 지정하지 않으면 기본 설정이 사용됩니다. IdentitySettings[]
진입 수신 구성. 수신
maxInactiveRevisions 선택적. 컨테이너 앱에 사용할 수 있는 최대 비활성 수정 버전입니다. int
레지스트리 컨테이너 앱에서 사용하는 컨테이너에 대한 프라이빗 컨테이너 레지스트리 자격 증명 컬렉션 RegistryCredentials[]
revisionTransitionThreshold 선택적. 수정 버전 전환이 발생하기 전에 발생해야 하는 총 복제본 수의 백분율입니다. 지정되지 않은 경우 기본값은 100입니다. 값은 0보다 크고 100보다 작거나 같아야 합니다. int

제약 조건:
최소값 = 1
최대값 = 100
런타임 컨테이너 앱에 대한 앱 런타임 구성입니다. 런타임
비밀 컨테이너 앱에서 사용하는 비밀 컬렉션 비밀[]
서비스 개발 Container App Service가 될 컨테이너 앱 서비스
targetLabel 레이블 수정 모드에 필요합니다. 새로 만든 수정 버전에 적용할 레이블입니다. 문자열

컨테이너

이름 묘사
인수(args) 컨테이너 시작 명령 인수입니다. string[]
명령 컨테이너 시작 명령입니다. string[]
환경을 컨테이너 환경 변수입니다. EnvironmentVar[]
이미지 컨테이너 이미지 태그입니다. 문자열
이미지 유형 이미지의 형식입니다. 시스템에서 이미지를 관리할 수 있도록 CloudBuild로 설정합니다. 여기서 사용자는 이미지 필드를 통해 이미지를 업데이트할 수 없습니다. 사용자가 제공한 이미지에 대해 ContainerImage로 설정합니다. 'CloudBuild'
'ContainerImage'
이름 사용자 지정 컨테이너 이름입니다. 문자열
프로브 컨테이너에 대한 프로브 목록입니다. ContainerAppProbe[]
리소스 컨테이너 리소스 요구 사항. containerResources
volumeMounts 컨테이너 볼륨 탑재. VolumeMount[]

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(필수)

ContainerAppProperties

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

ContainerAppPropertiesPatchingConfiguration

이름 묘사
patchingMode 컨테이너 앱에 대한 패치 모드입니다. 이 필드의 Null 또는 기본값은 RP에 의해 자동으로 해석됩니다. 자동 모드는 사용 가능한 패치를 자동으로 적용합니다. 수동 모드에서는 사용자가 패치를 수동으로 적용해야 합니다. 비활성화된 모드는 패치 검색 및 자동 패치를 중지합니다. 'Automatic'
'사용 안 함'
'수동'

ContainerResources

이름 묘사
cpu(cpu) 코어의 필수 CPU(예: 0.5) int
gpu GPU 기반 앱의 코어에 필요한 GPU(예: 1.0) int
기억 필요한 메모리(예: "250Mb") 문자열

CorsPolicy

이름 묘사
allowCredentials 리소스에서 자격 증명을 허용하는지 여부를 지정합니다. bool
allowedHeaders access-control-allow-headers 헤더의 콘텐츠를 지정합니다. string[]
allowedMethods access-control-allow-methods 헤더의 콘텐츠를 지정합니다. string[]
allowedOrigins access-control-allow-origins 헤더의 콘텐츠를 지정합니다. string[] (필수)
exposeHeaders access-control-expose-headers 헤더의 콘텐츠를 지정합니다. string[]
maxAge access-control-max-age 헤더의 콘텐츠를 지정합니다. int

CustomDomain

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

CustomScaleRule

이름 묘사
인증 사용자 지정 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
신원 컨테이너 앱에 할당된 사용자 할당 관리 ID의 리소스 ID이거나 시스템 할당 ID에 대한 '시스템'입니다. 문자열
메타데이터 사용자 지정 크기 조정 규칙을 설명하는 메타데이터 속성입니다. CustomScaleRuleMetadata
사용자 지정 배율 규칙의 형식
예: azure-servicebus, redis 등
문자열

CustomScaleRuleMetadata

이름 묘사

다프(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'
'경고'

EnvironmentVar

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

ExtendedLocation

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

HttpScaleRule

이름 묘사
인증 사용자 지정 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
신원 컨테이너 앱에 할당된 사용자 할당 관리 ID의 리소스 ID이거나 시스템 할당 ID에 대한 '시스템'입니다. 문자열
메타데이터 http 크기 조정 규칙을 설명하는 메타데이터 속성입니다. httpScaleRuleMetadata

HttpScaleRuleMetadata

이름 묘사

IdentitySettings

이름 묘사
신원 컨테이너 앱에 할당된 사용자 할당 관리 ID의 리소스 ID이거나 시스템 할당 ID에 대한 '시스템'입니다. string(필수)
수명 주기 관리 ID를 사용할 수 있어야 하는 컨테이너 앱의 수명 주기 단계를 선택하는 데 사용합니다. 'All'
'Init'
'Main'
'None'

진입

이름 묘사
additionalPortMappings 컨테이너 앱에 추가 포트를 노출하는 설정 IngressPortMapping[]
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[]
stickySessions 단일 수정 모드에 대한 고정 세션 IngressStickySessions
targetPort 수신 트래픽에 대한 컨테이너의 대상 포트 int
targetPortHttpScheme http 앱이 http 또는 https에서 수신 대기하는지 여부 'http'
'https'
교통 앱의 수정 버전에 대한 트래픽 가중치 TrafficWeight[]
수송 수신 전송 프로토콜 'auto'
'http'
'http2'
'tcp'

IngressPortMapping

이름 묘사
exposedPort 대상 포트에 대해 노출된 포트를 지정합니다. 지정하지 않으면 기본적으로 대상 포트로 설정됩니다. int
외부 환경 외부에서 앱 포트에 액세스할 수 있는지 여부를 지정합니다. bool(필수)
targetPort 포트 사용자의 컨테이너 수신 대기를 지정합니다. int(필수)

IngressStickySessions

이름 묘사
선호도 고정 세션 선호도 'none'
'끈적끈적한'

InitContainer

이름 묘사
인수(args) 컨테이너 시작 명령 인수입니다. string[]
명령 컨테이너 시작 명령입니다. string[]
환경을 컨테이너 환경 변수입니다. EnvironmentVar[]
이미지 컨테이너 이미지 태그입니다. 문자열
이미지 유형 이미지의 형식입니다. 시스템에서 이미지를 관리할 수 있도록 CloudBuild로 설정합니다. 여기서 사용자는 이미지 필드를 통해 이미지를 업데이트할 수 없습니다. 사용자가 제공한 이미지에 대해 ContainerImage로 설정합니다. 'CloudBuild'
'ContainerImage'
이름 사용자 지정 컨테이너 이름입니다. 문자열
리소스 컨테이너 리소스 요구 사항. containerResources
volumeMounts 컨테이너 볼륨 탑재. VolumeMount[]

IpSecurityRestrictionRule

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

LoggerSetting

이름 묘사
수준 지정된 로거의 로그 수준입니다. 'debug'
'error'
'info'
'off'
'trace'
'warn'(필수)
로거 이름입니다. string(필수)

ManagedServiceIdentity

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

Microsoft.App/containerApps

이름 묘사
extendedLocation 확장된 위치의 복합 형식입니다. ExtendedLocation
신원 코드에서 비밀 또는 자격 증명을 유지 관리하지 않고 컨테이너 앱이 다른 Azure 서비스와 상호 작용할 수 있도록 관리 ID입니다. ManagedServiceIdentity
종류 동일한 형식의 리소스에 대해 다른 환경을 렌더링하는 데 사용되는 메타데이터입니다. 예를 들어 WorkflowApp은 일종의 Microsoft.App/ContainerApps 형식입니다. 지원되는 경우 리소스 공급자는 이 값의 유효성을 검사하고 유지해야 합니다. 'workflowapp'
위치 리소스가 있는 지리적 위치 string(필수)
managedBy 이 리소스를 관리하는 리소스의 정규화된 리소스 ID입니다. 이 리소스가 다른 Azure 리소스에서 관리되는지를 나타냅니다. 이 경우 전체 모드 배포는 다른 리소스에서 관리되므로 템플릿에서 제거된 경우 리소스를 삭제하지 않습니다. 문자열
이름 리소스 이름 string(필수)
속성 ContainerApp 리소스 관련 속성 ContainerAppProperties
태그 리소스 태그 태그 이름 및 값의 사전입니다.
리소스 종류 "Microsoft.App/containerApps@2024-10-02-preview"

QueueScaleRule

이름 묘사
accountName 스토리지 계정 이름입니다. 관리 ID를 사용하여 인증하는 경우 필수 문자열
인증 큐 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
신원 컨테이너 앱에 할당된 사용자 할당 관리 ID의 리소스 ID이거나 시스템 할당 ID에 대한 '시스템'입니다. 문자열
queueLength 큐 길이입니다. int
queueName 큐 이름입니다. 문자열

RegistryCredentials

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

런타임

이름 묘사
dotnet .NET 앱 구성 RuntimeDotnet
자바 Java 앱 구성 RuntimeJava

RuntimeDotnet

이름 묘사
autoConfigureDataProtection ASP.NET Core Data Protection 기능 자동 구성 bool

RuntimeJava

이름 묘사
enableMetrics Java 앱에 jmx 핵심 메트릭 사용 bool
javaAgent Java 에이전트에서 달성한 진단 기능 RuntimeJavaAgent

RuntimeJavaAgent

이름 묘사
사용 Java 앱에 대해 Java 에이전트 삽입을 사용하도록 설정합니다. bool
로깅 Java 로깅 시나리오의 기능입니다. runtimeJavaAgentLogging

RuntimeJavaAgentLogging

이름 묘사
loggerSettings Java 앱에 대한 로거 설정입니다. LoggerSetting[]

저울

이름 묘사
cooldownPeriod 선택적. KEDA 쿨다운 기간. 설정하지 않으면 기본값은 300초입니다. int
maxReplicas 선택적. 컨테이너 복제본의 최대 수입니다. 설정되지 않은 경우 기본값은 10입니다. int
minReplicas 선택적. 컨테이너 복제본의 최소 수입니다. int
pollingInterval 선택적. KEDA 폴링 간격입니다. 설정되지 않은 경우 기본값은 30초입니다. int
규칙 규칙 크기 조정 ScaleRule[]

ScaleRule

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

ScaleRuleAuth

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

비밀

이름 묘사
신원 Azure Key Vault로 인증할 관리 ID의 리소스 ID 또는 시스템 할당 ID를 사용하는 시스템입니다. 문자열
keyVaultUrl 컨테이너 앱에서 참조하는 비밀을 가리키는 Azure Key Vault URL입니다. 문자열
이름 비밀 이름입니다. 문자열
비밀 값입니다. 문자열

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

SecretVolumeItem

이름 묘사
프로젝트 비밀에 대한 경로입니다. 경로가 제공되지 않은 경우 경로는 기본적으로 secretRef에 나열된 비밀의 이름으로 설정됩니다. 문자열
secretRef 비밀 값을 끌어올 컨테이너 앱 비밀의 이름입니다. 문자열

서비스

이름 묘사
Dev ContainerApp 서비스 유형 string(필수)

ServiceBind

이름 묘사
clientType 서비스에 연결하는 데 사용할 클라이언트 유형 문자열
customizedKeys 앱에 삽입된 값을 사용자 지정하기 위한 사용자 지정된 키 ServiceBindCustomizedKeys
이름 서비스 바인딩의 이름 문자열
serviceId 대상 서비스의 리소스 ID 문자열

ServiceBindCustomizedKeys

이름 묘사

TcpScaleRule

이름 묘사
인증 tcp 크기 조정 규칙에 대한 인증 비밀입니다. ScaleRuleAuth[]
신원 컨테이너 앱에 할당된 사용자 할당 관리 ID의 리소스 ID이거나 시스템 할당 ID에 대한 '시스템'입니다. 문자열
메타데이터 tcp 크기 조정 규칙을 설명하는 메타데이터 속성입니다. TcpScaleRuleMetadata

TcpScaleRuleMetadata

이름 묘사

템플렛

이름 묘사
컨테이너 컨테이너 앱에 대한 컨테이너 정의 목록입니다. 컨테이너[]
initContainers 앱 컨테이너 앞에서 실행되는 특수 컨테이너 목록입니다. InitContainer[]
revisionSuffix 수정 이름에 추가된 사용자에게 친숙한 접미사 문자열
저울 컨테이너 앱의 크기 조정 속성입니다. 크기 조정
serviceBinds 앱에 바인딩된 컨테이너 앱 서비스 목록 ServiceBind[]
terminationGracePeriodSeconds 컨테이너 앱 인스턴스가 정상적으로 종료되어야 하는 시간(초)입니다. 값은 음수가 아닌 정수여야 합니다. 값 0은 kill 신호를 통해 즉시 중지됨을 나타냅니다(종료할 기회가 없음). 이 값이 nil이면 기본 유예 기간이 대신 사용됩니다. 이 값을 프로세스의 예상 정리 시간보다 길게 설정합니다. 기본값은 30초입니다. int
볼륨 컨테이너 앱에 대한 볼륨 정의 목록입니다. 볼륨[]

TrackedResourceTags

이름 묘사

TrafficWeight

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

UserAssignedIdentities

이름 묘사

UserAssignedIdentity

이름 묘사

음량

이름 묘사
mountOptions Azure 파일 공유 또는 NFS Azure 파일 공유를 탑재하는 동안 사용되는 탑재 옵션입니다. 쉼표로 구분된 문자열이어야 합니다. 문자열
이름 볼륨 이름입니다. 문자열
비밀 볼륨에 추가할 비밀 목록입니다. 비밀이 제공되지 않으면 컬렉션의 모든 비밀이 볼륨에 추가됩니다. SecretVolumeItem[]
storageName 스토리지 리소스의 이름입니다. EmptyDir 및 Secret을 제공할 필요가 없습니다. 문자열
storageType 볼륨의 스토리지 유형입니다. 제공되지 않은 경우 EmptyDir을 사용합니다. 'AzureFile'
'EmptyDir'
'NfsAzureFile'
'비밀'
'Smb'

VolumeMount

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