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á.
Automatize a implantação de Cadeia de Suprimentos AWS data lakes em uma configuração de vários repositórios usando GitHub Actions, Artifactory e Terraform
Keshav Ganesh, Amazon Web Services
Resumo
Esse padrão fornece uma abordagem automatizada para implantar e gerenciar lagos de Cadeia de Suprimentos AWS dados usando uma integração contínua de vários repositórios e uma implantação contínua (recursos). CI/CD) pipeline. It demonstrates two deployment methods: automated deployment using GitHub Actions workflows, or manual deployment using Terraform directly. Both approaches use Terraform for infrastructure as code (IaC), with the automated method adding GitHub Actions and JFrog Artifactory for enhanced CI/CD
A solução utiliza Cadeia de Suprimentos AWS o Amazon Simple Storage Service (Amazon S3) para estabelecer a infraestrutura do data lake, enquanto usa qualquer um dos métodos de implantação para automatizar a configuração e a criação de recursos. AWS Lambda Essa automação elimina as etapas de configuração manual e garante implantações consistentes em todos os ambientes. Além disso, Cadeia de Suprimentos AWS elimina a necessidade de uma profunda experiência em extração, transformação e carregamento (ETL) e pode fornecer informações e análises baseadas no Amazon Quick Sight.
Ao implementar esse padrão, as organizações podem reduzir o tempo de implantação, manter a infraestrutura como código e gerenciar os data lakes da cadeia de suprimentos por meio de um processo automatizado e controlado por versão. A abordagem de vários repositórios fornece controle de acesso refinado e oferece suporte à implantação independente de diferentes componentes. As equipes podem escolher o método de implantação mais adequado às ferramentas e aos processos existentes.
Pré-requisitos e limitações
Pré-requisitos
Certifique-se de que o seguinte esteja instalado em sua máquina local:
AWS Command Line Interface (AWS CLI) versão 2
Terraform
v1.12 ou posterior
Certifique-se de que o seguinte esteja em vigor antes da implantação:
Um ativo Conta da AWS.
Uma nuvem privada virtual (VPC) com duas sub-redes privadas na área de sua Conta da AWS escolha. Região da AWS
Permissões suficientes para a função AWS Identity and Access Management (IAM) usada para implantação nos seguintes serviços:
Cadeia de Suprimentos AWS — O Full Access é o preferido para implantar seus componentes, como conjuntos de dados e fluxos de integração, além de acessá-los a partir do. Console de gerenciamento da AWS
Amazon CloudWatch Logs — Para criar e gerenciar grupos de CloudWatch registros.
Amazon Elastic Compute Cloud (Amazon EC2) — Para grupos de segurança do Amazon EC2 e endpoints do Amazon Virtual Private Cloud (Amazon VPC).
Amazon EventBridge — Para uso por Cadeia de Suprimentos AWS.
IAM — Para criar funções AWS Lambda de serviço.
AWS Key Management Service (AWS KMS) — Para acessar o AWS KMS keys usado para o bucket de artefatos do Amazon S3 e o bucket de armazenamento do Amazon S3. Cadeia de Suprimentos AWS
AWS Lambda — Para criar as funções Lambda que implantam os Cadeia de Suprimentos AWS componentes.
Amazon S3 — Para acessar o bucket de artefatos do Amazon S3, o bucket de registro de acesso ao servidor e o bucket de armazenamento. Cadeia de Suprimentos AWS Se você estiver usando a implantação manual, as permissões para o bucket de artefatos do Amazon S3 Terraform também são necessárias.
Amazon VPC — Para criar e gerenciar uma VPC.
Se você preferir usar fluxos de trabalho do GitHub Actions para implantação, faça o seguinte:
Configure o OpenID Connect (OIDC)
para a função do IAM com as permissões mencionadas anteriormente. Crie uma função do IAM com permissões semelhantes para acessar Console de gerenciamento da AWS o. Para obter mais informações, consulte Criar um papel para dar permissões a um usuário do IAM na documentação do IAM.
Se você preferir fazer uma implantação manual, faça o seguinte:
Crie um usuário do IAM para assumir a função do IAM com as permissões mencionadas anteriormente. Para obter mais informações, consulte Criar um papel para dar permissões a um usuário do IAM na documentação do IAM.
Assuma a função em seu terminal local.
Se você preferir usar fluxos de trabalho do GitHub Actions para implantação, configure o seguinte:
Uma conta JFrog Artifactory
para obter o nome do host, o nome de usuário de login e o token de acesso de login. Uma chave de JFrog projeto e um repositório
para armazenar artefatos.
Limitações
A Cadeia de Suprimentos AWS instância não oferece suporte a técnicas complexas de transformação de dados.
Cadeia de Suprimentos AWS é mais adequado para domínios da cadeia de suprimentos porque fornece análises e insights integrados. Para qualquer outro domínio, Cadeia de Suprimentos AWS pode ser usado como um armazenamento de dados como parte da arquitetura do data lake.
As funções Lambda usadas nessa solução talvez precisem ser aprimoradas para lidar com novas tentativas de API e gerenciamento de memória em uma implantação em escala de produção.
Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte AWS Services by Region
. Para endpoints específicos, consulte Service endpoints and quotas e clique no link correspondente ao serviço desejado.
Arquitetura
Você pode implantar essa solução usando fluxos de trabalho automatizados de GitHub ações ou manualmente usando o Terraform.
Implantação automatizada com GitHub ações
O diagrama a seguir mostra a opção de implantação automatizada que usa fluxos de trabalho de GitHub ações. JFrog Artifactory é usado para gerenciamento de artefatos. Ele armazena informações e saídas de recursos para uso em uma implantação de vários repositórios.

