Criar uma configuração de sincronização de modelos - 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 uma configuração de sincronização de modelos

Saiba como criar uma configuração de sincronização de modelos com AWS Proton o.

Criar os pré-requisitos de uma configuração de sincronização de modelos:
O link do repositório consiste no seguinte:
  • Uma CodeConnections conexão que dá AWS Proton permissão para acessar seu repositório e assinar suas notificações.

  • Um perfil vinculado a serviço. Ao vincular o repositório, o perfil vinculado ao serviço será criado para você.

Antes de criar sua primeira configuração de sincronização de modelos, envie um pacote de modelos para seu repositório, conforme mostrado no layout de diretório a seguir.

/templates/ # subdirectory (optional) /templates/my-env-template/ # template name /templates/my-env-template/v1/ # template version /templates/my-env-template/v1/infrastructure/ # template bundle /templates/my-env-template/v1/schema/

Depois de criar sua primeira configuração de sincronização de modelos, novas versões de modelo são criadas automaticamente quando você envia um commit que adiciona um pacote de modelos atualizado em uma nova versão (por exemplo, em /my-env-template/v2/).

/templates/ # subdirectory (optional) /templates/my-env-template/ # template name /templates/my-env-template/v1/ # template version /templates/my-env-template/v1/infrastructure/ # template bundle /templates/my-env-template/v1/schema/ /templates/my-env-template/v2/ /templates/my-env-template/v2/infrastructure/ /templates/my-env-template/v2/schema/

Você pode incluir novas versões do pacote de modelos para um ou mais modelos configurados para sincronização em um único commit. AWS Proton cria uma nova versão de modelo para cada nova versão do pacote de modelos que foi incluída no commit.

Depois de criar a configuração de sincronização do modelo, você ainda pode criar manualmente novas versões do modelo no console ou com o AWS CLI fazendo o upload de pacotes de modelos de um bucket do S3. A sincronização de modelos só funciona em uma direção: do seu repositório para o. AWS Proton As versões do modelo criadas manualmente não são sincronizadas.

Depois de definir uma configuração de sincronização de modelos, AWS Proton escuta as alterações no seu repositório. Sempre que uma alteração é enviada, ela procura por qualquer diretório que tenha o mesmo nome do seu modelo. Em seguida, ele procura dentro desse diretório por quaisquer diretórios que se pareçam com as versões principais. AWS Proton registra o pacote de modelos na versão principal do modelo correspondente. As novas versões estão sempre no estado de DRAFT. Você pode publicar as novas versões com o console ou AWS CLI.

Por exemplo, suponha que você tenha um modelo chamado my-env-template configurado para sincronizar a partir do my-repo/templates em uma ramificação main com o layout a seguir.

/code /code/service.go README.md /templates/ /templates/my-env-template/ /templates/my-env-template/v1/ /templates/my-env-template/v1/infrastructure/ /templates/my-env-template/v1/schema/ /templates/my-env-template/v2/ /templates/my-env-template/v2/infrastructure/ /templates/my-env-template/v2/schema/

AWS Proton sincroniza o conteúdo de /templates/my-env-template/v1/ para my-env-template:1 e o conteúdo de /templates/my-env-template/v2/ paramy-env-template:2. Se eles ainda não existirem, ele cria essas versões principais.

AWS Proton encontrou o primeiro diretório que correspondia ao nome do modelo. Você pode limitar as AWS Proton pesquisas de diretórios especificando um subdirectoryPath ao criar ou editar uma configuração de sincronização de modelo. Por exemplo, é possível especificar /production-templates/ para o subdirectoryPath.

Você pode criar um modelo de configuração de sincronização utilizando o console ou o CLI.

AWS Management Console
Criar um modelo e um um modelo de configuração de sincronização utilizando o console.
  1. No console do AWS Proton, escolha Modelos de ambiente.

  2. Selecione Criar modelo de ambiente.

  3. Na página Criar modelo de ambiente, na seção Opções de modelo, escolha Criar um modelo para provisionar novos ambientes.

  4. Na seção Fonte do pacote de modelos, escolha Sincronizar modelos do Git.

  5. Na seção Repositório do código-fonte:

    1. Para Repositório, selecione o repositório vinculado que contém seu pacote de modelos.

    2. Para Ramificação, selecione a ramificação do repositório de onde sincronizar.

    3. (Opcional) Para Diretório pacotes de modelos, insira o nome de um diretório para analisar a pesquisa do pacote de modelo.

  6. Na seção Detalhes do modelo.

    1. Insira um nome de modelo.

    2. (Opcional) Insira um Nome para exibição do modelo.

    3. (Opcional) Insira uma Descrição de modelo para o modelo de ambiente.

  7. (Opcional) Marque a caixa de seleção Personalizar configurações de criptografia (avançado) na seção Configurações de criptografia para fornecer sua própria chave de criptografia.

  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 Criar modelo de ambiente.

    Agora você está em uma nova página que exibe o status e os detalhes do seu novo modelo de ambiente. Esses detalhes incluem uma lista de tags AWS gerenciadas e gerenciadas pelo cliente. AWS Proton gera automaticamente tags AWS gerenciadas para você quando você cria AWS Proton recursos. Para ter mais informações, consulte Recursos do AWS Proton e marcação.

  10. Na página de detalhes do modelo, escolha a guia Sincronizar para ver os dados detalhados da configuração da sincronização do modelo.

  11. Escolha a guia Versões do modelo para visualizar as versões do modelo com detalhes do status.

  12. O status de um novo status de modelo de ambiente começa no estado Rascunho. Você e outras pessoas com permissões de proton:CreateEnvironment podem visualizá-lo e acessá-lo. Siga a próxima etapa para disponibilizar o modelo para outras pessoas.

  13. Na seção Versões do modelo, escolha o botão de rádio à esquerda da versão secundária do modelo que você acabou de criar (1.0). Como alternativa, você pode escolher Publicar no alerta de informações e pular a próxima etapa.

  14. Na seção Versões do modelo, escolha Publicar.

  15. O status do modelo muda para Publicado. É a versão mais recente e recomendada do modelo.

  16. No painel de navegação, selecione Modelos de ambiente para ver uma lista dos modelos e detalhes do seu ambiente.

