

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á.

# Trabalhando com revisões de aplicativos para CodeDeploy
<a name="application-revisions"></a>

Em CodeDeploy, uma revisão contém uma versão dos arquivos de origem que CodeDeploy serão implantados em suas instâncias ou scripts CodeDeploy serão executados em suas instâncias. 

Você planeja a revisão, adiciona um AppSpec arquivo à revisão e, em seguida, envia a revisão para o Amazon S3 ou. GitHub Depois de enviar a revisão, você poderá implantá-la.

**Topics**
+ [Planejar uma revisão](application-revisions-plan.md)
+ [Adicionar um AppSpec arquivo](application-revisions-appspec-file.md)
+ [Escolher um tipo de repositório](application-revisions-repository-type.md)
+ [Enviar uma revisão](application-revisions-push.md)
+ [Visualizar detalhes de revisões de aplicativo](application-revisions-view-details.md)
+ [Registrar uma revisão de aplicativo](application-revisions-register.md)

# Planejar uma revisão para o CodeDeploy
<a name="application-revisions-plan"></a>

Um bom planejamento facilita muito mais a implantação de revisões.

Para implantações em uma plataforma de computação do AWS Lambda ou Amazon ECS, uma revisão é o mesmo que o arquivo AppSpec. As informações a seguir não se aplicam. Para obter mais informações, consulte . [Adicionar um arquivo de especificação do aplicativo a uma revisão do CodeDeploy](application-revisions-appspec-file.md) 

Para implantações em uma plataforma de computação do EC2/On-Premises, comece criando um diretório (pasta) raiz vazio na máquina de desenvolvimento. Este é o local onde você armazenará os arquivos de origem (como arquivos de texto e binários, executáveis, pacotes e assim por diante) a serem implantados nas instâncias ou os scripts a serem executados nessas instâncias.

Por exemplo, na pasta raiz `/tmp/` no Linux, macOS ou Unix ou na pasta raiz `c:\temp` no Windows:

```
/tmp/ or c:\temp (root folder)
  |--content (subfolder)
  |    |--myTextFile.txt
  |    |--mySourceFile.rb
  |    |--myExecutableFile.exe
  |    |--myInstallerFile.msi
  |    |--myPackage.rpm
  |    |--myImageFile.png
  |--scripts (subfolder)
  |    |--myShellScript.sh
  |    |--myBatchScript.bat 
  |    |--myPowerShellScript.ps1 
  |--appspec.yml
```

A pasta raiz também deve incluir um arquivo de especificação de aplicativo (arquivo AppSpec), conforme mostrado aqui. Para obter mais informações, consulte [Adicionar um arquivo de especificação do aplicativo a uma revisão do CodeDeploy](application-revisions-appspec-file.md).

# Adicionar um arquivo de especificação do aplicativo a uma revisão do CodeDeploy
<a name="application-revisions-appspec-file"></a>

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.

