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 'resources'
seção para uma ECS implantação da Amazon contém sua definição de ECS tarefa da Amazon, contêiner e porta para rotear o tráfego para seu conjunto de ECS tarefas atualizado da Amazon 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.
Tópicos
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 ECS implantações da Amazon
A 'resources'
seção especifica o ECS serviço da Amazon a 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. Essa é a definição da tarefa a ser implantada pelo ECS serviço da Amazon. É especificado com a definição ARN da tarefa. O ARN formato éarn:aws:ecs:
. Para obter mais informações, consulte Amazon Resource Names (ARNs) e namespaces AWS de serviços.aws-region
:account-id
:task-definition/task-definition-family
:task-definition-revision
nota
A
:
parte do ARN é opcional. Se for omitido, a Amazon ECS usa a ACTIVE revisão mais recente da definição da tarefa.task-definition-revision
-
ContainerName
– obrigatório. Esse é o nome do ECS contêiner da Amazon que contém seu ECS aplicativo Amazon. Ele deve ser um contêiner especificado na definição de ECS tarefas da Amazon. -
ContainerPort
– obrigatório. Essa é a porta do contêiner para a qual o tráfego será roteado. -
PlatformVersion
: Optional. A versão da plataforma das tarefas do Fargate no serviço 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
: Optional. EmAwsvpcConfiguration
, especifique o seguinte: Para obter mais informações, consulte AwsVpcConfigurationa APIReferência do Amazon ECS Container Service.-
Subnets
: Optional. Uma lista separada por vírgulas de uma ou mais sub-redes em seu serviço da Amazon. ECS -
SecurityGroups
: Optional. Uma lista separada por vírgulas de um ou mais grupos de segurança em seu serviço do Amazon Elastic Container Service. -
AssignPublicIp
: Optional. Uma string que especifica se a interface de rede elástica do seu ECS serviço Amazon recebe um endereço IP público. Os valores válidos sãoENABLED
eDISABLED
.
nota
Todas ou nenhuma das configurações em
NetworkConfiguration
devem ser especificadas. Por exemplo, se você deseja especificarSubnets
, também deverá especificarSecurityGroups
eAssignPublicIp
. Se nenhum for especificado, CodeDeploy usa as ECS configurações de rede atuais da Amazon. -
-
CapacityProviderStrategy
: Optional. Uma lista dos provedores de ECS capacidade da Amazon que você deseja usar para sua implantação. Para obter mais informações, consulte os provedores de ECS capacidade da Amazon no Amazon Elastic Container Service Developer Guide. Para cada provedor de capacidade, é possível especificar as configurações a seguir. Para obter detalhes sobre essas configurações, consulte AWS:ECS:: ServiceCapacityProviderStrategyItem no Guia do AWS CloudFormation Usuário-
Base
: Optional. 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
: Optional. O nome curto do provedor de capacidade. Exemplo: capacityProviderA -
Weight
: Optional.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 valorbase
, se definido, for satisfeito.Se nenhum valor de
weight
for especificado, será usado o valor padrão de0
. 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ão0
serão utilizados para realizar tarefas. Se você especificar vários provedores de capacidade em uma estratégia em que todos tenham um peso de0
, quaisquer açõesCreateService
ouRunTask
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 obase
for atendido, as tarefas serão divididas uniformemente entre os dois provedores de capacidade. Usando essa mesma lógica, se você especificar um peso de1
A e um peso de4
capacityProviderB, para cada tarefa executada usando capacityProviderA, quatro tarefas usariam capacityProviderB. capacityProvider
-