Criar um ambiente - 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á.

Criar um ambiente

Aprenda a criar ambientes do AWS Proton.

É possível instalar o ambiente do AWS Proton que deseja abrir, execute uma das seguintes ações:
  • Crie, gerencie e provisione um ambiente padrão usando um modelo de ambiente padrão. O AWS Proton provisiona a infraestrutura para seu ambiente.

  • Conecte o AWS Proton à infraestrutura gerenciada pelo cliente usando um modelo de ambiente gerenciado pelo cliente. Você provisiona seus próprios recursos compartilhados fora do AWS Proton e, em seguida, fornece saídas de provisionamento que o AWS Proton pode usar.

Você pode escolher uma das várias abordagens de provisionamento ao criar um ambiente.
  • Provisionamento gerenciado pelo AWS — Crie, gerencie e provisione um ambiente em uma única conta. O AWS Proton provisiona seu ambiente.

    Esse método só é compatível com modelos de código de infraestrutura (IaC) do CloudFormation.

  • Provisionamento gerenciado pelo AWS para outra conta — Em uma única conta de gerenciamento, crie e gerencie um ambiente provisionado em outra conta com conexões de conta de ambiente. O AWS Proton provisiona seu ambiente na outra conta. Para obter mais informações, consulte Criar um ambiente em uma conta e provisionar em outra conta e Conexões de conta de ambiente.

    Esse método só é compatível com modelos de IaC do CloudFormation.

  • Provisionamento autogerenciado — O AWS Proton envia pull requests de provisionamento para um repositório vinculado com sua própria infraestrutura de provisionamento.

    Esse método oferece suporte somente a modelos do Terraform IaC.

  • Provisionamento do CodeBuild – O AWS Proton usa o AWS CodeBuild para executar comandos de shell fornecidos por você. Seus comandos podem ler as entradas que o AWS Proton fornece e são responsáveis por provisionar ou desprovisionar a infraestrutura e gerar valores de saída. Um pacote de modelos para esse método inclui seus comandos em um arquivo de manifesto e quaisquer programas, scripts ou outros arquivos que esses comandos possam precisar.

    Como exemplo do uso do provisionamento do CodeBuild, você pode incluir um código que usa o AWS Cloud Development Kit (AWS CDK) para provisionar recursos do AWS e um manifesto que instala o CDK e executa seu código do CDK.

    Para obter mais informações, consulte CodeBuild pacote de modelos de provisionamento.

    nota

    Você pode usar o provisionamento do CodeBuild com ambientes e serviços. No momento, você não pode provisionar componentes dessa forma.

Com o provisionamento gerenciado pelo AWS (seja na mesma conta ou em outra conta), o AWS Proton faz chamadas diretas para provisionar seus recursos.

Com o provisionamento autogerenciado, o AWS Proton faz pull requests para fornecer arquivos IaC compilados que seu mecanismo de IaC usa para provisionar recursos.

Para obter mais informações, consulte Como o AWS Proton provisiona a infraestrutura, Pacotes de modelos e Requisitos de esquema para pacotes de modelos de ambiente.

Crie e provisione um ambiente padrão na mesma conta

Use o console ou o AWS CLI para criar e provisionar um ambiente em uma única conta. O provisionamento é gerenciado pelo AWS.

AWS Management Console
Use o console para criar e provisionar um ambiente em uma única conta.
  1. No console do AWS Proton, escolha Ambientes.

  2. Selecione Create environment (Criar ambiente).

  3. Na página Escolher um modelo de ambiente, selecione um modelo e escolha Configurar.

  4. Na página Configurar ambiente, na seção Provisionamento, escolha Provisionamento gerenciado pelo AWS.

  5. Na seção Conta de implantação, escolha Esta Conta da AWS.

  6. Na página Configurar ambiente, na seção Configurações do ambiente, insira um Nome de ambiente.

  7. (Opcional) Insira uma descrição do ambiente.

  8. Na seção Perfis de ambiente, selecione o perfil de serviço do AWS Proton que você criou como parte ea Configurando funções AWS Proton de serviço.

  9. (Opcional) Na seção Perfil do componente, selecione um perfil de serviço que permita que componentes diretamente definidos sejam executados no ambiente e defina o escopo dos recursos que eles podem provisionar. Para obter mais informações, consulte Componentes do AWS Proton.

  10. (Opcional) Na seção Tags, escolha Adicionar nova tag e insira uma chave e um valor para criar uma tag gerenciada pelo cliente.

  11. Escolha Next (Próximo).

  12. Na página Definir configurações personalizadas do ambiente, você deve inserir valores para os parâmetros required. Você pode inserir valores para os parâmetros optional ou usar os padrões quando fornecidos.

  13. Escolha Avançar e revise suas entradas.

  14. Escolha Create (Criar).

    Visualize os detalhes e o status do ambiente, bem como as tags gerenciadas pelo AWS e as tags gerenciadas pelo cliente para seu ambiente.

  15. No painel de navegação, escolha Environments (Ambientes).

    Uma nova página exibe uma lista de seus ambientes junto com o status e outros detalhes do ambiente.