**Topics**
+ [

## Adicionar um AppSpec arquivo para uma implantação do Amazon ECS
](#add-appspec-file-ecs)
+ [

## Adicionar um AppSpec arquivo para uma implantação do AWS Lambda
](#add-appspec-file-lambda)
+ [

## Adicionar um AppSpec arquivo para uma implantação EC2/local
](#add-appspec-file-server)

## Adicionar um AppSpec arquivo para uma implantação do Amazon ECS
<a name="add-appspec-file-ecs"></a>

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 obter mais informações, consulte [Criar uma implantação da plataforma de computação do Amazon ECS (console)](deployments-create-console-ecs.md).

**Para criar um AppSpec arquivo**

1. Copie o modelo JSON ou YAML em um editor de texto ou no AppSpec editor no console.

1. Modifique o template conforme necessário.

1. 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**.

1. 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 name="app-spec-template-yaml-ecs"></a>

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 do Amazon ECS](reference-appspec-file-structure-hooks.md#appspec-hooks-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 name="app-spec-template-json-ecs"></a>

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 do Amazon ECS](reference-appspec-file-structure-hooks.md#appspec-hooks-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
<a name="add-appspec-file-lambda"></a>

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 obter mais informações, consulte [Crie uma implantação da AWS Lambda Compute Platform (console)](deployments-create-console-lambda.md).

Para criar um AppSpec arquivo:

1. Copie o modelo JSON ou YAML em um editor de texto ou no AppSpec editor no console.

1. Modifique o template conforme necessário.

1. 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**.

1. 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
<a name="app-spec-template-yaml-lambda"></a>

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](reference-appspec-file-structure-hooks.md#appspec-hooks-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
<a name="app-spec-template-json-lambda"></a>

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](reference-appspec-file-structure-hooks.md#appspec-hooks-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
<a name="add-appspec-file-server"></a>

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:

1. Copie o template para um editor de texto.

1. Modifique o template conforme necessário.

1. Use um validador YAML para verificar a validade do seu AppSpec arquivo. 

1. Salve o arquivo como `appspec.yml` no diretório raiz da revisão.

1. 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.yml
     ```

     Não haverá saída se o AppSpec arquivo não for encontrado lá.
   + Para Windows:

     ```
     dir path\to\root\directory\appspec.yml
     ```

     Um erro **Arquivo não encontrado** será exibido se o AppSpec arquivo não estiver armazenado lá.

1. Envie a revisão para o Amazon S3 ou. GitHub 

   Para instruções, consulte [Envie uma revisão CodeDeploy para o Amazon S3 (somente implantações EC2/locais)](application-revisions-push.md).

### AppSpec modelo de arquivo para uma implantação EC2/local com instruções
<a name="app-spec-template-server"></a>

**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:
```

# Escolher um tipo de repositório do CodeDeploy
<a name="application-revisions-repository-type"></a>

O local de armazenamento dos arquivos exigidos pelo CodeDeploy é chamado de *repositório*. O uso de um repositório depende de qual plataforma de computação sua implantação usa.
+ **EC2/On-Premises**: para implantar seu código de aplicativo em uma ou mais instâncias, esse código deve ser empacotado em um arquivamento e colocado em um repositório em que o CodeDeploy possa acessá-lo durante o processo de implantação. Você agrupa seu conteúdo implantável e um arquivo AppSpec em um arquivamento e, em seguida, carrega esse arquivamento em um dos tipos de repositório com suporte pelo CodeDeploy.
+ **AWS Lambda** e **Amazon ECS**: as implantações exigem um arquivo AppSpec, que possa ser acessado durante uma implantação de uma das seguintes maneiras: 
  +  De um bucket do Amazon S3. 
  +  Do texto digitado diretamente no editor de AppSpec no console. Para obter mais informações, consulte [Crie uma implantação da AWS Lambda Compute Platform (console)](deployments-create-console-lambda.md) e [Criar uma implantação da plataforma de computação do Amazon ECS (console)](deployments-create-console-ecs.md). 
  +  Se você usa a AWS CLI, pode fazer referência a um arquivo AppSpec que esteja em seu disco rígido ou em um disco de rede. Para obter mais informações, consulte [Crie uma implantação da AWS Lambda Compute Platform (CLI)](deployments-create-lambda-cli.md) e [Crie uma implantação da Amazon ECS Compute Platform (CLI)](deployments-create-ecs-cli.md). 

No momento, o CodeDeploy oferece suporte aos seguintes tipos de repositório: 


|  |  |  | 
| --- |--- |--- |
| Tipo de repositório | Detalhes de repositório | Plataformas de computação com suporte | 
| Amazon S3 | [O Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/) (Amazon S3) é a solução da AWS para o armazenamento de objetos seguro e escalável. O Amazon S3 armazena dados como objetos dentro de buckets. Um objeto é composto de um arquivo e, opcionalmente, quaisquer metadados que descrevam esse arquivo. Para armazenar um objeto no Amazon S3, carregue o arquivo em um bucket. Ao carregar um arquivo, você pode definir permissões e metadados no objeto. Saiba mais: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/application-revisions-repository-type.html) | As implantações que usam as plataformas de computação a seguir podem armazenar a revisão em um bucket do Amazon S3.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/application-revisions-repository-type.html) | 
| GitHub | Você pode armazenar suas revisões de aplicativo em repositórios [GitHub](http://www.github.com). É possível disparar uma implantação de um repositório GitHub sempre que o código-fonte nesse repositório for alterado.Saiba mais:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/application-revisions-repository-type.html) | Somente implantações do EC2/On-Premises podem armazenar a revisão em um repositório GitHub. | 
| Bitbucket |  Você pode implantar código em grupos de implantação de instâncias do EC2 usando o [pipe do CodeDeploy](https://bitbucket.org/product/features/pipelines/integrations?p=atlassian/aws-code-deploy) em [Bitbucket Pipelines](https://bitbucket.org/product/features/pipelines). O serviço Bitbucket Pipelines oferece integração contínua e atributos de implantação contínua (CI/CD), incluindo [Implantações do Bitbucket](https://confluence.atlassian.com/bitbucket/bitbucket-deployments-940695276.html). O pipe do CodeDeploy primeiro envia o artefato para um bucket do S3 especificado e, depois, implanta o artefato de código a partir do bucket. Saiba mais:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/codedeploy/latest/userguide/application-revisions-repository-type.html)  | Somente implantações do EC2/On-Premises podem armazenar a revisão em um repositório BitBucket. | 

**nota**  
Uma implantação do AWS Lambda funciona somente com um repositório do Amazon S3.

# Envie uma revisão CodeDeploy para o Amazon S3 (somente implantações EC2/locais)
<a name="application-revisions-push"></a>

Depois de planejar sua revisão conforme descrito em [Planejar uma revisão para o CodeDeploy](application-revisions-plan.md) e adicionar um AppSpec arquivo à revisão conforme descrito em[Adicionar um arquivo de especificação do aplicativo a uma revisão do CodeDeploy](application-revisions-appspec-file.md), você estará pronto para agrupar os arquivos de componentes e enviar a revisão para o Amazon S3. Para implantações em instâncias do Amazon EC2, depois de enviar a revisão, você pode CodeDeploy usá-la para implantar a revisão do Amazon S3 nas instâncias.

**nota**  
CodeDeploy também pode ser usado para implantar revisões que foram enviadas para GitHub. Para obter mais informações, consulte sua GitHub documentação.

Supomos que você já tenha seguido as instruções em [Começando com CodeDeploy](getting-started-codedeploy.md) para configurar a AWS CLI. Isso é especialmente importante para chamar o comando **push** descrito mais adiante.

Certifique-se de ter um bucket do Amazon S3. Siga as instruções em [Criar um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html).

Caso sua implantação seja feita em instâncias do Amazon EC2, o bucket do Amazon S3 de destino precisa ser criado ou já existir na mesma região que as instâncias de destino. Por exemplo, se você quiser implantar uma revisão em algumas instâncias na região Leste dos EUA (Norte da Virgínia) e outras na região Oeste dos EUA (Oregon), você deve ter um bucket na região Leste dos EUA (Norte da Virgínia) com uma cópia da revisão e outro bucket na região Oeste dos EUA (Oregon) com outra cópia da mesma revisão. Nesse cenário, você precisa criar duas implantações separadas: uma na região Leste dos EUA (Norte da Virgínia) e outra na região Oeste dos EUA (Oregon), mesmo que a revisão seja igual nas duas regiões e nos buckets.

Você deve ter permissões para fazer upload no bucket do Amazon S3. Você pode especificar essas permissões por meio de uma política de bucket do Amazon S3. Por exemplo, na seguinte política de bucket do Amazon S3, o uso do caractere curinga (\$1) permite que `111122223333` a AWS conta faça upload de arquivos para qualquer diretório no bucket do Amazon S3 chamado: `amzn-s3-demo-bucket`

```
{
    "Statement": [
        {
            "Action": [
                "s3:PutObject"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Principal": {
                "AWS": [
                    "111122223333"
                ]
            }
        }
    ]
}
```

Para ver o ID AWS da sua conta, consulte [Encontrando o ID AWS da sua conta](https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html#FindingYourAWSId).

Para saber mais sobre como gerar e anexar uma política de bucket do Amazon S3, consulte [Exemplos de políticas de bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html).

O usuário que está chamando o comando **push** deve ter, no mínimo, permissões para fazer upload da revisão em cada bucket de destino do Amazon S3. Por exemplo, a seguinte política permite que o usuário faça upload de revisões em qualquer lugar no bucket do Amazon S3 denominado `amzn-s3-demo-bucket`:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
    ]
}
```

------

Para saber mais sobre como criar e anexar uma política do IAM, consulte [Trabalhando com políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html#AddingPermissions_Console).

## Faça uma revisão usando o AWS CLI
<a name="push-with-cli"></a>

**nota**  
 O `push` comando agrupa artefatos do aplicativo e um AppSpec arquivo em uma revisão. O formato de arquivo dessa revisão é um arquivo ZIP compactado. O comando não pode ser usado com uma implantação do AWS Lambda ou do Amazon ECS porque cada um espera uma revisão que seja um arquivo em formato JSON ou YAML. AppSpec 

Chame o comando **push** para agrupar e enviar a revisão por push para uma implantação. Os parâmetros são:
+  **--application-name**: (string) necessário. O nome do aplicativo do CodeDeploy que será associado à revisão de aplicativo. 
+  **--s3-location**: (string) necessário. Informações sobre a localização da revisão de aplicativo que será carregada no Amazon S3. Você deve especificar um bucket e uma chave do Amazon S3. A chave é o nome da revisão. CodeDeploy compacta o conteúdo antes de ser carregado. Use o formato `s3://amzn-s3-demo-bucket/your-key.zip`. 
+  **--ignore-hidden-files** ou **--no-ignore-hidden-files**: (booliano) opcional. Use o sinalizador `--no-ignore-hidden-files` (o padrão) para agrupar e carregar arquivos ocultos para o Amazon S3. Use o sinalizador `--ignore-hidden-files` para não agrupar e carregar arquivos ocultos para o Amazon S3. 
+  **--source** (string) opcional. A localização do conteúdo a ser implantado e o AppSpec arquivo na máquina de desenvolvimento a ser compactado e carregado no Amazon S3. A localização é especificada como um caminho relativo ao diretório atual. Se o caminho relativo não for especificado, ou se um ponto final for usado para o caminho ("."), o diretório atual será usado. 
+  **--description** (string) opcional. Um comentário que resume a revisão de aplicativo. Se não for especificada, a string padrão “Carregado por AWS CLI 'hora' UTC” será usada, em que 'hora' é a hora atual do sistema no Horário Universal Coordenado (UTC). 

Você pode usar o AWS CLI para enviar uma revisão para uma implantação do Amazon EC2. Um exemplo comando push é semelhante a: 

No Linux, macOS ou Unix:

```
aws deploy push \
  --application-name WordPress_App \
  --description "This is a revision for the application WordPress_App" \
  --ignore-hidden-files \
  --s3-location s3://amzn-s3-demo-bucket/WordPressApp.zip \
  --source .
```

 No Windows: 

```
aws deploy push --application-name WordPress_App --description "This is a revision for the application WordPress_App" --ignore-hidden-files --s3-location s3://amzn-s3-demo-bucket/WordPressApp.zip --source .
```

 Esse comando faz o seguinte: 
+  Associa o pacote de arquivos a um aplicativo chamado `WordPress_App`. 
+  Anexa uma descrição à revisão. 
+  Ignora arquivos ocultos. 
+  Nomeia a revisão `WordPressApp.zip` e a envia para um bucket chamado `amzn-s3-demo-bucket`. 
+  Agrupa todos os arquivos do diretório raiz na revisão. 

Depois que o push for bem-sucedido, você poderá usar o console AWS CLI ou o CodeDeploy console para implantar a revisão a partir do Amazon S3. Para implantar essa revisão com o AWS CLI: 

 No Linux, macOS ou Unix: 

```
aws deploy create-deployment \
  --application-name WordPress_App \ 
  --deployment-config-name your-deployment-config-name \ 
  --deployment-group-name your-deployment-group-name \ 
  --s3-location bucket=amzn-s3-demo-bucket,key=WordPressApp.zip,bundleType=zip
```

 No Windows: 

```
aws deploy create-deployment --application-name WordPress_App --deployment-config-name your-deployment-config-name --deployment-group-name your-deployment-group-name --s3-location bucket=amzn-s3-demo-bucket,key=WordPressApp.zip,bundleType=zip
```

 Para obter mais informações, consulte [Crie uma implantação com CodeDeploy](deployments-create.md). 

# Visualize os detalhes da revisão do aplicativo com CodeDeploy
<a name="application-revisions-view-details"></a>

Você pode usar o CodeDeploy console AWS CLI, o ou o CodeDeploy APIs para ver detalhes sobre todas as revisões de aplicativos que estão registradas na sua AWS conta para um aplicativo específico.

Para obter informações sobre como registrar uma revisão, consulte [Registre uma revisão do aplicativo no Amazon S3 com CodeDeploy](application-revisions-register.md).

**Topics**
+ [

## Visualizar detalhes de revisões de aplicativo (console)
](#application-revisions-view-details-console)
+ [

## Visualizar detalhes de revisões de aplicativo (CLI)
](#application-revisions-view-details-cli)

## Visualizar detalhes de revisões de aplicativo (console)
<a name="application-revisions-view-details-console"></a>

Para visualizar detalhes de revisões de aplicativo:

1. Faça login no Console de gerenciamento da AWS e abra o CodeDeploy console em [https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy).
**nota**  
Faça login com o mesmo usuário que você configurou em [Começando com CodeDeploy](getting-started-codedeploy.md).

1. No painel de navegação, expanda a opção **Deploy (Implantar)** e selecione **Applications (Aplicativos)**.
**nota**  
Se nenhuma entrada for exibida, verifique se a região correta está selecionada. Na barra de navegação, no seletor de região, escolha uma das regiões listadas em [Região e Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region) no. *Referência geral da AWS* CodeDeploy é suportado somente nessas regiões.

1. Escolha o nome do aplicativo cuja revisão você deseja visualizar.

1. Na página **Application details (Detalhes do aplicativo)**, selecione a guia **Revisions (Revisões)** e reveja a lista de revisões registradas para o aplicativo. Selecione uma revisão e, em seguida, selecione **View details (Visualizar detalhes)**.

## Visualizar detalhes de revisões de aplicativo (CLI)
<a name="application-revisions-view-details-cli"></a>

Para usar o AWS CLI para visualizar uma revisão do aplicativo, chame o ****get-application-revision****comando ou o ****list-application-revisions****comando.

**nota**  
 Referências a serem GitHub aplicadas somente a implantações em implantações EC2/locais. As revisões para AWS Lambda implantações não funcionam com. GitHub 

Para visualizar detalhes sobre uma única revisão de aplicativo, chame o comando [get-application-revision](https://docs.aws.amazon.com/cli/latest/reference/deploy/get-application-revision.html), especificando: 
+ O nome do aplicativo. Para obter o nome do aplicativo, chame o comando [list-applications](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-applications.html).
+ Para uma revisão armazenada em GitHub, o nome do GitHub repositório e o ID do commit que faz referência à revisão do aplicativo que foi enviada para o repositório.
+ Para uma revisão armazenada no Amazon S3, o nome do bucket do Amazon S3 que contém a revisão; o nome e o tipo de arquivo do arquivo carregado; e, opcionalmente, o identificador de versão do Amazon S3 do arquivo arquivado e. ETag Se o identificador da versão ETag, ou ambos, foram especificados durante uma chamada para [register-application-revision](https://docs.aws.amazon.com/cli/latest/reference/deploy/register-application-revision.html), eles devem ser especificados aqui.

Para visualizar detalhes sobre várias revisões de aplicativo, chame o comando [list-application-revisions](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-application-revisions.html), especificando:
+ O nome do aplicativo. Para obter o nome do aplicativo, chame o comando [list-applications](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-applications.html).
+ Opcionalmente, para visualizar detalhes apenas de revisões de aplicativo do Amazon S3, o nome do bucket do Amazon S3 contendo as revisões.
+ Opcionalmente, para visualizar detalhes apenas de revisões de aplicativo do Amazon S3, uma string de prefixo para limitar a pesquisa a revisões de aplicativo do Amazon S3. (Se não for especificado, CodeDeploy listará todas as revisões correspondentes do aplicativo Amazon S3.)
+ Opcionalmente, seja para listar detalhes de revisão com base em se cada revisão é a revisão de destino de um grupo de implantação. (Se não for especificado, CodeDeploy listará todas as revisões correspondentes.)
+ Opcionalmente, o nome da coluna e a ordem com base na qual classificar a lista de detalhes da revisão. (Se não for especificado, CodeDeploy listará os resultados em uma ordem arbitrária.)

É possível listar todas as revisões ou apenas aquelas armazenadas no Amazon S3. Você não pode listar somente as revisões armazenadas em GitHub.

# Registre uma revisão do aplicativo no Amazon S3 com CodeDeploy
<a name="application-revisions-register"></a>

Se você já tiver chamado o comando [push](https://docs.aws.amazon.com/cli/latest/reference/deploy/push.html) para enviar uma revisão de aplicativo ao Amazon S3, não será necessário registrar a revisão. No entanto, se você fizer upload de uma revisão para o Amazon S3 por outros meios e quiser que a revisão apareça no CodeDeploy console ou por meio do AWS CLI, siga estas etapas para registrar a revisão primeiro.

Se você enviou uma revisão do aplicativo para um GitHub repositório e deseja que a revisão apareça no CodeDeploy console ou por meio do AWS CLI, você também deve seguir estas etapas.

Você pode usar somente o AWS CLI ou o CodeDeploy APIs para registrar revisões de aplicativos no Amazon GitHub S3 ou.

**Topics**
+ [

## Registre uma revisão no Amazon S3 com ( CodeDeploy CLI)
](#application-revisions-register-s3)
+ [

## Registre uma revisão GitHub com CodeDeploy (CLI)
](#application-revisions-register-github)

## Registre uma revisão no Amazon S3 com ( CodeDeploy CLI)
<a name="application-revisions-register-s3"></a>

1. Faça o upload do relatório no Amazon S3.

1. Use o comando [register-application-revision](https://docs.aws.amazon.com/cli/latest/reference/deploy/register-application-revision.html), especificando:
   + O nome do aplicativo. Para ver uma lista de nomes de aplicativos, chame o comando [list-applications](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-applications.html).
   + Informações sobre a revisão a ser registrada:
     + O nome do bucket do Amazon S3 que contém a revisão.
     + O nome e o tipo de arquivo da revisão carregada. Para AWS Lambda implantações, a revisão é um AppSpec arquivo escrito em JSON ou YAML. Para implantações EC2/locais, a revisão contém uma versão dos arquivos de origem que CodeDeploy serão implantados em suas instâncias ou scripts que CodeDeploy serão executados em suas instâncias.
**nota**  
Os formatos de arquivo tar e tar compactado (.tar e .tar.gz) não são compatíveis com instâncias do Windows Server.
     + (Opcional) O identificador de versão do Amazon S3 da revisão. (Se o identificador da versão não for especificado, CodeDeploy usará a versão mais recente.)
     + (Opcional) A revisão ETag. (Se não ETag for especificado, CodeDeploy ignorará a validação do objeto.)
   + (Opcional) Qualquer descrição que você queira associar à revisão.

As informações sobre uma revisão no Amazon S3 podem ser especificadas na linha de comando, usando essa sintaxe como parte da chamada de **register-application-revision**. (`version` e `eTag` são opcionais.)

Para um arquivo de revisão de uma implantação do EC2/On-Premises:

```
--s3-location bucket=string,key=string,bundleType=tar|tgz|zip,version=string,eTag=string
```

Para um arquivo de revisão para uma implantação do AWS Lambda:

```
--s3-location bucket=string,key=string,bundleType=JSON|YAML,version=string,eTag=string
```

## Registre uma revisão GitHub com CodeDeploy (CLI)
<a name="application-revisions-register-github"></a>

**nota**  
AWS Lambda implantações não funcionam com GitHub. 

1. Faça o upload da revisão para o seu GitHub repositório.

1. Use o comando [register-application-revision](https://docs.aws.amazon.com/cli/latest/reference/deploy/register-application-revision.html), especificando:
   + O nome do aplicativo. Para ver uma lista de nomes de aplicativos, chame o comando [list-applications](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-applications.html).
   + Informações sobre a revisão a ser registrada:
     + O nome GitHub do usuário ou grupo atribuído ao repositório que contém a revisão, seguido por uma barra (`/`), seguida pelo nome do repositório.
     + O ID da confirmação que faz referência à revisão no repositório.
   + (Opcional) Qualquer descrição que você queira associar à revisão.

As informações sobre uma revisão em GitHub podem ser especificadas na linha de comando, usando essa sintaxe como parte da **register-application-revision** chamada:

```
--github-location repository=string,commitId=string
```