

Aviso de fim do suporte: em 7 de outubro de 2026, AWS encerrará o suporte para AWS Proton. Depois de 7 de outubro de 2026, você não poderá mais acessar o AWS Proton console ou os AWS Proton recursos. Sua infraestrutura implantada permanecerá intacta. Para obter mais informações, consulte o Guia [AWS Proton de descontinuação e migração de serviços](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html).

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

# Encapsular arquivos de modelo para AWS Proton
<a name="ag-wrap-up"></a>

Após preparar seus arquivos de infraestrutura como código (IaC) do ambiente e do serviço e seus respectivos arquivos de esquema, você deve organizá-los em diretórios.. Você também deve criar um arquivo YAML de manifesto. O arquivo de manifesto lista os arquivos IaC em um diretório, o mecanismo de renderização e a linguagem de modelo usada para desenvolver o IaC nesse modelo.

**nota**  
Um arquivo de manifesto também pode ser usado independentemente dos pacotes de modelos, como uma entrada direta para componentes *definidos diretamente*. Nesse caso, ele sempre especifica um único arquivo de modelo IaC, para ambos CloudFormation e para o Terraform. Para obter mais informações sobre componentes, consulte [AWS Proton componentes](ag-components.md).

O arquivo de manifesto precisa seguir o formato e o conteúdo mostrados no exemplo a seguir.

**CloudFormation formato de arquivo de manifesto:**

Com CloudFormation, você lista um único arquivo.

```
infrastructure:
  templates:
    - file: "cloudformation.yaml"
      rendering_engine: jinja
      template_language: cloudformation
```

**Formato de arquivo de manifesto do Terraform:**

Com o terraform, você pode listar explicitamente um único arquivo ou usar o caractere curinga `*` para listar cada um dos arquivos em um diretório.

**nota**  
O caractere curinga inclui apenas arquivos cujos nomes terminam em `.tf`. Outros arquivos são ignorados.

```
infrastructure:
  templates:
    - file: "*"
      rendering_engine: hcl
      template_language: terraform
```

**CodeBuildformato de arquivo de manifesto de provisionamento baseado em:**

Com o provisionamento CodeBuild baseado, você especifica os comandos shell de provisionamento e desprovisionamento.

**nota**  
Além do manifesto, seu pacote deve incluir todos os arquivos dos quais seus comandos dependam.

O exemplo de manifesto a seguir usa provisionamento CodeBuild baseado para *provisionar (implantar*) e desprovisionar (*destruir*) recursos usando o AWS Cloud Development Kit (AWS CDK) ().AWS CDK O pacote de modelos também deve incluir o código CDK.

Durante o provisionamento, o AWS Proton cria um arquivo de entrada com valores para os parâmetros de entrada que você definiu no esquema do modelo com o nome `proton-input.json`.

```
infrastructure:
  templates:
    - rendering_engine: codebuild
      settings:
        image: aws/codebuild/amazonlinux2-x86_64-standard:4.0
        runtimes:
          nodejs: 16
        provision:
          - npm install
          - npm run build
          - npm run cdk bootstrap
          - npm run cdk deploy -- --require-approval never --outputs-file proton-outputs.json
          - jq 'to_entries | map_values(.value) | add | to_entries | map({key:.key, valueString:.value})' < proton-outputs.json > outputs.json
          - aws proton notify-resource-deployment-status-change --resource-arn $RESOURCE_ARN --status IN_PROGRESS --outputs file://./outputs.json
        deprovision:
          - npm install
          - npm run build
          - npm run cdk destroy
        project_properties:
          VpcConfig:
            VpcId: "{{ environment.inputs.codebuild_vpc_id }}"
            Subnets: "{{ environment.inputs.codebuild_subnets }}"
            SecurityGroupIds: "{{ environment.inputs.codebuild_security_groups }}"
```

[Depois de configurar os diretórios e os arquivos de manifesto para seu ambiente ou pacote de modelos de serviços, você compacta os diretórios em uma bola tar e os carrega em um bucket do Amazon Simple Storage Service (Amazon S3), AWS Proton onde pode recuperá-los, ou em um repositório Git de sincronização de modelos.](ag-template-sync-configs.md)

Ao criar uma versão secundária de um ambiente ou modelo de serviço com o qual você se registrou AWS Proton, você fornece o caminho para seu ambiente ou pacote de modelos de serviço tar ball que está localizado em seu bucket do S3. AWS Proton salva com a nova versão secundária do modelo. Você pode selecionar a nova versão secundária do modelo para criar ou atualizar ambientes ou serviços AWS Proton.

## Conclusão do pacote de modelos de ambiente
<a name="environment-wrap-up"></a>

Há dois tipos de pacotes de modelos de ambiente para AWS Proton os quais você cria.
+ Para criar um pacote de modelo de ambiente para um modelo de ambiente *padrão*, organize o esquema, os arquivos de infraestrutura como código (IaC) e o arquivo de manifesto em diretórios, conforme mostrado na estrutura de diretórios do pacote de modelos de ambiente a seguir.
+ Para criar um pacote de modelos de ambiente para um modelo de ambiente *gerenciado pelo cliente*, forneça somente o arquivo e o diretório do esquema. *Não* inclua o diretório e os arquivos da infraestrutura. AWS Proton gerará um erro se o diretório e os arquivos da infraestrutura estiverem incluídos.

Para obter mais informações, consulte [Registre e publique modelos](template-create.md).

CloudFormation estrutura de diretório do pacote do modelo de ambiente:

```
 /schema
   schema.yaml
 /infrastructure
   manifest.yaml
   cloudformation.yaml
```

Estrutura de diretórios do pacote do modelo de ambiente Terraform:

```
 /schema
   schema.yaml
 /infrastructure
   manifest.yaml
   environment.tf
```

## Conclusão do pacote de modelos de serviços
<a name="service-wrap-up"></a>

Para criar um pacote de modelo de serviço, você deve organizar o esquema, os arquivos de infraestrutura como código (IaC) e os arquivos de manifesto em diretórios, conforme mostrado no exemplo da estrutura de diretórios do pacote de modelos de serviços.

Se você *não* incluir um pipeline de serviço em seu pacote de modelos, *não* inclua o diretório e os arquivos do pipeline e defina `"pipelineProvisioning": "CUSTOMER_MANAGED"` ao criar o modelo de serviço que será associado a esse pacote de modelos.

**nota**  
Não é possível modificar o `pipelineProvisioning` após o modelo de serviço ser criado.

Para obter mais informações, consulte [Registre e publique modelos](template-create.md).

CloudFormation estrutura de diretórios do pacote de modelos de serviços:

```
 /schema
   schema.yaml
 /instance_infrastructure
   manifest.yaml
   cloudformation.yaml
 /pipeline_infrastructure
   manifest.yaml
   cloudformation.yaml
```

Estrutura de diretórios do pacote do modelo de serviço Terraform:

```
 /schema
   schema.yaml
 /instance_infrastructure
   manifest.yaml
   instance.tf
 /pipeline_infrastructure
   manifest.yaml
   pipeline.tf
```