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

Componentes do AWS Proton

Os componentes são um tipo de recurso do AWS Proton. Eles adicionam flexibilidade aos modelos de serviço. Os componentes fornecem às equipes da plataforma um mecanismo para ampliar os principais padrões de infraestrutura e definir salvaguardas que capacitam os desenvolvedores a gerenciar aspectos de sua infraestrutura de aplicativos.

No AWS Proton, os administradores definem a infraestrutura padrão que é usada em equipes de desenvolvimento e aplicativos. No entanto, as equipes de desenvolvimento podem precisar incluir recursos adicionais para seus casos de uso específicos, como filas do Amazon Simple Queue Service (Amazon SQS) ou tabelas do Amazon DynamoDB. Esses recursos específicos do aplicativo podem mudar com frequência, especialmente durante o desenvolvimento inicial do aplicativo. Manter essas mudanças frequentes nos modelos criados pelo administrador pode ser difícil de gerenciar e escalar — os administradores precisariam manter muitos outros modelos sem o real valor agregado do administrador. A alternativa — permitir que os desenvolvedores de aplicativos criem modelos para seus aplicativos — também não é ideal, pois retira a capacidade dos administradores de padronizar os principais componentes da arquitetura, como tarefas do AWS Fargate. É aqui que entram os componentes.

Com um componente, um desenvolvedor pode adicionar recursos suplementares ao aplicativo, além do que os administradores definiram nos modelos de ambiente e serviço. Em seguida, o desenvolvedor anexa o componente a uma instância de serviço. O AWS Proton provisiona recursos de infraestrutura definidos pelo componente da mesma forma que provisiona recursos para ambientes e instâncias de serviço.

Um componente pode ler as entradas da instância de serviço e fornecer saídas para a instância de serviço, para uma experiência totalmente integrada. Por exemplo, se um componente adiciona um bucket do Amazon Simple Storage Service (Amazon S3) bucket para uso por uma instância de serviço, o modelo de componente pode levar os nomes de instância do ambiente e do serviço em conta para nomear o bucket. Quando o AWS Proton renderiza o modelo de serviço para provisionar uma instância de serviço, a instância de serviço pode se referir ao bucket e usá-lo.

Os componentes aos quais o AWS Proton atualmente oferecem suporte são componentes definidos diretamente. Você passa o arquivo de infraestrutura como código (IaC) que define a infraestrutura do componente diretamente para a AWS Proton API ou o console. Isso é diferente de um ambiente ou serviço, em que você define o IaC em um pacote de modelo e registra o pacote como um recurso de modelo e, em seguida, usa um recurso de modelo para criar o ambiente ou serviço.

nota

Componentes definidos diretamente permitem que os desenvolvedores definam uma infraestrutura extra e a provisionem. O AWS Proton provisiona todos os componentes diretamente definidos em execução no mesmo ambiente usando o mesmo perfil do (IAM) do AWS Identity and Access Management.

Um administrador pode controlar o que os desenvolvedores podem fazer com os componentes de duas maneiras:

  • Fontes de componentes compatíveis – Um administrador pode permitir a anexação de componentes às instâncias de serviço com base em uma propriedade das versões do modelo de serviço do AWS Proton. Por padrão, os desenvolvedores não podem anexar componentes às instâncias de serviço.

    Para obter mais informações sobre essa propriedade, consulte o parâmetro supportedComponentSources da ação da API CreateServiceTemplateVersion na Referência da API do AWS Proton.

    nota

    Quando você usa a sincronização de modelos, o AWS Proton cria versões de modelo de serviço implicitamente ao confirmar alterações em um pacote de modelos de serviço em um repositório. Nesse caso, em vez de especificar as fontes de componentes compatíveis durante a criação da versão do modelo de serviço, você especifica essa propriedade em um arquivo associado a cada versão principal do modelo de serviço. Para obter mais informações, consulte Como sincronizar modelos de serviço.

  • Perfis de componentes – Um administrador pode atribuir um perfil de componente a um ambiente. O AWS Proton assume esse perfil quando provisiona a infraestrutura definida por componente diretamente definido no ambiente. Portanto, o perfil do componente define a infraestrutura que os desenvolvedores podem adicionar usando componentes diretamente definidos no ambiente. Na ausência do perfil de componente, os desenvolvedores não podem criar componentes diretamente definidos no ambiente.

    Para obter mais informações sobre a atribuição de um perfil de componente, consulte o parâmetro ComponentRolearn da ação da API CreateEnvironment na Referência da API do AWS Proton.

    nota

    Os perfis dos componentes não são usados em ambientes do Provisionamento autogerenciado.