O procedimento para criar um modelo de serviço e a configuração de sincronização de modelos é semelhante.

AWS CLI
Criar um modelo e um um modelo de configuração de sincronização utilizando o AWS CLI.
  1. Criar um modelo. Neste exemplo, um modelo de ambiente é criado.

    Execute o seguinte comando .

    $ aws proton create-environment-template \ --name "env-template"

    A resposta é a que segue.

    { "environmentTemplate": { "arn": "arn:aws:proton:us-east-1:123456789012:environment-template/env-template", "createdAt": "2021-11-07T23:32:43.045000+00:00", "displayName": "env-template", "lastModifiedAt": "2021-11-07T23:32:43.045000+00:00", "name": "env-template", "status": "DRAFT", "templateName": "env-template" } }
  2. Crie sua configuração de sincronização de modelos AWS CLI fornecendo o seguinte:
    • O modelo com o qual deseja sincronizar. Depois de criar a configuração de sincronização do modelo, você ainda pode criar novas versões dele manualmente no console ou com o AWS CLI.

    • O nome do modelo.

    • O tipo de modelo.

    • O repositório vinculado do qual deseja sincronizar.

    • O provedor do repositório vinculado.

    • A ramificação em que o pacote de modelos está localizado.

    • (Opcional) O caminho para o diretório que contém o pacote de modelo. Por padrão, AWS Proton procura o primeiro diretório que corresponda ao nome do seu modelo.

    Execute o seguinte comando .

    $ aws proton create-template-sync-config \ --template-name "env-template" \ --template-type "ENVIRONMENT" \ --repository-name "myrepos/templates" \ --repository-provider "GITHUB" \ --branch "main" \ --subdirectory "env-template/"

    A resposta é a que segue.

    { "templateSyncConfigDetails": { "branch": "main", "repositoryName": "myrepos/templates", "repositoryProvider": "GITHUB", "subdirectory": "templates", "templateName": "env-template", "templateType": "ENVIRONMENT" } }
  3. Para publicar sua versão de modelo, consulte Registre e publique modelos.

Como sincronizar modelos de serviço

Os exemplos anteriores mostram como sincronizar modelos de ambiente. Os modelos de serviço são semelhantes. Para sincronizar modelos de serviço, você adiciona um arquivo adicional chamado .template-registration.yaml a cada diretório de versão principal em seu pacote de modelos. Esse arquivo contém detalhes adicionais AWS Proton necessários ao criar uma versão de modelo de serviço para você após uma confirmação. Ao criar explicitamente uma versão de modelo de serviço usando o AWS Proton console ou a API, você fornece esses detalhes como entradas, e esse arquivo substitui essas entradas para sincronização de modelos.

./templates/ # subdirectory (optional) /templates/my-svc-template/ # service template name /templates/my-svc-template/v1/ # service template version /templates/my-svc-template/v1/.template-registration.yaml # service template version properties /templates/my-svc-template/v1/instance_infrastructure/ # template bundle /templates/my-svc-template/v1/schema/

O arquivo .template-registration.yaml contém os detalhes a seguir.

  • Ambientes compatíveis [obrigatório]: Ambientes baseados nesses modelos de ambiente e versões principais são compatíveis com serviços baseados nessa versão de modelo de serviço.

  • Fontes de componentes compatíveis [opcional]: Componentes que usam essas fontes são compatíveis com os serviços baseados nessa versão de modelo de serviço. Se não for especificado, os componentes não poderão ser anexados a esses serviços. Para obter mais informações sobre componentes, consulte Componentes do AWS Proton.

A sintaxe YAML do arquivo é a seguinte:

compatible_environments: - env-templ-name:major-version - ... supported_component_sources: - DIRECTLY_DEFINED

Especifique uma ou mais combinações de modelo de ambiente/versão principal. A especificação supported_component_sources é opcional e o único valor suportado é DIRECTLY_DEFINED.

exemplo .template-registration.yaml

Neste exemplo, a versão do modelo de serviço é compatível com as versões principais 1 e 2 do modelo de ambiente my-env-template. Também é compatível com as versões principais 1 e 3 do modelo de ambiente another-env-template. O arquivo não especifica o supported_component_sources; portanto, os componentes não podem ser anexados aos serviços com base nessa versão do modelo de serviço.

compatible_environments: - my-env-template:1 - my-env-template:2 - another-env-template:1 - another-env-template:3
nota

Anteriormente, AWS Proton definiu um arquivo diferente.compatible-envs,, para especificar ambientes compatíveis. AWS Proton ainda suporta esse arquivo e seu formato para compatibilidade com versões anteriores. Não recomendamos mais usá-lo, porque ele não é extensível e não oferece suporte a recursos mais novos, como componentes.