Encapsular arquivos de modelo para AWS Proton - AWS Proton

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

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 Componentes do AWS Proton.

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

CloudFormation formato de arquivo 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.

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 o seu ambiente ou pacote de modelos de serviço tar ball que está localizado no 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

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 ter mais informações, consulte Registre e publique modelos.

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

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 ter mais informações, consulte Registre e publique modelos.

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