Implantação manual com o Terraform
O diagrama a seguir mostra a opção de implantação manual por meio do Terraform. Em vez de JFrog Artifactory, o Amazon S3 é usado para gerenciamento de artefatos.

Fluxo de trabalho de implantação
O diagrama mostra o seguinte fluxo de trabalho:
Implante conjuntos Cadeia de Suprimentos AWS de dados de serviços, infraestrutura e bancos de dados usando um dos seguintes métodos de implantação:
Implantação automatizada — usa fluxos de trabalho do GitHub Actions para orquestrar todas as etapas de implantação e usa o JFrog Artifactory para gerenciamento de artefatos.
Implantação manual — executa comandos do Terraform diretamente para cada etapa de implantação e usa o Amazon S3 para gerenciamento de artefatos.
Crie os AWS recursos de suporte necessários para a operação Cadeia de Suprimentos AWS do serviço:
Endpoints e grupos de segurança da Amazon VPC
AWS KMS keys
CloudWatch Grupos de registros
Crie e implante os seguintes recursos de infraestrutura:
Funções Lambda que gerenciam (criam, atualizam e excluem) a instância de Cadeia de Suprimentos AWS serviço, namespaces e conjuntos de dados.
Cadeia de Suprimentos AWS preparação do bucket Amazon S3 para ingestão de dados
Implante a função Lambda que gerencia os fluxos de integração entre o bucket de preparação e os conjuntos de dados. Cadeia de Suprimentos AWS Após a conclusão da implantação, as etapas restantes do fluxo de trabalho gerenciam a ingestão e a análise de dados.
Configure a ingestão de dados de origem no bucket Cadeia de Suprimentos AWS temporário do Amazon S3.
Depois que os dados são adicionados ao bucket Cadeia de Suprimentos AWS temporário do Amazon S3, o serviço aciona automaticamente o fluxo de integração para os conjuntos de dados. Cadeia de Suprimentos AWS
Cadeia de Suprimentos AWS se integra ao Quick Sight Analytics para produzir painéis com base nos dados ingeridos.
Ferramentas
Serviços da AWS
O Amazon CloudWatch Logs ajuda você a centralizar os registros de todos os seus sistemas e aplicativos, Serviços da AWS para que você possa monitorá-los e arquivá-los com segurança.
AWS Command Line Interface (AWS CLI) é uma ferramenta de código aberto que ajuda você a interagir Serviços da AWS por meio de comandos em seu shell de linha de comando.
O Amazon Elastic Compute Cloud (Amazon EC2) oferece capacidade de computação escalável na Nuvem AWS. Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
EventBridgeA Amazon é um serviço de ônibus de eventos sem servidor que ajuda você a conectar seus aplicativos com dados em tempo real de várias fontes. Por exemplo, AWS Lambda funções, endpoints de invocação HTTP usando destinos de API ou barramentos de eventos em outros. Contas da AWS
AWS Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.
Centro de Identidade do AWS IAMajuda você a gerenciar centralmente o acesso de login único (SSO) a todos os seus Contas da AWS aplicativos e à nuvem.
AWS Key Management Service (AWS KMS) ajuda você a criar e controlar chaves criptográficas para ajudar a proteger seus dados.
O AWS Lambda é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.
O Amazon Q in Cadeia de Suprimentos AWS é um assistente interativo de IA generativa que ajuda você a operar sua cadeia de suprimentos com mais eficiência analisando os dados em seu Cadeia de Suprimentos AWS data lake.
O Amazon QuickSight é um serviço de business intelligence (BI) em escala de nuvem que ajuda você a visualizar, analisar e relatar dados em um único painel.
O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
Cadeia de Suprimentos AWSé um aplicativo gerenciado baseado em nuvem que pode ser usado como armazenamento de dados em organizações para domínios da cadeia de suprimentos, que pode ser usado para gerar insights e realizar análises sobre os dados ingeridos.
A Amazon Virtual Private Cloud (Amazon VPC) ajuda você a lançar AWS recursos em uma rede virtual que você definiu. Essa rede virtual é semelhante a uma rede tradicional que você operaria no próprio datacenter, com os benefícios de usar a infraestrutura escalável da AWS. Um endpoint Amazon VPC é um dispositivo virtual que ajuda você a conectar de forma privada sua VPC ao VPC compatível Serviços da AWS sem exigir um gateway de internet, dispositivo NAT, conexão VPN ou conexão. AWS Direct Connect
Outras ferramentas
GitHub O Actions
é uma plataforma de integração contínua e entrega contínua (CI/CD) totalmente integrada aos GitHub repositórios. Você pode usar o GitHub Actions para automatizar seu pipeline de criação, teste e implantação. HashiCorp O Terraform
é uma ferramenta de infraestrutura como código (IaC) que ajuda você a criar e gerenciar recursos na nuvem e no local. JFrog O Artifactory
fornece end-to-end automação e gerenciamento de binários e artefatos por meio do processo de entrega de aplicativos. Python
é uma linguagem de programação de computador de uso geral. Esse padrão usa Python para que o código da AWS função interaja com Cadeia de Suprimentos AWS .
Práticas recomendadas
Mantenha o maior nível de segurança possível ao implementar esse padrão. Conforme declarado nos Pré-requisitos, certifique-se de que uma nuvem privada virtual (VPC) com duas sub-redes privadas esteja na área de sua escolha. Conta da AWS Região da AWS
Use chaves gerenciadas pelo AWS KMS cliente sempre que possível e conceda permissões de acesso limitadas a elas.
Para configurar funções do IAM com o mínimo de acesso necessário para a ingestão de dados desse padrão, consulte Ingestão segura de dados dos sistemas de origem para o Amazon S3
no repositório desse padrão.
Épicos
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Clonar o repositório. | Para clonar o repositório correspondente a este padrão, execute o seguinte comando na estação de trabalho local:
| AWS DevOps |
(Opção automatizada) Verifique os pré-requisitos para implantação. | Certifique-se de que os pré-requisitos estejam preenchidos para a implantação automatizada. | Proprietário do App |
(Opção manual) Prepare-se para a implantação de Cadeia de Suprimentos AWS conjuntos de dados. | Para acessar o
Para assumir a função ARN que foi criada nos Pré-requisitos, execute o seguinte comando:
Para configurar e exportar as variáveis de ambiente, execute os seguintes comandos:
| AWS DevOps |
(Opção manual) Prepare-se para gerenciar fluxos de Cadeia de Suprimentos AWS integração na implantação. | Para acessar o
Para assumir a função ARN que foi criada anteriormente, execute o seguinte comando:
Para configurar e exportar as variáveis de ambiente, execute os seguintes comandos:
| Proprietário do App |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Copie o | Para copiar o
| AWS DevOps |
Configure o | Para configurar
| AWS DevOps |
Configure o nome da ramificação no arquivo de fluxo de trabalho .github. | Configure o nome da ramificação no arquivo do fluxo de trabalho de implantação
| Proprietário do App |
Configure GitHub ambientes e configure os valores do ambiente. | Para configurar GitHub ambientes em sua GitHub organização, use as instruções em Configurar GitHub ambientes Para configurar os valores do ambiente | Proprietário do App |
Acione o fluxo de trabalho. | Para enviar suas alterações para sua GitHub organização e acionar o fluxo de trabalho de implantação, execute o seguinte comando:
| AWS DevOps |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Copie o | Para copiar o
| AWS DevOps |
Configure o | Para configurar o
| AWS DevOps |
Configure o nome da ramificação no arquivo de fluxo de trabalho .github. | Configure o nome da ramificação no arquivo do fluxo de trabalho de implantação
| Proprietário do App |
Configure GitHub ambientes e configure os valores do ambiente. | Para configurar GitHub ambientes em sua GitHub organização, use as instruções em Configurar GitHub ambientes Para configurar os valores do ambiente | Proprietário do App |
Acione o fluxo de trabalho. | Para enviar suas alterações para sua GitHub organização e acionar o fluxo de trabalho de implantação, execute o seguinte comando:
| AWS DevOps |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Navegue até o diretório | Para acessar o
| AWS DevOps |
Configure o bucket Amazon S3 do estado do Terraform. | Para configurar o bucket Amazon S3 do estado do Terraform, use o seguinte script:
| AWS DevOps |
Configure o bucket Amazon S3 de artefatos do Terraform. | Para configurar o bucket Amazon S3 de artefatos do Terraform, use o seguinte script:
| AWS DevOps |
Configure o back-end e a configuração dos provedores do Terraform. | Para configurar o back-end e os provedores do Terraform, use o seguinte script:
| AWS DevOps |
Gere um plano de implantação. | Para gerar um plano de implantação, execute os seguintes comandos:
| AWS DevOps |
Implante as configurações. | Para implantar as configurações, execute o seguinte comando:
| AWS DevOps |
Atualize outras configurações e armazene saídas. | Para atualizar as AWS KMS principais políticas e armazenar as saídas das configurações aplicadas no bucket Amazon S3 de artefatos do Terraform, execute os seguintes comandos:
| AWS DevOps |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Navegue até o diretório | Para acessar o
| AWS DevOps |
Configure o back-end e a configuração dos provedores do Terraform. | Para definir as configurações do back-end e do provedor do Terraform, use o seguinte script:
| AWS DevOps |
Gere um plano de implantação. | Para gerar um plano de implantação, execute os comandos a seguir. Esses comandos inicializam seu ambiente Terraform, mesclam variáveis de configuração
| AWS DevOps |
Implante as configurações. | Para implantar as configurações, execute o seguinte comando:
| AWS DevOps |
Atualize outras configurações. | Para atualizar as AWS KMS principais políticas e armazenar as saídas das configurações aplicadas no bucket Amazon S3 de artefatos do Terraform, execute os seguintes comandos:
| AWS DevOps |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Faça upload de arquivos CSV de amostra. | Para fazer upload de arquivos CSV de amostra para os conjuntos de dados, use as seguintes etapas:
| Engenheiro de dados |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Configure o Cadeia de Suprimentos AWS acesso. | Para configurar o Cadeia de Suprimentos AWS acesso a partir do Console de gerenciamento da AWS, use as seguintes etapas:
| Proprietário do App |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Acione o fluxo de trabalho de destruição para recursos de fluxos de integração. | Acione o fluxo de trabalho de destruição | AWS DevOps |
Acione o fluxo de trabalho de destruição para recursos de conjuntos de dados. | Acione o fluxo de trabalho de destruição | AWS DevOps |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Navegue até o diretório | Para acessar o
| AWS DevOps |
Configure o back-end e a configuração dos provedores do Terraform. | Para configurar o back-end e os provedores do Terraform, use o seguinte script:
| AWS DevOps |
Gere um plano de destruição da infraestrutura. | Para se preparar para a destruição controlada de sua AWS infraestrutura gerando um plano detalhado de desmontagem, execute os comandos a seguir. O processo inicializa o Terraform, incorpora configurações do Cadeia de Suprimentos AWS conjunto de dados e cria um plano de destruição que você pode revisar antes de executar.
| AWS DevOps |
Execute o plano de destruição da infraestrutura. | Para executar a destruição planejada de sua infraestrutura, execute o seguinte comando:
| AWS DevOps |
Remova as saídas do Terraform do bucket Amazon S3. | Para remover o arquivo de saída que foi carregado durante a implantação do
| AWS DevOps |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Navegue até o diretório | Para acessar o
| AWS DevOps |
Configure o back-end e a configuração dos provedores do Terraform. | Para configurar o back-end e os provedores do Terraform, use o seguinte script:
| AWS DevOps |
Gere um plano de destruição da infraestrutura. | Para criar um plano para destruir recursos do Cadeia de Suprimentos AWS conjunto de dados, execute os seguintes comandos:
| AWS DevOps |
Esvazie os buckets do Amazon S3. | Para esvaziar todos os buckets do Amazon S3 (exceto o bucket de registro de acesso ao servidor, que está configurado para
| AWS DevOps |
Execute o plano de destruição da infraestrutura. | Para executar a destruição planejada da sua infraestrutura de Cadeia de Suprimentos AWS conjunto de dados usando o plano gerado, execute o seguinte comando:
| AWS DevOps |
Remova as saídas do Terraform do bucket de artefatos do Amazon S3 Terraform. | Para concluir o processo de limpeza, remova o arquivo de saída que foi carregado durante a implantação do
| AWS DevOps |
Solução de problemas
| Problema | Solução |
|---|---|
Um Cadeia de Suprimentos AWS conjunto de dados ou fluxo de integração não foi implantado corretamente devido a erros Cadeia de Suprimentos AWS internos ou permissões insuficientes do IAM para a função de serviço. | Primeiro, limpe todos os recursos. Em seguida, reimplante os recursos do Cadeia de Suprimentos AWS conjunto de dados e, em seguida, reimplante os recursos |
O fluxo de Cadeia de Suprimentos AWS integração não busca os novos arquivos de dados enviados para os Cadeia de Suprimentos AWS conjuntos de dados. |
|
Recursos relacionados
AWS documentação
Outros recursos
Entendendo os fluxos de trabalho do GitHub Actions
(GitHub documentação)
Mais informações
Essa solução pode ser replicada para mais conjuntos de dados e pode ser consultada para análises adicionais, por meio de painéis pré-criados fornecidos ou da integração Cadeia de Suprimentos AWS personalizada com o Amazon Quick Sight. Além disso, você pode usar o Amazon Q para fazer perguntas relacionadas à sua Cadeia de Suprimentos AWS instância.
Analise dados com o Cadeia de Suprimentos AWS Analytics
Para obter instruções sobre como configurar o Cadeia de Suprimentos AWS Analytics, consulte Como configurar o Cadeia de Suprimentos AWS Analytics na Cadeia de Suprimentos AWS documentação.
Esse padrão demonstrou a criação dos conjuntos de dados Calendar e Outbound_Order_Line. Para criar uma análise que usa esses conjuntos de dados, use as seguintes etapas:
Para analisar os conjuntos de dados, use o painel de análise de sazonalidade. Para adicionar o painel, siga as etapas em Painéis pré-criados na Cadeia de Suprimentos AWS documentação.
Escolha o painel para ver sua análise com base em arquivos CSV de amostra para dados do calendário e dados da linha de pedido de saída.
O painel fornece informações sobre a demanda ao longo dos anos com base nos dados ingeridos pelos conjuntos de dados. Você pode especificar ainda mais o ProductID, o CustomerID, os anos e outros parâmetros para análise.
Use o Amazon Q para fazer perguntas relacionadas à sua Cadeia de Suprimentos AWS instância
O Amazon Q in Cadeia de Suprimentos AWS é um assistente interativo de IA generativa que ajuda você a operar sua cadeia de suprimentos com mais eficiência. O Amazon Q pode fazer o seguinte:
Analise os dados em seu Cadeia de Suprimentos AWS data lake.
Forneça informações operacionais e financeiras.
Responda às suas perguntas imediatas sobre a cadeia de suprimentos.
Para obter mais informações sobre o uso do Amazon Q, consulte Habilitando o Amazon Q in Cadeia de Suprimentos AWS e Usando o Amazon Q Cadeia de Suprimentos AWS in na Cadeia de Suprimentos AWS documentação.