AppSpec seção 'recursos' (somente Amazon ECS e AWS Lambda implantações) - AWS CodeDeploy

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AppSpec seção 'recursos' (somente Amazon ECS e AWS Lambda implantações)

O conteúdo na 'resources' seção do AppSpec arquivo varia, dependendo da plataforma computacional da sua implantação. A seção 'resources' para uma implantação do Amazon ECS contém a definição de tarefa do Amazon ECS, o contêiner e a porta para rotear o tráfego para o seu conjunto de tarefas do Amazon ECS atualizado e outras informações opcionais. A 'resources' seção de uma AWS Lambda implantação contém o nome, o alias, a versão atual e a versão de destino de uma função Lambda.

AppSpec seção 'recursos' para implantações do AWS Lambda

A seção 'resources' especifica a função do Lambda que será implantada e tem a seguinte estrutura:

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" } } } ]

Cada propriedade é especificada com uma string.

  • name – obrigatório. Esse é o nome da função do Lambda a ser implantada.

  • alias – obrigatório. Esse é o nome do alias da função do Lambda.

  • currentversion – obrigatório. Essa é a versão para a qual o tráfego da função do Lambda aponta. Este valor deve ser um inteiro positivo válido.

  • targetversion – obrigatório. Essa é a versão para a qual o tráfego da função do Lambda é deslocado. Este valor deve ser um inteiro positivo válido.

AppSpec seção 'recursos' para implantações do Amazon ECS

A seção 'resources' especifica o serviço do Amazon ECS que será implantado e tem a seguinte estrutura:

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 } ] } } } ]

Cada propriedade é especificada com uma string, exceto ContainerPort, que é um número.

  • TaskDefinition – obrigatório. Esta é a definição de tarefa para o serviço do Amazon ECS que será implantado. Ela é especificada com o ARN da definição de tarefa. O formato do ARN é arn:aws:ecs:aws-region:account-id:task-definition/task-definition-family:task-definition-revision. Para obter mais informações, consulte Amazon Resource Names (ARNs) e namespaces AWS de serviços.

    nota

    A porção :task-definition-revision do ARN é opcional. Se for omitido, o Amazon ECS usa a última revisão ATIVA da definição da tarefa.

  • ContainerName – obrigatório. Esse é o nome do contêiner do Amazon ECS que contém seu aplicativo do Amazon ECS. Ele deve ser um contêiner especificado em sua definição de tarefa do Amazon ECS.

  • ContainerPort – obrigatório. Essa é a porta do contêiner para a qual o tráfego será roteado.

  • PlatformVersion: opcional. A versão da plataforma das tarefas do Fargate no serviço do Amazon ECS implantado. Para obter mais informações, consulte Versões da plataforma do AWS Fargate. Se não for especificado, LATEST é usado como padrão.

  • NetworkConfiguration: opcional. Em AwsvpcConfiguration, especifique o seguinte: Para obter mais informações, consulte AwsVpcConfigurationa Referência da API do Amazon ECS Container Service.

    • Subnets: opcional. Uma lista separada por vírgulas de uma ou mais sub-redes em seu serviço do Amazon ECS.

    • SecurityGroups: opcional. Uma lista separada por vírgulas de um ou mais grupos de segurança em seu serviço do Amazon Elastic Container Service.

    • AssignPublicIp: opcional. Uma string que especifica se a interface de rede elástica do serviço do Amazon ECS recebe um endereço IP público. Os valores válidos são ENABLED e DISABLED.

    nota

    Todas ou nenhuma das configurações em NetworkConfiguration devem ser especificadas. Por exemplo, se você deseja especificar Subnets, também deverá especificar SecurityGroups e AssignPublicIp. Se nenhuma for especificada, CodeDeploy usa as configurações atuais da rede Amazon ECS.

  • CapacityProviderStrategy: opcional. Uma lista dos provedores de capacidade do Amazon ECS que você deseja usar para sua implantação. Para obter mais informações, consulte Provedores de capacidade do Amazon ECS no Guia do desenvolvedor do Amazon Elastic Container Service. Para cada provedor de capacidade, é possível especificar as configurações a seguir. Para obter detalhes sobre essas configurações, consulte AWS::ECS::ServiceCapacityProviderStrategyItemo Guia AWS CloudFormation do Usuário

    • Base: opcional. O valor da base designa o número mínimo de tarefas que serão executadas no provedor de capacidade especificado. Somente um provedor de capacidade em uma estratégia de provedor de capacidade pode ter uma base definida. Se nenhum valor for especificado, será usado o valor padrão 0.

    • CapacityProvider: opcional. O nome curto do provedor de capacidade. Exemplo: capacityProviderA

    • Weight: opcional.

      O valor do peso designa a porcentagem relativa do número total de tarefas executadas que devem usar o provedor de capacidade especificado. O valor weight é levado em consideração depois que o valor base, se definido, for satisfeito.

      Se nenhum valor de weight for especificado, será usado o valor padrão de 0. Quando vários fornecedores de capacidade são especificados dentro de uma estratégia de provedor de capacidade, pelo menos um dos provedores de capacidade deve ter um valor ponderal superior a zero e quaisquer prestadores de capacidade com um peso de não 0 serão utilizados para realizar tarefas. Se você especificar vários provedores de capacidade em uma estratégia em que todos tenham um peso de 0, quaisquer ações CreateService ou RunTask que usarem a estratégia de provedor de capacidade apresentarão falha.

      Um exemplo de situação para o uso de pesos é definir uma estratégia que contenha dois provedores de capacidade e ambos tiverem um peso de 1. Quando o base for atendido, as tarefas serão divididas uniformemente entre os dois provedores de capacidade. Usando essa mesma lógica, se você especificar um peso de 1 para CapacityProviderA e um peso de 4 para CapacityProviderB, então, para cada tarefa executada que usar o CapacityProviderA, quatro tarefas usariam o CapacityProviderB.