AWS CLI

Use o AWS CLI para criar e provisionar um ambiente em uma única conta.

Para criar um ambiente, você especifica o ARN do perfil de serviço do AWS Proton, o caminho para o arquivo de especificação, o nome do ambiente, o ARN do modelo de ambiente, as versões principal e secundária e a descrição (opcional).

Os próximos exemplos mostram um arquivo de especificação formatado YAML que especifica valores para duas entradas definidas no arquivo de esquema do modelo de ambiente. Você pode usar o comando get-environment-template-minor-version para visualizar o esquema de modelo do ambiente.

proton: EnvironmentSpec spec: my_sample_input: "the first" my_other_sample_input: "the second"

Crie um ambiente executando o comando a seguir.

$ aws proton create-environment \ --name "MySimpleEnv" \ --template-name simple-env \ --template-major-version 1 \ --proton-service-role-arn "arn:aws:iam::123456789012:role/AWSProtonServiceRole" \ --spec "file://env-spec.yaml"

Resposta:

{ "environment": { "arn": "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv", "createdAt": "2020-11-11T23:03:05.405000+00:00", "deploymentStatus": "IN_PROGRESS", "lastDeploymentAttemptedAt": "2020-11-11T23:03:05.405000+00:00", "name": "MySimpleEnv", "protonServiceRoleArn": "arn:aws:iam::123456789012:role/ProtonServiceRole", "templateName": "simple-env" } }

Depois de criar um novo ambiente, você pode ver uma lista de tags gerenciadas pelo AWS e pelo cliente, conforme mostrado no exemplo de comando a seguir. O AWS Proton gera automaticamente tags gerenciadas pelo AWS para você. Você também pode modificar e criar etiquetas gerenciadas pelo cliente usando o AWS CLI. Para obter mais informações, consulte Recursos do AWS Proton e marcação.

Comando:

$ aws proton list-tags-for-resource \ --resource-arn "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv"

Criar um ambiente em uma conta e provisionar em outra conta

Use o console ou o AWS CLI para criar um ambiente padrão em uma conta de gerenciamento que provisione a infraestrutura do ambiente em outra conta. O provisionamento é gerenciado pelo AWS.

Antes de usar o console ou a CLI, conclua as seguintes etapas.
  1. Identifique as IDs de Conta da AWS da conta de gerenciamento e ambiente e copie-as para uso posterior.

  2. Na conta do ambiente, crie um perfil de serviço do AWS Proton com permissões mínimas para o ambiente criar. Para obter mais informações, consulte AWS Proton função de serviço para provisionamento usando AWS CloudFormation.

