기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AppSpec '리소스' 섹션(Amazon ECS 및 AWS Lambda 배포만 해당)
AppSpec 파일 'resources'
섹션의 콘텐츠는 배포의 컴퓨팅 플랫폼에 따라 달라집니다. Amazon ECS 배포 'resources'
섹션에는 Amazon ECS 작업 정의, 업데이트된 Amazon 작업 ECS 세트로 트래픽을 라우팅하기 위한 컨테이너 및 포트, 기타 선택적 정보가 포함되어 있습니다. AWS Lambda 배포 'resources'
섹션에는 Lambda 함수의 이름, 별칭, 현재 버전 및 대상 버전이 포함되어 있습니다.
AppSpec AWS Lambda 배포에 대한 '리소스' 섹션
'resources'
섹션은 배포할 Lambda 함수를 지정하며 다음과 같은 구조를 갖습니다.
YAML:
resources: -
name-of-function-to-deploy
: type: "AWS::Lambda::Function" properties: name:name-of-lambda-function-to-deploy
alias:alias-of-lambda-function-to-deploy
currentversion:version-of-the-lambda-function-traffic-currently-points-to
targetversion:version-of-the-lambda-function-to-shift-traffic-to
JSON:
"resources": [ { "
name-of-function-to-deploy
" { "type": "AWS::Lambda::Function", "properties": { "name": "name-of-lambda-function-to-deploy
", "alias": "alias-of-lambda-function-to-deploy
", "currentversion": "version-of-the-lambda-function-traffic-currently-points-to
", "targetversion": "version-of-the-lambda-function-to-shift-traffic-to
" } } } ]
각 속성은 문자열로 지정됩니다.
-
name
- 필수. 배포할 Lambda 함수의 이름입니다. -
alias
- 필수. Lambda 함수에 대한 별칭 이름입니다. -
currentversion
- 필수. 현재 가리키는 Lambda 함수 트래픽의 버전입니다. 값은 유효한 양의 정수여야 합니다. -
targetversion
- 필수. 전환되는 Lambda 함수 트래픽의 버전입니다. 값은 유효한 양의 정수여야 합니다.
AppSpec Amazon ECS 배포에 대한 '리소스' 섹션
이 'resources'
섹션에서는 배포할 Amazon ECS 서비스를 지정하고 다음 구조를 갖습니다.
YAML:
Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "
task-definition-arn
" LoadBalancerInfo: ContainerName: "ecs-container-name
" ContainerPort: "ecs-application-port
" # Optional properties PlatformVersion: "ecs-service-platform-version
" NetworkConfiguration: AwsvpcConfiguration: Subnets: ["ecs-subnet-1
","ecs-subnet-n
"] SecurityGroups: ["ecs-security-group-1
","ecs-security-group-n
"] AssignPublicIp: "ENABLED | DISABLED
" CapacityProviderStrategy: - Base:integer
CapacityProvider: "capacityProviderA
" Weight:integer
- Base:integer
CapacityProvider: "capacityProviderB
" Weight:integer
JSON:
"Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "
task-definition-arn
", "LoadBalancerInfo": { "ContainerName": "ecs-container-name
", "ContainerPort": "ecs-application-port
" }, "PlatformVersion": "ecs-service-platform-version
", "NetworkConfiguration": { "AwsvpcConfiguration": { "Subnets": [ "ecs-subnet-1
", "ecs-subnet-n
" ], "SecurityGroups": [ "ecs-security-group-1
", "ecs-security-group-n
" ], "AssignPublicIp": "ENABLED | DISABLED
" } }, "CapacityProviderStrategy": [ { "Base":integer
, "CapacityProvider": "capacityProviderA
", "Weight":integer
}, { "Base":integer
, "CapacityProvider": "capacityProviderB
", "Weight":integer
} ] } } } ]
각 속성은 숫자인 ContainerPort
을(를) 제외하고 문자열로 지정됩니다.
-
TaskDefinition
- 필수. 배포하려는 Amazon ECS 서비스에 대한 작업 정의입니다. 태스크 정의ARN의 로 지정됩니다. ARN 형식은 입니다arn:aws:ecs:
. 자세한 내용은 Amazon 리소스 이름(ARNs) 및 AWS 서비스 네임스페이스를 참조하세요.aws-region
:account-id
:task-definition/task-definition-family
:task-definition-revision
참고
의
:
부분은 선택 사항ARN입니다. 생략된 경우 Amazon은 작업 정의의 최신 ACTIVE 개정을 ECS 사용합니다.task-definition-revision
-
ContainerName
- 필수입니다. Amazon ECS 애플리케이션이 포함된 Amazon ECS 컨테이너의 이름입니다. Amazon ECS 작업 정의에 지정된 컨테이너여야 합니다. -
ContainerPort
- 필수. 트래픽이 라우팅되는 컨테이너의 포트입니다. -
PlatformVersion
: 선택 사항입니다. 배포된 Amazon ECS 서비스에서 Fargate 작업의 플랫폼 버전입니다. 자세한 내용은 AWS Fargate 플랫폼 버전을 참조하세요. 지정하지 않으면 기본적으로LATEST
이(가) 사용됩니다. -
NetworkConfiguration
: 선택 사항입니다.AwsvpcConfiguration
에서 다음을 지정할 수 있습니다. 자세한 내용은 Amazon 컨테이너 서비스 참조AwsVpcConfiguration의 섹션을 참조하세요. ECS API-
Subnets
: 선택 사항. Amazon ECS 서비스의 하나 이상의 서브넷에 대한 쉼표로 구분된 목록입니다. -
SecurityGroups
: 선택 사항입니다. Amazon Elastic Container Service의 쉼표로 구분된 하나 이상의 보안 그룹 목록. -
AssignPublicIp
: 선택 사항입니다. Amazon ECS 서비스의 탄력적 네트워크 인터페이스가 퍼블릭 IP 주소를 수신할지 여부를 지정하는 문자열입니다. 유효 값은ENABLED
와DISABLED
입니다.
참고
NetworkConfiguration
아래의 설정을 모두 지정하거나 아무 것도 지정하지 않아야 합니다. 예를 들어,Subnets
를 지정하려는 경우SecurityGroups
및AssignPublicIp
도 지정해야 합니다. 아무 것도 지정되지 않은 경우 현재 네트워크 Amazon ECS 설정을 CodeDeploy 사용합니다. -
-
CapacityProviderStrategy
: 선택 사항. 배포에 사용할 Amazon ECS 용량 공급자 목록입니다. 자세한 내용은 Amazon Elastic Container Service 개발자 안내서의 Amazon ECS 용량 공급자를 참조하세요. 각 용량 공급자에 대해 다음 설정을 지정할 수 있습니다. 이러한 설정에 대한 자세한 내용은 AWS CloudFormation 사용 설명서의 AWS::ECS:::ServiceCapacityProviderStrategyItem를 참조하세요.-
Base
: 선택 사항입니다. 최소한 기준 값은 지정된 용량 공급자에서 실행할 태스크 수를 지정합니다. 용량 공급자 전략에서 하나의 용량 공급자만 기준을 정의할 수 있습니다. 값을 지정하지 않으면 기본값 0이 사용됩니다. -
CapacityProvider
: 선택 사항입니다. 용량 공급자의 짧은 이름입니다. 예: capacityProviderA -
Weight
: 선택 사항입니다.가중치 값은 지정된 용량 공급자를 사용해야 하는 시작된 총 작업 수의 상대 백분율을 지정합니다.
base
값이 정의되어 있다면 이 값이 만족된 다음weight
값을 고려합니다.weight
값을 지정하지 않으면0
의 기본값이 사용됩니다. 용량 공급자 전략 내에서 여러 용량 공급자가 지정된 경우 하나 이상의 용량 공급자가 0보다 큰 가중치 값을 가져야 하며 가중치가0
인 모든 용량 공급자는 태스크를 배치하는 데 사용되지 않습니다. 가중치가 모두0
인 전략에 여러 용량 공급자를 지정하면 용량 공급자 전략을 사용하는 모든RunTask
또는CreateService
작업이 실패합니다.예를 들면 둘 다
1
의 가중치를 갖는 경우base
가 충족되면 작업이 두 용량 공급자에 균등하게 분할되는 두 개의 용량 공급자를 포함하는 전략을 정의하는 가중치를 사용하는 시나리오입니다. 동일한 로직을 사용하여 capacityProviderA 에1
대해 가중치 를 지정하고 capacityProviderB4
에 대해 가중치를 지정하면 capacityProviderA 를 사용하여 실행되는 모든 태스크에 대해 4개의 태스크가 capacityProviderB 를 사용합니다.
-