Como os componentes se comparam a outros recursos do AWS Proton?

De muitas maneiras, os componentes são semelhantes a outros recursos do AWS Proton. Sua infraestrutura é definida em um arquivo de modelo IaC, criado no formato AWS CloudFormation YAML ou Terraform HCL. O AWS Proton pode provisionar a infraestrutura de componentes usando provisionamento gerenciado pelo AWS ou provisionamento autogerenciado.

No entanto, os componentes são diferentes de outros recursos do AWS Proton de algumas maneiras:

  • Estado desanexado – Os componentes são projetados para serem anexados às instâncias de serviço e para ampliar sua infraestrutura, mas também podem estar em um estado desanexado, no qual não estão conectados a nenhuma instância de serviço. Para obter mais informações sobre estados de componentes, consulte Status de componentes.

  • Sem esquema — Os componentes não têm um esquema associado, como os pacotes de modelos. As entradas dos componentes são definidas por um serviço. Um componente pode consumir entradas quando está conectado a uma instância de serviço.

  • Sem componentes gerenciados pelo cliente – O AWS Proton sempre provisiona a infraestrutura de componentes para você. Não há uma versão dos componentes para trazer seus próprios recursos. Para obter mais informações sobre ambientes gerenciados pelo cliente, consulte Criar um ambiente

  • Sem recurso de modelo – Componentes diretamente definidos não têm um recurso de modelo associado semelhante aos modelos de ambiente e serviço. Você fornece um arquivo de modelo do IaC diretamente para o componente. Da mesma forma, você fornece diretamente um manifesto que define a linguagem do modelo e o mecanismo de renderização para provisionar a infraestrutura do componente. Você cria o arquivo de modelo e o manifesto de forma semelhante à criação de um pacote de modelos. No entanto, com componentes definidos diretamente, não há necessidade de armazenar arquivos IaC como pacotes em locais específicos, e você não cria um recurso de modelo no AWS Proton a partir de arquivos IaC.

  • Sem provisionamento baseado em Codebuild – Você não pode provisionar componentes diretamente definidos usando seu próprio script de provisionamento personalizado, conhecido como provisionamento baseado em Codebuild. Para obter mais informações, consulte Como funciona o provisionamento do CodeBuild.

Componentes no console do AWS Proton

Use o console do AWS Proton para criar, atualizar, visualizar e usar componentes do AWS Proton.

As páginas do console a seguir estão relacionadas aos componentes. Incluímos links diretos para páginas de console de nível superior.

  • Componentes — Visualize a lista de componentes em sua conta do AWS. Você pode criar novos componentes e atualizar ou excluir componentes existentes. Escolha um nome de componente na lista para ver sua página de detalhes.

    Listas semelhantes também existem nas páginas de Detalhes do ambiente e Detalhes da instância de serviço. Essas listas mostram somente os componentes associados ao recurso que está sendo visualizado. Ao criar um componente a partir de uma dessas listas, o AWS Proton pré-seleciona o ambiente associado na página Criar componente.

  • Detalhes do componente – Para visualizar a página de detalhes do componente, escolha um nome de componente na lista Componentes.

    Na página de detalhes, visualize os detalhes e o status do componente e atualize ou exclua o componente. Visualize e gerencie listas de saídas (por exemplo, ARNs de recursos provisionados), pilhas provisionadas do AWS CloudFormation e tags atribuídas.

  • Criar componente – Criar um componente. Insira o nome e a descrição do componente, escolha os recursos associados, especifique o arquivo IaC de origem do componente e atribua tags.

  • Atualizar componente – Para atualizar um componente, selecione o componente na lista Componentes e, no menu Ações, escolha Atualizar componente. Como alternativa, nas páginas de Detalhes do componente, escolha Atualizar.

    Você pode atualizar a maioria dos detalhes do componente. Você não pode atualizar o nome do componente. E você pode escolher se deseja ou não reimplantar o componente após uma atualização bem-sucedida.

  • Configurar ambiente – Ao criar ou atualizar um ambiente, você pode especificar um perfil de componente. Esse perfil controla a capacidade de executar componentes diretamente definidos no ambiente e fornece permissões para provisioná-los.

  • Criar nova versão do modelo de serviço – Ao criar uma versão do modelo de serviço, você pode especificar as Fontes de componentes compatíveis para a versão do modelo. Isso controla a capacidade de anexar componentes às instâncias de serviços com base nessa versão do modelo.

