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 AWS Proton ambientes.

Você pode criar um AWS Proton ambiente de duas maneiras:
  • Crie, gerencie e provisione um ambiente padrão usando um modelo de ambiente padrão. AWS Proton provisiona a infraestrutura para seu ambiente.

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

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

    Esse método só oferece suporte a modelos de código de CloudFormation infraestrutura (IaC).

  • AWS provisionamento gerenciado 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. 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ó oferece suporte a modelos de CloudFormation IaC.

  • Provisionamento autogerenciado — 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.

  • CodeBuild provisionamento — AWS Proton usa AWS CodeBuild para executar comandos de shell fornecidos por você. Seus comandos podem ler as entradas que AWS Proton fornecem 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 CodeBuild provisionamento, você pode incluir um código que usa o AWS Cloud Development Kit (AWS CDK) para provisionar AWS recursos e um manifesto que instala CDK e executa seu código. CDK

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

    nota

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

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

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

Para 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 AWS CLI para criar e provisionar um ambiente em uma única conta. O provisionamento é gerenciado por. 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 pela 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 de 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 ter 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 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 Criar.

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

  15. No painel de navegação, escolha 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 a função do AWS Proton serviçoARN, o caminho para o arquivo de especificação, o nome do ambiente, o modelo do ambienteARN, as versões principais e secundárias 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/AWS ProtonServiceRole" \ --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 AWS tags gerenciadas pelo cliente, conforme mostrado no exemplo de comando a seguir. AWS Proton gera automaticamente tags AWS gerenciadas para você. Você também pode modificar e criar etiquetas gerenciadas pelo cliente usando o AWS CLI. Para ter 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 AWS CLI crie 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 ouCLI, conclua as etapas a seguir.
  1. Identifique-os Conta da AWS IDs para a conta de gerenciamento e ambiente e copie-os para uso posterior.

  2. Na conta do ambiente, crie uma função AWS Proton de serviço com permissões mínimas para o ambiente criar. Para ter 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 o ID da conta de gerenciamento e um nome de ambiente para seu AWS Proton ambiente. 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 AWS Proton console.

    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 PENDING paraCONNECTED.

  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 pela AWS .

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

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

    7. Escolha 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 criar 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, 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 AWS serviços; 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 ter mais informações, consulte AWS Proton infraestrutura como arquivos de código.

  • Depois de criar o ambiente, AWS Proton espera receber notificações assíncronas sobre o status do provisionamento da sua infraestrutura. Seu código de provisionamento deve usar o AWS Proton NotifyResourceStateChange API para enviar essas notificações assíncronas para. 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 aprovisionamento AWS Proton, escolha Novo repositório, escolha um dos provedores de repositório e, em seguida, para CodeStarconexão, 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 CodeStar conexão. Em seguida, crie uma conexão e escolha o botão Atualizar ao lado do menu de CodeStar conexão. 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 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 AWS gerenciadas e as tags gerenciadas pelo cliente para seu ambiente.

  14. No painel de navegação, escolha 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 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. AWS Proton O exemplo a seguir notifica sobre AWS Proton um provisionamento bem-sucedido.

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