Amazon AppSpec '섹션 (Amazon ECS 및AWS Lambda배포만 해당) - AWS CodeDeploy

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon AppSpec '섹션 (Amazon ECS 및AWS Lambda배포만 해당)

콘텐츠'resources'섹션AppSpec 의 컴퓨팅 플랫폼에 따라 다릅니다. 이'resources'섹션에는 Amazon ECS 작업 정의, 업데이트된 Amazon ECS 작업 세트로 트래픽을 라우팅하기 위한 포트 및 컨테이너, 기타 선택적 정보가 포함되어 있습니다. 이'resources'섹션에 대한AWS Lambda배포에는 Lambda 함수의 이름, 별칭, 현재 버전 및 대상 버전이 포함되어 있습니다.

에 대한 AppSpec '섹션AWSLambda 배포

'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 함수 트래픽의 버전입니다.

ECS 배포에 대한 AppSpec '리소스' 섹션

'resources'섹션은 배포할 Amazon ECS 서비스를 지정하며 다음과 같은 구조를 갖습니다.

YAML:

Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "task-definition-ARN" LoadBalancerInfo: ContainerName: "ECS-container-name-for-your-ECS-application" ContainerPort: port-used-by-your-ECS-application # 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-or-DISABLED" CapacityProviderStrategy: - Base: Integer CapacityProvider: "capacityProviderA" Weight: Integer - Base: Integer CapacityProvider: "capacityProviderB" Weight: Integer

JSON:

"Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "", "LoadBalancerInfo": { "ContainerName": "", "ContainerPort": }, "PlatformVersion": "", "NetworkConfiguration": { "AwsvpcConfiguration": { "Subnets": [ "", "" ], "SecurityGroups": [ "", "" ], "AssignPublicIp": "" } }, "CapacityProviderStrategy": [ { "Base" : Integer, "CapacityProvider" : "capacityProviderA", "Weight" : Integer }, { "Base" : Integer, "CapacityProvider" : "capacityProviderB", "Weight" : Integer } ] } } } ]

각 속성은 문자열로 지정됩니다.ContainerPort, 이는 숫자입니다.

  • TaskDefinition- 필수입니다. 배포할 Amazon ECS 서비스의 작업 정의입니다. 작업 정의의 ARN으로 지정됩니다. ARN 형식은 arn:aws:ecs:aws-region:account-id:task-definition/task-definition-family:task-definition-revision입니다. 자세한 내용은 단원을 참조하십시오.Amazon 리소스 이름 (ARN) 및AWS서비스 네임스페이스.

  • ContainerName- 필수입니다. Amazon ECS 애플리케이션이 포함된 Amazon ECS 컨테이너의 이름입니다. Amazon ECS 작업 정의에 지정된 컨테이너여야 합니다.

  • ContainerPort- 필수입니다. 트래픽이 라우팅되는 컨테이너의 포트입니다.

  • PlatformVersion: 선택. 배포된 Amazon ECS 서비스의 Fargate 작업의 플랫폼 버전입니다. 자세한 내용은 단원을 참조하십시오.AWS Fargate플랫폼 버전. 지정하지 않으면LATEST가 기본적으로 사용됩니다.

  • NetworkConfiguration: 선택. AwsvpcConfiguration에서 다음을 지정할 수 있습니다. 자세한 내용은 단원을 참조하십시오.AwsVpcConfigurationAmazon ECS Service API Reference.

    • Subnets: 선택. Amazon ECS 서비스의 쉼표로 구분된 하나 이상의 서브넷 목록.

    • SecurityGroups: 선택. Amazon Elastic Container 서비스의 쉼표로 구분된 하나 이상의 보안 그룹 목록.

    • AssignPublicIp: 선택. Amazon ECS 서비스의 elastic network interface 퍼블릭 IP 주소를 수신하는지 여부를 지정하는 문자열. 유효 값은 ENABLEDDISABLED입니다.

    참고

    NetworkConfiguration 아래의 설정을 모두 지정하거나 아무 것도 지정하지 않아야 합니다. 예를 들어, Subnets를 지정하려는 경우 SecurityGroupsAssignPublicIp도 지정해야 합니다. 아무 것도 지정하지 않는 경우 CodeDeploy 는 현재 네트워크 Amazon ECS 설정을 사용합니다.

  • CapacityProviderStrategy: 선택. 배포에 사용할 Amazon ECS 용량 공급자 목록. 자세한 내용은 단원을 참조하십시오.Amazon ECS 용량 공급자Amazon Elastic Service 개발자 가이드. 각 용량 제공자에 대해 다음 설정을 지정할 수 있습니다. 이러한 설정에 대한 자세한 내용은 단원을 참조하십시오.AWS። ECS። Service ContainerSpecAWS CloudFormation사용 설명서

    • Base: 선택. 최소한 기준 값은 지정된 용량 공급자에서 실행할 작업 수를 지정합니다. 용량 공급자 전략에서 하나의 용량 공급자만 기준을 정의할 수 있습니다. 값을 지정하지 않을 경우 기본값 0이 사용됩니다.

    • CapacityProvider: 선택. 용량 공급자의 짧은 이름입니다. 예:capacityProviderA

    • Weight: 선택.

      가중치 값은 지정된 용량 공급자를 사용해야 하는 시작된 총 작업 수의 상대 백분율을 지정합니다. base 값이 정의되어 있다면 이 값이 만족된 다음 weight 값을 고려합니다.

      weight 값을 지정하지 않으면 0의 기본값이 사용됩니다. 용량 공급자 전략 내에서 여러 용량 공급자가 지정된 경우 하나 이상의 용량 공급자가 0보다 큰 가중치 값을 가져야 하며 가중치가 0인 모든 용량 공급자는 작업을 배치하는 데 사용되지 않습니다. 가중치가 모두 0인 전략에 여러 용량 공급자를 지정하면 용량 공급자 전략을 사용하는 모든 CreateService 또는 RunTask 작업이 실패합니다.

      예를 들면 둘 다 1의 가중치를 갖는 경우 base가 충족되면 작업이 두 용량 공급자에 균등하게 분할되는 두 개의 용량 공급자를 포함하는 전략을 정의하는 가중치를 사용하는 시나리오입니다. 동일한 논리를 사용하여 capacityProviderA1의 가중치를 지정하고 capacityProviderB4의 가중치를 지정하면 capacityProviderA를 사용하여 실행되는 모든 작업에 대해 네 가지 작업에서 capacityProviderB를 사용합니다.