Azure Container Apps에서 앱에 대한 수신 구성
이 문서에서는 컨테이너 앱에 수신 기능을 사용 설정하는 방법을 보여 줍니다. 수신은 애플리케이션 전체 설정입니다. 수신 설정에 대한 변경 내용은 모든 수정 버전에 동시에 적용되며 새 수정 버전을 생성하지 않습니다.
수신 설정
다음 수신 템플릿 속성을 설정할 수 있습니다.
속성 | 설명 | 값 | Required |
---|---|---|---|
allowInsecure |
컨테이너 앱에 대한 안전하지 않은 트래픽을 허용합니다. true 로 설정되면 포트 80에 대한 HTTP 요청은 HTTPS를 사용하여 포트 443으로 자동으로 리디렉션되지 않으므로 안전하지 않은 연결이 허용됩니다. |
false (기본값), true 이면 안전하지 않은 연결을 사용하도록 설정합니다. |
아니요 |
clientCertificateMode |
mTLS 인증을 위한 클라이언트 인증서 모드. 무시는 전달 시 서버가 클라이언트 인증서를 삭제함을 나타냅니다. 수락은 서버가 클라이언트 인증서를 전달하지만 클라이언트 인증서가 필요하지 않음을 나타냅니다. 필요는 서버에 클라이언트 인증서가 필요함을 나타냅니다. | Required , Accept , Ignore (기본값) |
아니요 |
customDomains |
Container Apps의 호스트 이름에 대한 사용자 지정 도메인 바인딩. 사용자 지정 도메인 및 인증서를 참조하세요. | 바인딩 배열 | 아니요 |
exposedPort |
(TCP 수신만 해당) TCP가 수신 대기하는 포트입니다. external 이 true 인 경우 값은 Container Apps 환경에서 고유해야 합니다. |
1 에서 65535 까지의 포트 번호. (80 또는 443 일 수 없음) |
아니요 |
external |
Container Apps 환경 외부에서 앱에 대한 수신을 허용합니다. | true 또는 false (기본값) |
예 |
ipSecurityRestrictions |
IP 수신 제한. IP 수신 제한 설정을 참조하세요. | 규칙 배열 | 아니요 |
stickySessions.affinity |
세션 선호도를 사용합니다. | none (기본값), sticky |
아니요 |
targetPort |
들어오는 요청에 대해 컨테이너 앱이 수신 대기하는 포트입니다. | 이 값을 컨테이너 앱에서 사용하는 포트 번호로 설정합니다. HTTP 수신의 경우 애플리케이션 수신 엔드포인트는 항상 포트 443 에 노출됩니다. |
예 |
traffic |
트래픽 분할 가중치는 수정 버전 간에 분할됩니다. | 규칙 배열 | 아니요 |
transport |
전송 프로토콜 형식입니다. | 자동(기본값)은 HTTP/1 또는 HTTP/2, HTTP/1의 경우 http , HTTP/2의 경우 http2 , TCP의 경우 tcp 를 검색합니다. |
아니요 |
자동 포트 검색
컨테이너 앱에서 HTTP 수신을 사용하도록 설정하고 대상 포트를 설정하지 않은 경우 Azure Container Apps는 컨테이너의 모든 수신 대기 포트를 검색하여 대상 포트를 자동으로 검색합니다. 검색된 포트가 하나만 있으면 해당 포트가 컨테이너 앱의 대상 포트로 설정됩니다. 포트가 1개 이상 검색된 경우 컨테이너 앱은 대상 포트를 자동으로 설정하지 않으며 대상 포트를 수동으로 설정해야 합니다.
- 자동 포트 검색은 TCP 트래픽이 아닌 HTTP 트래픽에 대해서만 작동합니다.
- 포트 80 또는 443에서 수신 대기하는 HTTP 상태 프로브가 있는 경우 자동 포트 검색을 방해할 수 있습니다. 기본 수신 구성은 TCP 상태 프로브를 사용합니다. 자세한 내용은 상태 프로브를 참조 하세요.
수신 사용
Azure CLI, ARM 템플릿 또는 Azure Portal을 사용하여 컨테이너 앱에 대한 수신을 구성할 수 있습니다.
이 az containerapp ingress enable
명령은 컨테이너 앱에 대한 수신을 사용하도록 설정합니다. 대상 포트를 지정해야 하며 전송 형식이 tcp
인 경우 노출된 포트를 선택적으로 설정할 수 있습니다.
az containerapp ingress enable \
--name <app-name> \
--resource-group <resource-group> \
--target-port <target-port> \
--exposed-port <tcp-exposed-port> \
--transport <transport> \
--type <external>
--allow-insecure
az containerapp ingress enable
수신 인수:
옵션 | 속성 | 설명 | 값 | Required |
---|---|---|---|---|
--type |
external | 어디서나 앱에 대한 수신을 허용하거나 내부 Container Apps 환경에 대한 수신을 제한합니다. | external 또는 internal |
예 |
--allow-insecure |
allowInsecure | 앱에 대한 HTTP 연결을 허용합니다. | 아니요 | |
--target-port |
targetPort | 들어오는 요청에 대해 컨테이너가 수신 대기하는 포트입니다. | 이 값을 컨테이너에서 사용하는 포트 번호로 설정합니다. 애플리케이션 수신 엔드포인트는 항상 포트 443 에서 노출됩니다. |
예 |
--exposed-port |
exposedPort | (TCP 수신 전용) TCP 수신용 포트입니다. external 이 true 인 경우 수신이 외부인 경우 값은 Container Apps 환경에서 고유해야 합니다. |
1 에서 65535 까지의 포트 번호. (80 또는 443 일 수 없음) |
아니요 |
--transport |
전송 | 전송 프로토콜 형식입니다. | 자동(기본값)은 HTTP/1 또는 HTTP/2, HTTP/1의 경우 http , HTTP/2의 경우 http2 , TCP의 경우 tcp 를 검색합니다. |
아니요 |
포털을 사용하여 컨테이너 앱에 대한 수신을 사용하도록 설정합니다.
컨테이너 앱을 만들 때 수신을 사용하도록 설정하거나 기존 컨테이너 앱에 대해 수신을 사용하도록 설정할 수 있습니다.
- 컨테이너 앱을 만들 때 수신을 구성하려면 컨테이너 앱 만들기 마법사의 App Configuration 탭에서 수신를 선택합니다.
- 기존 컨테이너 앱에 대한 수신을 구성하려면 컨테이너 앱 리소스 페이지의 설정 메뉴에서 수신를 선택합니다.
컨테이너 앱에 대한 수신 사용:
Azure Portal을 사용하여 컨테이너 앱을 만들 때 수신을 구성할 수 있습니다.
- 수신을 사용으로 설정합니다.
- 컨테이너 앱에 대한 수신 설정을 구성합니다.
- 내부 수신의 경우 Container Apps 환경으로 제한을 선택하거나 외부 수신의 경우 어디서나 트래픽 허용을 선택합니다.
- 수신 유형: HTTP 또는 TCP를 선택합니다(TCP 수신은 사용자 지정 가상 네트워크로 구성된 환경에서만 사용할 수 있음).
- 수신 형식으로 HTTP를 선택한 경우 전송: 자동, HTTP/1 또는 HTTP/2를 선택합니다.
- 앱에 대한 HTTP 연결을 허용하려면 비보안 연결을 선택합니다.
- 컨테이너 앱의 대상 포트를 입력합니다.
- 전송 옵션에 대해 TCP를 선택한 경우 컨테이너 앱에 대한 노출된 포트를 입력합니다. 노출된 포트 번호는
1
에서65535
까지일 수 있습니다. (80
또는443
일 수 없음)
컨테이너 앱의 수신 설정 페이지에서도 IP 제한을 구성할 수 있습니다. IP 제한 구성에 대한 자세한 내용은 IP 제한을 참조하세요.
ingress
구성 속성을 사용하여 컨테이너 앱에 대한 수신을 사용하도록 설정합니다. external
속성을 true
로 설정하고 transport
및 targetPort
속성을 설정합니다.
-external
속성은 외부의 경우 true로, 내부 수신의 경우 false로 설정할 수 있습니다.
transport
를auto
로 설정하여 HTTP/1 또는 HTTP/2,http
(HTTP/1),http2
(HTTP/2) 또는tcp
(TCP)를 검색합니다.targetPort
를 컨테이너가 사용하는 포트 번호로 설정합니다. 애플리케이션 수신 엔드포인트는 항상 포트443
에서 노출됩니다.- 전송 형식이
tcp
인 경우exposedPort
속성을 TCP 수신용 포트로 설정합니다. 수신이 외부인 경우 값은 Container Apps 환경에서 고유해야 합니다.1
에서65535
까지의 포트 번호. (80
또는443
일 수 없음)
{
...
"configuration": {
"ingress": {
"external": true,
"transport": "tcp",
"targetPort": 80,
"exposedPort": 8080,
},
}
}
수신 사용 안 함
az containerapp ingress
명령을 사용하여 컨테이너 앱에 대한 수신을 사용하지 않도록 설정합니다.
az containerapp ingress disable \
--name <app-name> \
--resource-group <resource-group> \
포털을 사용하여 컨테이너 앱에 대한 수신을 사용하지 않도록 설정할 수 있습니다.
- 컨테이너 앱 페이지의 설정 메뉴에서 수신를 선택합니다.
- 수신 사용 설정을 선택 취소합니다.
- 저장을 선택합니다.
properties.configuration
에서 ingress
구성 속성을 완전히 생략하여 컨테이너 앱에 대한 수신을 사용하지 않도록 설정합니다.
다른 TCP 포트 사용
애플리케이션에서 추가 TCP 포트를 노출할 수 있습니다. 자세한 내용은 수신 개념 문서를 참조하세요.
참고 항목
이 기능을 사용하려면 컨테이너 앱 CLI 확장이 있어야 합니다. 최신 버전의 컨테이너 앱 CLI 확장을 설치하려면 az extension add -n containerapp
을 실행합니다.
TCP 포트 구성을 사용하여 YAML 파일을 참조하여 CLI를 통해 다른 TCP 포트를 추가할 수 있습니다.
az containerapp create \
--name <app-name> \
--resource-group <resource-group> \
--yaml <your-yaml-file>
다음은 위의 CLI 명령에서 참조할 수 있는 YAML 파일 예제입니다. 추가 TCP 포트에 대한 구성은 additionalPortMappings
아래에 있습니다.
location: northcentralus
name: multiport-example
properties:
configuration:
activeRevisionsMode: Single
ingress:
additionalPortMappings:
- exposedPort: 21025
external: false
targetPort: 1025
allowInsecure: false
external: true
targetPort: 1080
traffic:
- latestRevision: true
weight: 100
transport: http
managedEnvironmentId: <env id>
template:
containers:
- image: maildev/maildev
name: maildev
resources:
cpu: 0.25
memory: 0.5Gi
scale:
maxReplicas: 1
minReplicas: 1
workloadProfileName: Consumption
type: Microsoft.App/containerApps
- 수신 블레이드 내에서 추가 TCP 포트 섹션을 확장합니다.
- 애플리케이션이 대상 포트 필드에서 트래픽을 수락할 추가 TCP 포트를 추가합니다. 노출된 포트가 비어 있는 경우 대상 포트에 설정된 동일한 값에서 가져옵니다.
- 필요에 따라 수신 트래픽 필드를 변경합니다. 그러면 각 포트에 대해 수신 트래픽이 제한되는 위치가 구성됩니다.
- 완료되면 저장을 클릭합니다.
다음 ARM 템플릿은 컨테이너 앱에 포트를 추가하는 방법의 예를 제공합니다. 컨테이너 앱에 대한 properties
내에서 configuration
을 위해 ingress
섹션 내의 additionalPortMappings
아래에 각 추가 포트를 추가해야 합니다. 다음은 이에 대한 예입니다.
{
...
"properties": {
...
"configuration": {
"ingress": {
...
"additionalPortMappings": [
{
"external": false
"targetPort": 80
"exposedPort": 12000
}
]
}
}
...
}