Componentes na AWS Proton API e no AWS CLI

Use a AWS Proton API ou a AWS CLI para criar, atualizar, visualizar e usar componentes do AWS Proton.

As ações de API a seguir gerenciam diretamente os recursos dos componentes do AWS Proton.

As seguintes ações de API de outros recursos do AWS Proton têm algumas funcionalidades relacionadas aos componentes.

  • CreateEnvironment, UpdateEnvironment – Use o componentRoleArn para especificar o nome do recurso da Amazon (ARN) do perfil de serviço do IAM que o AWS Proton usa quando provisiona componentes diretamente definidos nesse ambiente. Ela determina o escopo da infraestrutura que um componente diretamente definido pode provisionar.

  • CreateServiceTemplateVersion – Use o supportedComponentSources para especificar fontes de componentes compatíveis. Componentes com fontes compatíveis podem ser anexados às instâncias de serviço com base nessa versão do modelo de serviço.

Perguntas frequentes sobre o componente

Qual é o ciclo de vida de um componente?

Os componentes podem estar em um estado conectado ou desconectado. Eles são projetados para serem conectados a uma instância de serviço e aprimorar sua infraestrutura na maioria das vezes. Os componentes desanexados estão em um estado de transição que permite excluir um componente ou anexá-lo a outra instância de serviço de forma controlada e segura. Para obter mais informações, consulte Status de componentes.

Por que não consigo excluir meus componentes anexados?

Solução: para excluir um componente anexado, atualize o componente para desanexá-lo da instância de serviço, valide a estabilidade da instância de serviço e, em seguida, exclua o componente.

Por que isso é necessário? Os componentes conectados fornecem a infraestrutura extra de que seu aplicativo precisa para executar suas funções de runtime. A instância de serviço pode estar usando saídas de componentes para detectar e usar recursos dessa infraestrutura. Excluir o componente e, assim, remover seus recursos de infraestrutura, pode causar interrupções na instância de serviço conectada.

Como medida de segurança adicional, o AWS Proton exige que você atualize o componente e o desconecte de sua instância de serviço antes de excluí-lo. Em seguida, você pode validar sua instância de serviço para garantir que ela continue sendo implantada e funcionando adequadamente. Se você detectar um problema, poderá reconectar rapidamente o componente à instância de serviço e, em seguida, trabalhar para corrigir o problema. Quando tiver certeza de que sua instância de serviço está livre de qualquer dependência do componente, você pode excluir o componente com segurança.

Por que não consigo alterar diretamente a instância de serviço conectada a um componente?

Solução: para mudar a anexação, atualize o componente para desanexá-lo da instância de serviço, valide a estabilidade do componente e da instância de serviço e então anexe o componente à nova instância de serviço.

Por que isso é necessário? Um componente foi projetado para ser anexado a uma instância de serviço. Seu componente pode usar entradas de instância de serviço para nomeação e configuração de recursos de infraestrutura. Alterar a instância de serviço conectada pode causar interrupções no componente (além de uma possível interrupção na instância de serviço, conforme descrito nas perguntas frequentes anteriores, Por que não consigo excluir meus componentes conectados? ). Por exemplo, isso pode causar a renomeação e possivelmente até a substituição dos recursos definidos no modelo IaC do componente.

Como medida de segurança adicional, o AWS Proton exige que você atualize o componente e o desconecte de sua instância de serviço antes de anexá-lo a outra instância de serviço. Em seguida, você pode validar a estabilidade do componente e da instância de serviço antes de anexar o componente à nova instância de serviço.