AWS Management Console
Use o console para um ambiente em uma conta e provisionar em outra.
  1. Na conta de ambiente, crie uma conexão de conta de ambiente e use-a para enviar uma solicitação de conexão com a conta de gerenciamento.
    1. No console do AWS Proton, escolha Conexões de conta de ambiente no painel de navegação.

    2. Na página Conexões da conta de ambiente, escolha Solicitar conexão.

      nota

      Verifique se a ID da conta listada no título da página de Conexão da conta de ambiente corresponde à sua ID de conta de ambiente pré-identificada.

    3. Na página Solicitação de conexão, na seção Perfil do ambiente, selecione Perfil de serviço existente e o nome do perfil de serviço que você criou para o ambiente.

    4. Na seção Conectar à conta de gerenciamento, insira a ID da conta de gerenciamento e um Nome de ambiente para seu ambiente do AWS Proton. Copie o nome para uso posterior.

    5. Escolha Solicitar conexão no canto inferior direito da página.

    6. Sua solicitação aparece como pendente na tabela de conexões de ambiente enviadas para contas de gerenciamento e um modal mostra como aceitar a solicitação da conta de gerenciamento.

  2. Na conta de gerenciamento, aceite uma solicitação para se conectar a partir da conta do ambiente.
    1. Faça login na sua conta de gerenciamento e escolha Conexões da conta de ambiente no console do AWS Proton.

    2. Na página Conexões da conta de ambiente, na tabela Solicitações de conexão de conta de ambiente, selecione a conexão da conta de ambiente com a ID da conta de ambiente que corresponde à sua ID de conta de ambiente pré-identificada.

      nota

      Verifique se a ID da conta listada no título da página de Conexão da conta de ambiente corresponde à sua ID de conta de gerenciamento pré-identificada.

    3. Escolha Accept (Aceitar). O status muda de PENDENTE para CONECTADO.

  3. Na conta de gerenciamento, crie um ambiente.
    1. No painel de navegação, escolha Modelos de ambiente.

    2. Na página Modelos de ambiente, escolha Criar modelo de ambiente.

    3. Na página Escolher um modelo de ambiente, escolha um modelo de ambiente.

    4. Na página Configurar ambiente, na seção Provisionamento, escolha Provisionamento gerenciado pelo AWS.

    5. Na seção Conta de implantação, escolha Outra conta do AWS;.

    6. Na seção Detalhes do ambiente, selecione a Conexão da conta do ambiente e o Nome do ambiente.

    7. Escolha Next (Próximo).

    8. Preencha os formulários e escolha Avançar até chegar à página Revisar e criar.

    9. Revise e escolha Criar ambiente.

AWS CLI

Use o AWS CLI para um ambiente em uma conta e provisionar em outra.

Na conta de ambiente, crie uma conexão de conta de ambiente e solicite a conexão executando o comando a seguir.

$ aws proton create-environment-account-connection \ --environment-name "simple-env-connected" \ --role-arn "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role" \ --management-account-id "111111111111"

Resposta:

