

# Como o Git sync funciona com o CloudFormation
<a name="git-sync-concepts-terms"></a>

Este tópico descreve como a sincronização do Git funciona e apresenta os principais conceitos necessários para trabalhar com ela.

**Topics**
+ [Como a sincronização do Git funciona](#git-sync-concepts-terms-how)
+ [Comentários sobre solicitações pull](#git-sync-comments-on-pull-requests)
+ [Arquivo de implantação da pilha](#git-sync-concepts-terms-depoyment-file)
+ [Arquivo de modelo do CloudFormation](#git-sync-concepts-terms-template-file)
+ [Repositório de definição de modelo](#git-sync-concepts-terms-template-definition-repository)

## Como a sincronização do Git funciona
<a name="git-sync-concepts-terms-how"></a>

Para usar a sincronização do Git sync, primeiro você deve conectar um provedor do Git ao CloudFormation usando o serviço [CodeConnections](https://docs.aws.amazon.com/codeconnections/latest/APIReference/Welcome.html). Nos procedimentos deste guia, a conexão é criada por meio do console do CodeConnections. Se preferir, crie a conexão com a AWS CLI. É possível usar os seguintes provedores do Git:
+ [GitHub](https://github.com/)
+ [GitHub Enterprise](https://github.com/enterprise/)
+ [GitLab](https://about.gitlab.com/)
+ [Bitbucket](https://bitbucket.org)
+ [GitLab autogerenciado](https://docs.gitlab.com/subscriptions/self_managed/)

A seguir, crie um modelo do CloudFormation que defina a pilha e adicione-o ao repositório. Este arquivo de modelo é monitorado. O CloudFormation atualiza a pilha automaticamente quando as alterações são confirmadas para ela.

No console do CloudFormation, você cria uma pilha e escolhe **Sincronizar a partir do Git** para fazer com que o CloudFormation use a sincronização do Git. Você especificará o repositório e a ramificação que deseja que o CloudFormation monitore, bem como especificará o modelo do CloudFormation que define a pilha em seu repositório.

Durante a configuração, é possível fornecer o próprio arquivo de implantação da pilha do seu repositório ou fazer com que o Git Sync gere um arquivo para você. O arquivo de implantação da pilha contém parâmetros e valores que configuram os recursos na pilha. Este arquivo de implantação da pilha é monitorado. O CloudFormation atualiza a pilha automaticamente quando as alterações são confirmadas para ela.

O Git Sync cria uma solicitação pull em seu repositório para sincronizar a pilha com o arquivo de modelo do CloudFormation e o arquivo de implantação da pilha. Se o Git Sync gerar o arquivo de implantação da pilha para você, ele será enviado ao seu repositório pelo Git Sync.

Depois, mescle a solicitação pull com o repositório para que o CloudFormation provisione a pilha, configure-a com os parâmetros de implantação e comece a monitorar as alterações no repositório.

Daí em diante, sempre que você fizer alterações no arquivo de modelo ou no arquivo de implantação de pilha e as confirmar no repositório, o CloudFormation detectará automaticamente as alterações. Se sua equipe usa pull requests, os membros da equipe podem então revisar e aprovar as alterações antes que elas sejam implantadas. Depois que a pull request for aceita, o CloudFormation implantará suas alterações.

É possível monitorar o status da configuração de sincronização do Git para a pilha e ver um histórico de confirmações aplicadas à pilha no console do CloudFormation. Além disso, o console fornece ferramentas para a reconfiguração do Git Sync e para a solução de problemas. 

## Comentários sobre solicitações pull
<a name="git-sync-comments-on-pull-requests"></a>

Você pode optar por fazer com que o CloudFormation crie um resumo das alterações de código nas pull requests por meio do serviço CodeConnections ativando a opção **Habilitar comentário na pull request** no console. Fornecer um resumo das alterações nas solicitações pull significa que os membros da equipe podem facilmente revisar e entender o impacto das modificações propostas antes de mesclar a solicitação pull. Para obter mais informações, consulte [Permitir que o CloudFormation publique um resumo das alterações de pilha em solicitações pull](gitsync-enable-comments-on-pull-requests.md).

## Arquivo de implantação da pilha
<a name="git-sync-concepts-terms-depoyment-file"></a>

Um arquivo de implantação da pilha corresponde a um arquivo formatado em JavaScript Object Notation (JSON) ou em YAML padrão que contém os parâmetros e os valores que gerenciam a pilha do CloudFormation. Ele é monitorado quanto a alterações. Quando alterações no arquivo são confirmadas no repositório, a pilha associada é atualizada automaticamente.

O arquivo de implantação da pilha contém um par chave/valor e dois dicionários:
+ `template-file-path`

  Este é o caminho completo do repositório para o arquivo de modelo do CloudFormation. O arquivo de modelo declara os recursos para a pilha do CloudFormation associada a este arquivo de implantação.
+ `parameters`

  O dicionário de parâmetros contém pares chave/valor que configuram os recursos na pilha. Um arquivo de implantação da pilha pode ter, no máximo, 50 parâmetros.
+ `tags`

  O dicionário de etiquetas contém pares chave/valor opcionais que você pode usar para identificar e categorizar os recursos na pilha. Um arquivo de implantação da pilha pode ter, no máximo, 50 etiquetas.

É possível fornecer o próprio arquivo de implantação da pilha ou fazer com que o Git Sync crie um arquivo para você e envie automaticamente uma solicitação pull para o seu repositório. Você pode gerenciar os parâmetros e as etiquetas ao editar o arquivo de implantação da pilha e ao confirmar as alterações no repositório.

Veja a seguir um exemplo de um arquivo de implantação da pilha do Git Sync:

```
template-file-path: fargate-srvc/my-stack-template.yaml

parameters: 
    image: public.ecr.aws/lts/nginx:latest
    task_size: x-small
    max_capacity: 5
    port: 8080
    env: production
tags:
    cost-center: '123456'
    org: 'AWS'
```

## Arquivo de modelo do CloudFormation
<a name="git-sync-concepts-terms-template-file"></a>

Um arquivo de modelo contém uma declaração dos recursos da AWS que compõem uma pilha do CloudFormation. Com o Git Sync, o arquivo de modelo é armazenado no repositório Git e referenciado pelo arquivo de implantação da pilha. É possível gerenciar a pilha ao editar o arquivo de modelo e ao confirmar as alterações para o repositório.

Para obter mais informações, consulte [Trabalhar com modelos do CloudFormation](template-guide.md).

## Repositório de definição de modelo
<a name="git-sync-concepts-terms-template-definition-repository"></a>

O repositório de definição de modelo corresponde ao repositório Git vinculado ao CloudFormation por meio do Git Sync. O repositório é monitorado quanto a alterações para o modelo do CloudFormation e para o arquivo de implantação da pilha. Quando você confirma as alterações para o arquivo, a pilha associada é atualizada automaticamente.

**Importante**  
Ao configurar o repositório de definição de modelo no console do Git Sync, selecione o *repositório* e a *ramificação* adequados da conexão do Git. O Git Sync monitora somente o repositório e a ramificação configurados em busca de alterações para o modelo do CloudFormation e para o arquivo de implantação da pilha.