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á.
Adicionar um arquivo de especificação do aplicativo a uma revisão do CodeDeploy
Este tópico mostra como adicionar um AppSpec arquivo à sua implantação. Também inclui modelos para criar um AppSpec arquivo para uma implantação AWS Lambda e EC2/local.
Tópicos
Adicionar um AppSpec arquivo para uma implantação do Amazon ECS
Para uma implantação em uma plataforma de computação do Amazon ECS:
-
O AppSpec arquivo especifica a definição de tarefa do Amazon ECS usada para a implantação, um nome de contêiner e mapeamento de portas usados para rotear o tráfego e funções Lambda opcionais executadas após eventos do ciclo de vida da implantação.
-
Uma revisão é o mesmo que um AppSpec arquivo.
-
Um AppSpec arquivo pode ser escrito usando JSON ou YAML.
-
Um AppSpec arquivo pode ser salvo como um arquivo de texto ou inserido diretamente em um console quando você cria uma implantação. Para ter mais informações, consulte Crie uma implantação da Amazon ECS Compute Platform (console).
Para criar um AppSpec arquivo
-
Copie o modelo JSON ou YAML em um editor de texto ou no AppSpec editor no console.
-
Modifique o template conforme necessário.
-
Use um validador JSON ou YAML para validar seu arquivo. AppSpec Se você usar o AppSpec editor, o arquivo será validado quando você escolher Criar implantação.
-
Se você usar um editor de texto, salve o arquivo. Se você usar o AWS CLI para criar sua implantação, faça referência ao AppSpec arquivo se ele estiver no seu disco rígido ou em um bucket do Amazon S3. Se você usa o console, deve enviar seu AppSpec arquivo para o Amazon S3.
Modelo de AppSpec arquivo YAML para uma implantação do Amazon ECS com instruções
A seguir está um modelo YAML de um AppSpec arquivo para uma implantação do Amazon ECS com todas as opções disponíveis. Para obter informações sobre os eventos de ciclo de vida que serão usados na seção hooks
, consulte AppSpec seção 'hooks' para uma implantação da Amazon ECS.
# This is an appspec.yml template file for use with an Amazon ECS deployment in CodeDeploy. # The lines in this template that start with the hashtag are # comments that can be safely left in the file or # ignored. # For help completing this file, see the "AppSpec File Reference" in the # "CodeDeploy User Guide" at # https://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.html version: 0.0 # In the Resources section, you must specify the following: the Amazon ECS service, task definition name, # and the name and port of the load balancer to route traffic, # target version, and (optional) the current version of your AWS Lambda function. Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "" # Specify the ARN of your task definition (arn:aws:ecs:region:account-id:task-definition/task-definition-family-name:task-definition-revision-number) LoadBalancerInfo: ContainerName: "" # Specify the name of your Amazon ECS application's container ContainerPort: "" # Specify the port for your container where traffic reroutes # Optional properties PlatformVersion: "" # Specify the version of your Amazon ECS Service NetworkConfiguration: AwsvpcConfiguration: Subnets: ["",""] # Specify one or more comma-separated subnets in your Amazon ECS service SecurityGroups: ["",""] # Specify one or more comma-separated security groups in your Amazon ECS service AssignPublicIp: "" # Specify "ENABLED" or "DISABLED" # (Optional) In the Hooks section, specify a validation Lambda function to run during # a lifecycle event. Hooks: # Hooks for Amazon ECS deployments are: - BeforeInstall: "" # Specify a Lambda function name or ARN - AfterInstall: "" # Specify a Lambda function name or ARN - AfterAllowTestTraffic: "" # Specify a Lambda function name or ARN - BeforeAllowTraffic: "" # Specify a Lambda function name or ARN - AfterAllowTraffic: "" # Specify a Lambda function name or ARN
AppSpec Arquivo JSON para um modelo de implantação do Amazon ECS
A seguir está um modelo JSON para um AppSpec arquivo para uma implantação do Amazon ECS com todas as opções disponíveis. Para obter instruções do modelo, consulte os comentários na versão YAML da seção anterior. Para obter informações sobre os eventos de ciclo de vida que serão usados na seção hooks
, consulte AppSpec seção 'hooks' para uma implantação da Amazon ECS.
{ "version": 0.0, "Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "", "LoadBalancerInfo": { "ContainerName": "", "ContainerPort": }, "PlatformVersion": "", "NetworkConfiguration": { "AwsvpcConfiguration": { "Subnets": [ "", "" ], "SecurityGroups": [ "", "" ], "AssignPublicIp": "" } } } } } ], "Hooks": [ { "BeforeInstall": "" }, { "AfterInstall": "" }, { "AfterAllowTestTraffic": "" }, { "BeforeAllowTraffic": "" }, { "AfterAllowTraffic": "" } ] }
Adicionar um AppSpec arquivo para uma implantação do AWS Lambda
Para uma implantação em uma plataforma de computação AWS Lambda:
-
O AppSpec arquivo contém instruções sobre as funções do Lambda a serem implantadas e usadas para validação da implantação.
-
Uma revisão é o mesmo que um AppSpec arquivo.
-
Um AppSpec arquivo pode ser escrito usando JSON ou YAML.
-
Um AppSpec arquivo pode ser salvo como um arquivo de texto ou inserido diretamente em um AppSpec editor de console ao criar uma implantação. Para ter mais informações, consulte Crie uma implantação de Plataforma de Computação do AWS Lambda (console).
Para criar um AppSpec arquivo:
-
Copie o modelo JSON ou YAML em um editor de texto ou no AppSpec editor no console.
-
Modifique o template conforme necessário.
-
Use um validador JSON ou YAML para validar seu arquivo. AppSpec Se você usar o AppSpec editor, o arquivo será validado quando você escolher Criar implantação.
-
Se você usar um editor de texto, salve o arquivo. Se você usar o AWS CLI para criar sua implantação, faça referência ao AppSpec arquivo se ele estiver no seu disco rígido ou em um bucket do Amazon S3. Se você usa o console, deve enviar seu AppSpec arquivo para o Amazon S3.
Modelo de AppSpec arquivo YAML para uma AWS Lambda implantação com instruções
Para obter informações sobre os eventos de ciclo de vida utilizados na seção "Hooks", consulte AppSpec seção 'hooks' para uma implantação do AWS Lambda.
# This is an appspec.yml template file for use with an AWS Lambda deployment in CodeDeploy. # The lines in this template starting with the hashtag symbol are # instructional comments and can be safely left in the file or # ignored. # For help completing this file, see the "AppSpec File Reference" in the # "CodeDeploy User Guide" at # https://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.html version: 0.0 # In the Resources section specify the name, alias, # target version, and (optional) the current version of your AWS Lambda function. Resources: - MyFunction: # Replace "MyFunction" with the name of your Lambda function Type: AWS::Lambda::Function Properties: Name: "" # Specify the name of your Lambda function Alias: "" # Specify the alias for your Lambda function CurrentVersion: "" # Specify the current version of your Lambda function TargetVersion: "" # Specify the version of your Lambda function to deploy # (Optional) In the Hooks section, specify a validation Lambda function to run during # a lifecycle event. Replace "LifeCycleEvent" with BeforeAllowTraffic # or AfterAllowTraffic. Hooks: - LifeCycleEvent: "" # Specify a Lambda validation function between double-quotes.
AppSpec Arquivo JSON para um modelo de AWS Lambda implantação
No modelo a seguir, substitua MyFunction "" pelo nome da sua AWS Lambda função. Na seção Hooks opcional, substitua os eventos do ciclo de vida por ou. BeforeAllowTraffic AfterAllowTraffic
Para obter informações sobre os eventos de ciclo de vida utilizados na seção "Hooks", consulte AppSpec seção 'hooks' para uma implantação do AWS Lambda.
{ "version": 0.0, "Resources": [{ "MyFunction": { "Type": "AWS::Lambda::Function", "Properties": { "Name": "", "Alias": "", "CurrentVersion": "", "TargetVersion": "" } } }], "Hooks": [{ "LifeCycleEvent": "" } ] }
Adicionar um AppSpec arquivo para uma implantação EC2/local
Sem um AppSpec arquivo, CodeDeploy não é possível mapear os arquivos de origem na revisão do seu aplicativo para seus destinos ou executar scripts para sua implantação em uma plataforma de computação EC2/local,.
Cada revisão deve conter somente um AppSpec arquivo.
Para adicionar um AppSpec arquivo a uma revisão:
-
Copie o template para um editor de texto.
-
Modifique o template conforme necessário.
-
Use um validador YAML para verificar a validade do seu AppSpec arquivo.
-
Salve o arquivo como
appspec.yml
no diretório raiz da revisão. -
Execute um dos comandos a seguir para verificar se você colocou seu AppSpec arquivo no diretório raiz:
-
Para Linux, macOS ou Unix:
find
/path/to/root/directory
-name appspec.ymlNão haverá saída se o AppSpec arquivo não for encontrado lá.
-
Para Windows:
dir
path\to\root\directory\
appspec.ymlUm erro Arquivo não encontrado será exibido se o AppSpec arquivo não estiver armazenado lá.
-
-
Envie a revisão para o Amazon S3 ou. GitHub
Para obter instruções, consulte Envie uma revisão CodeDeploy para o Amazon S3 (EC2/Somente implantações locais).
AppSpec modelo de arquivo para uma implantação EC2/local com instruções
nota
As implantações em instâncias do Windows Server não oferecem suporte ao elemento runas
. Se você estiver implantando em instâncias do Windows Server, não o inclua em seu AppSpec arquivo.
# This is an appspec.yml template file for use with an EC2/On-Premises deployment in CodeDeploy. # The lines in this template starting with the hashtag symbol are # instructional comments and can be safely left in the file or # ignored. # For help completing this file, see the "AppSpec File Reference" in the # "CodeDeploy User Guide" at # https://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.html version: 0.0 # Specify "os: linux" if this revision targets Amazon Linux, # Red Hat Enterprise Linux (RHEL), or Ubuntu Server # instances. # Specify "os: windows" if this revision targets Windows Server instances. # (You cannot specify both "os: linux" and "os: windows".) os: linux # os: windows # During the Install deployment lifecycle event (which occurs between the # BeforeInstall and AfterInstall events), copy the specified files # in "source" starting from the root of the revision's file bundle # to "destination" on the Amazon EC2 instance. # Specify multiple "source" and "destination" pairs if you want to copy # from multiple sources or to multiple destinations. # If you are not copying any files to the Amazon EC2 instance, then remove the # "files" section altogether. A blank or incomplete "files" section # may cause associated deployments to fail. files: - source: destination: - source: destination: # For deployments to Amazon Linux, Ubuntu Server, or RHEL instances, # you can specify a "permissions" # section here that describes special permissions to apply to the files # in the "files" section as they are being copied over to # the Amazon EC2 instance. # For more information, see the documentation. # If you are deploying to Windows Server instances, # then remove the # "permissions" section altogether. A blank or incomplete "permissions" # section may cause associated deployments to fail. permissions: - object: pattern: except: owner: group: mode: acls: - context: user: type: range: type: - # If you are not running any commands on the Amazon EC2 instance, then remove # the "hooks" section altogether. A blank or incomplete "hooks" section # may cause associated deployments to fail. hooks: # For each deployment lifecycle event, specify multiple "location" entries # if you want to run multiple scripts during that event. # You can specify "timeout" as the number of seconds to wait until failing the deployment # if the specified scripts do not run within the specified time limit for the # specified event. For example, 900 seconds is 15 minutes. If not specified, # the default is 1800 seconds (30 minutes). # Note that the maximum amount of time that all scripts must finish executing # for each individual deployment lifecycle event is 3600 seconds (1 hour). # Otherwise, the deployment will stop and CodeDeploy will consider the deployment # to have failed to the Amazon EC2 instance. Make sure that the total number of seconds # that are specified in "timeout" for all scripts in each individual deployment # lifecycle event does not exceed a combined 3600 seconds (1 hour). # For deployments to Amazon Linux, Ubuntu Server, or RHEL instances, # you can specify "runas" in an event to # run as the specified user. For more information, see the documentation. # If you are deploying to Windows Server instances, # remove "runas" altogether. # If you do not want to run any commands during a particular deployment # lifecycle event, remove that event declaration altogether. Blank or # incomplete event declarations may cause associated deployments to fail. # During the ApplicationStop deployment lifecycle event, run the commands # in the script specified in "location" starting from the root of the # revision's file bundle. ApplicationStop: - location: timeout: runas: - location: timeout: runas: # During the BeforeInstall deployment lifecycle event, run the commands # in the script specified in "location". BeforeInstall: - location: timeout: runas: - location: timeout: runas: # During the AfterInstall deployment lifecycle event, run the commands # in the script specified in "location". AfterInstall: - location: timeout: runas: - location: timeout: runas: # During the ApplicationStart deployment lifecycle event, run the commands # in the script specified in "location". ApplicationStart: - location: timeout: runas: - location: timeout: runas: # During the ValidateService deployment lifecycle event, run the commands # in the script specified in "location". ValidateService: - location: timeout: runas: - location: timeout: runas: