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 를 검색합니다. |
아니요 |
수신 사용
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
}
]
}
}
...
}