{ "environmentAccountConnection": { "arn": "arn:aws:proton:region-id:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:13:50.847000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "PENDING" } }

Na conta de gerenciamento, aceite o pedido de conexão de conta de ambiente conexão executando o comando a seguir.

$ aws proton accept-environment-account-connection \ --id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

Resposta:

{ "environmentAccountConnection": { "arn": "arn:aws:proton:region-id:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:15:33.486000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "CONNECTED" } }

Visualize a conexão da sua conta de ambiente executando o comando a seguir.

$ aws proton get-environment-account-connection \ --id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

Resposta:

{ "environmentAccountConnection": { "arn": "arn:aws:proton:region-id:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:15:33.486000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "CONNECTED" } }

Na conta de gerenciamento, crie um ambiente executando o comando a seguir.

$ aws proton create-environment \ --name "simple-env-connected" \ --template-name simple-env-template \ --template-major-version "1" \ --template-minor-version "1" \ --spec "file://simple-env-template/specs/original.yaml" \ --environment-account-connection-id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

Resposta:

{ "environment": { "arn": "arn:aws:proton:region-id:111111111111:environment/simple-env-connected", "createdAt": "2021-04-28T23:02:57.944000+00:00", "deploymentStatus": "IN_PROGRESS", "environmentAccountConnectionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "lastDeploymentAttemptedAt": "2021-04-28T23:02:57.944000+00:00", "name": "simple-env-connected", "templateName": "simple-env-template" } }

Crie e provisione um ambiente usando o provisionamento autogerenciado

Quando você usa o provisionamento autogerenciado, o AWS Proton envia pull requests de provisionamento para um repositório vinculado com sua própria infraestrutura de provisionamento. As pull requests iniciam seu próprio fluxo de trabalho, que chama serviços do AWS, para provisionar a infraestrutura.

Considerações sobre provisionamento autogerenciado:
  • Antes de criar um ambiente, configure um diretório de recursos do repositório para provisionamento autogerenciado. Para obter mais informações, consulte AWS Proton infraestrutura como arquivos de código.

  • Depois de criar o ambiente, o AWS Proton espera receber notificações assíncronas sobre o status do provisionamento da sua infraestrutura. Seu código de provisionamento deve usar o NotifyResourceStateChange do AWS Proton API para enviar essas notificações assíncronas para o AWS Proton.

Você pode usar o provisionamento autogerenciado no console ou com a AWS CLI. Os exemplos a seguir mostram como você pode usar o provisionamento autogerenciado com o Terraform.

AWS Management Console
Use o console para criar um ambiente do Terraform usando provisionamento autogerenciado.
  1. No console do AWS Proton, escolha Ambientes.

  2. Selecione Create environment (Criar ambiente).

  3. Na página Escolher um modelo de ambiente, selecione um modelo do Terraform e escolha Configurar.

  4. Na página Configurar ambiente, na seção Provisionamento, escolha Provisionamento autogerenciado.

  5. Na seção Detalhes do repositório de provisionamento:

    1. Se você ainda não vinculou seu repositório de provisionamento ao AWS Proton, escolha Novo repositório, escolha um dos provedores de repositório e, em seguida, para Conexão com o CodeStar, escolha uma de suas conexões.

      nota

      Se você ainda não tiver uma conexão com a conta do provedor de repositório relevante, escolha Adicionar uma nova conexão CodeStar. Em seguida, crie uma conexão e escolha o botão Atualizar ao lado do menu de Conexão do CodeStar. Agora você deve ser capaz de escolher sua nova conexão no menu.

      Se você já vinculou seu repositório ao AWS Proton, escolha Repositório existente.

    2. Em Nome do repositório, escolha um repositório. O menu suspenso mostra os repositórios vinculados para o Repositório existente ou a lista de repositórios na conta do provedor para o Novo repositório.

    3. Em Nome da ramificação, escolha uma das ramificações do repositório.

  6. Na seção Configurações do ambiente, insira um Nome de ambiente.

  7. (Opcional) Insira uma descrição do ambiente.

  8. (Opcional) Na seção Tags, escolha Adicionar nova tag e insira uma chave e um valor para criar uma tag gerenciada pelo cliente.

  9. Escolha Next (Próximo).

  10. Na página Definir configurações personalizadas do ambiente, você deve inserir valores para os parâmetros required. Você pode inserir valores para os parâmetros optional ou usar os padrões quando fornecidos.

  11. Escolha Avançar e revise suas entradas.

  12. Escolha Criar para enviar uma pull request.

    • Se você aprovar a pull request, a implantação está em andamento.

    • Se você rejeitar a pull request, a criação do ambiente será cancelada.

    • Se o tempo limite do pull request expirar, a criação do ambiente não será concluída.

  13. Visualize os detalhes e o status do ambiente, bem como as tags gerenciadas pelo AWS e as tags gerenciadas pelo cliente para seu ambiente.

  14. No painel de navegação, escolha Environments (Ambientes).

    Uma nova página exibe uma lista de seus ambientes junto com o status e outros detalhes do ambiente.

AWS CLI

Ao criar um ambiente usando o provisionamento autogerenciado, você adiciona o parâmetro provisioningRepository e omite os parâmetros ProtonServiceRoleArn e environmentAccountConnectionId.

Use o AWS CLI para criar um ambiente do Terraform com provisionamento autogerenciado.
  1. Crie um ambiente e envie uma pull request ao repositório para análise e aprovação.

    Os próximos exemplos mostram um arquivo de especificação formatado pelo YAML que define os valores para duas entradas com base no arquivo de esquema do modelo de ambiente. Você pode usar o comando get-environment-template-minor-version para visualizar o esquema de modelo do ambiente.

    Especificação:

    proton: EnvironmentSpec spec: ssm_parameter_value: "test"

    Crie um ambiente executando o comando a seguir.

    $ aws proton create-environment \ --name "pr-environment" \ --template-name "pr-env-template" \ --template-major-version "1" \ --provisioning-repository="branch=main,name=myrepos/env-repo,provider=GITHUB" \ --spec "file://env-spec.yaml"

    Response:>

    { "environment": { "arn": "arn:aws:proton:region-id:123456789012:environment/pr-environment", "createdAt": "2021-11-18T17:06:58.679000+00:00", "deploymentStatus": "IN_PROGRESS", "lastDeploymentAttemptedAt": "2021-11-18T17:06:58.679000+00:00", "name": "pr-environment", "provisioningRepository": { "arn": "arn:aws:proton:region-id:123456789012:repository/github:myrepos/env-repo", "branch": "main", "name": "myrepos/env-repo", "provider": "GITHUB" }, "templateName": "pr-env-template" }
  2. Revisar a solicitação

    • Se você aprovar a solicitação, o provisionamento está em andamento.

    • Se você rejeitar a solicitação, a criação do ambiente será cancelada.

    • Se o tempo limite do pull request expirar, a criação do ambiente não será concluída.

  3. Forneça de forma assíncrona o status de provisionamento para o AWS Proton. O exemplo a seguir notifica o AWS Proton sobre um provisionamento bem-sucedido.

    $ aws proton notify-resource-deployment-status-change \ --resource-arn "arn:aws:proton:region-id:123456789012:environment/pr-environment" \ --status "SUCCEEDED"