View a markdown version of this page

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 - Recomendações da AWS

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:

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:

Se você preferir fazer uma implantação manual, faça o seguinte:

Se você preferir usar fluxos de trabalho do GitHub Actions para implantação, configure o seguinte:

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.

Opção de implantação automatizada que usa fluxos de trabalho de GitHub ações e. JFrog

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.

Opção de implantação manual usando o Terraform e o Amazon S3.

Fluxo de trabalho de implantação

O diagrama mostra o seguinte fluxo de trabalho:

  1. 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.

  2. 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

  3. 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

  4. 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.

  5. Configure a ingestão de dados de origem no bucket Cadeia de Suprimentos AWS temporário do Amazon S3.

  6. 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

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

Épicos

TarefaDescriptionHabilidades 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:

git clone https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment.git cd ASC-Deployment
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 terraform-deployment diretório deASC-Datasets, execute o seguinte comando:

cd ASC-Datasets/terraform-deployment

Para assumir a função ARN que foi criada nos Pré-requisitos, execute o seguinte comando:

aws sts assume-role --role-arn <enter AWS user role ARN> --role-session-name <your-session-name>

Para configurar e exportar as variáveis de ambiente, execute os seguintes comandos:

# Export Environment variables export REGION=<Enter deployment region> export REPO_NAME=<Enter Current ASC Datasets dir name> export PROJECT_NAME="asc-deployment-poc" export ACCOUNT_ID=<Enter deployment Account ID> export ENVIRONMENT="dev" export LAMBDA_LAYER_TEMP_DIR_TERRAFORM="layerOutput" export LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM="lambdaOutput" export AWS_USER_ROLE=<Enter user role ARN for AWS Console access and deployment> export S3_TERRAFORM_ARTIFACTS_BUCKET_NAME="$PROJECT_NAME-$ACCOUNT_ID-$REGION-terraform-artifacts-$ENVIRONMENT"
AWS DevOps

(Opção manual) Prepare-se para gerenciar fluxos de Cadeia de Suprimentos AWS integração na implantação.

Para acessar o terraform-deployment diretório deASC-Integration-Flows, execute o seguinte comando:

cd ASC-Integration-Flows/terraform-deployment

Para assumir a função ARN que foi criada anteriormente, execute o seguinte comando:

aws sts assume-role --role-arn <enter AWS user role ARN> --role-session-name <your-session-name>

Para configurar e exportar as variáveis de ambiente, execute os seguintes comandos:

# Export Environment variables export REGION=<Enter deployment region> export REPO_NAME=<Enter Current ASC Integration Flows dir name> export ASC_DATASET_VARS_REPO=<Enter Current ASC Datasets dir name> #Must be the same directory name used for ASC Datasets deployment export PROJECT_NAME="asc-deployment-poc" export ACCOUNT_ID=<Enter deployment Account ID> export ENVIRONMENT="dev" export LAMBDA_LAYER_TEMP_DIR_TERRAFORM="layerOutput" export LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM="lambdaOutput" export S3_TERRAFORM_ARTIFACTS_BUCKET_NAME="$PROJECT_NAME-$ACCOUNT_ID-$REGION-terraform-artifacts-$ENVIRONMENT"
Proprietário do App
TarefaDescriptionHabilidades necessárias

Copie o ASC-Datasets diretório.

Para copiar o ASC-Datasets diretório para um novo local, use as seguintes etapas:

  1. Para acessar o ASC-Datasets diretório, execute o seguinte comando:

    cd ASC-Datasets
  2. Para copiar o ASC-Datasets diretório para um novo local, execute os seguintes comandos:

    cp -r ASC-Datasets ../ASC-Datasets-standalone cd ../ASC-Datasets-standalone
AWS DevOps

Configure o ASC-Datasets diretório.

Para configurar ASC-Datasets como um repositório independente em sua organização, execute os seguintes comandos:

git init git add . git commit -m "Initial commit: ASC-Datasets standalone repository" git remote add origin <INSERT_ASC_DATASETS_GITHUB_URL> git branch -M dev
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, conforme mostrado no exemplo a seguir:

on: workflow_dispatch: push: branches: - dev #Change to any other branch preferred for deployment
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 no repositório desse padrão.

Para configurar os valores do ambiente nos arquivos do fluxo de trabalho, use as instruções em Configurar valores do ambiente nos arquivos do fluxo de trabalho no repositório desse padrão.

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:

git push -u origin dev
AWS DevOps
TarefaDescriptionHabilidades necessárias

Copie o ASC-Integration-Flows diretório.

Para copiar o ASC-Integration-Flows diretório para um novo local, use as seguintes etapas:

  1. Para acessar o ASC-Integration-Flows diretório, execute o seguinte comando:

    cd ASC-Integration-Flows
  2. Para copiar o ASC-Integration-Flows diretório para um novo local, execute os seguintes comandos:

    cp -r ASC-Integration-Flows ../ASC-Integration-Flows-standalone cd ../ASC-Integration-Flows-standalone
AWS DevOps

Configure o ASC-Integration-Flows diretório.

Para configurar o ASC-Integration-Flows diretório como um repositório independente em sua organização, execute os seguintes comandos:

git init git add . git commit -m "Initial commit: ASC-Integration-Flows standalone repository" git remote add origin <INSERT_ASC_Integration_Flows_GITHUB_URL> git branch -M dev
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, conforme mostrado no exemplo a seguir:

on: workflow_dispatch: push: branches: - dev #Change to any other branch preferred for deployment
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 no repositório desse padrão.

Para configurar os valores do ambiente nos arquivos do fluxo de trabalho, use as instruções em Configurar valores do ambiente nos arquivos do fluxo de trabalho no repositório desse padrão.

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:

git push -u origin dev
AWS DevOps
TarefaDescriptionHabilidades necessárias

Navegue até o diretório terraform-deployment .

Para acessar o terraform-deployment diretório deASC-Datasets, execute o seguinte comando:

cd ASC-Datasets/terraform-deployment
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:

# Setup terraform bucket chmod +x ../scripts/setup-terraform.sh ../scripts/setup-terraform.sh
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:

# Setup terraform artifacts bucket chmod +x ../scripts/setup-terraform-artifacts-bucket.sh ../scripts/setup-terraform-artifacts-bucket.sh
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:

# Setup terraform backend and providers config if they don't exist chmod +x ../scripts/generate-terraform-config.sh ../scripts/generate-terraform-config.sh
AWS DevOps

Gere um plano de implantação.

Para gerar um plano de implantação, execute os seguintes comandos:

# Run terraform init and validate terraform init terraform validate # Run terraform plan terraform plan \ -var-file="tfInputs/$ENVIRONMENT.tfvars" \ -var="project_name=$PROJECT_NAME" \ -var="environment=$ENVIRONMENT" \ -var="user_role=$AWS_USER_ROLE" \ -var="lambda_temp_dir=$LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM" \ -var="layer_temp_dir=$LAMBDA_LAYER_TEMP_DIR_TERRAFORM" \ -parallelism=40 \ -out='tfplan.out'
AWS DevOps

Implante as configurações.

Para implantar as configurações, execute o seguinte comando:

# Run terraform apply terraform apply tfplan.out
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:

# Update AWS Supply Chain KMS Key policy with the service's requirements chmod +x ../scripts/update-asc-kms-policy.sh ../scripts/update-asc-kms-policy.sh
# Update AWS KMS Keys' policy with IAM roles chmod +x ../scripts/update-kms-policy.sh ../scripts/update-kms-policy.sh
# Create terraform outputs file to be used as input variables terraform output -json > raw_output.json jq -r 'to_entries | map( if .value.type == "string" then "\(.key) = \"\(.value.value)\"" else "\(.key) = \(.value.value | tojson)" end ) | .[]' raw_output.json > $REPO_NAME-outputs.tfvars
# Upload reformed outputs file to Amazon S3 terraform artifacts bucket (For retrieval from other repositories) aws s3 cp $REPO_NAME-outputs.tfvars s3://$S3_TERRAFORM_ARTIFACTS_BUCKET_NAME/$REPO_NAME-outputs.tfvars rm -f raw_output.json rm -f $REPO_NAME-outputs.tfvars
AWS DevOps
TarefaDescriptionHabilidades necessárias

Navegue até o diretório terraform-deployment.

Para acessar o terraform-deployment diretório deASC-Integration-Flows, execute o seguinte comando:

cd ASC-Integration-Flows/terraform-deployment
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:

# Setup terraform backend and providers config if they don't exist chmod +x ../scripts/generate-terraform-config.sh ../scripts/generate-terraform-config.sh
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 ASC-Datasets com suas configurações existentes do Terraform e geram um plano de implantação.

# Run terraform init and validate terraform init terraform validate
# Download and merge ASC DATASET tfvars chmod +x ../scripts/download-vars-through-s3.sh ../scripts/download-vars-through-s3.sh $ASC_DATASET_VARS_REPO
# Run terraform plan terraform plan \ -var-file="tfInputs/$ENVIRONMENT.tfvars" \ -var="project_name=$PROJECT_NAME" \ -var="environment=$ENVIRONMENT" \ -var="lambda_temp_dir=$LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM" \ -var="layer_temp_dir=$LAMBDA_LAYER_TEMP_DIR_TERRAFORM" \ -parallelism=40 \ -out='tfplan.out'
AWS DevOps

Implante as configurações.

Para implantar as configurações, execute o seguinte comando:

# Run terraform apply terraform apply tfplan.out
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:

# Update AWS KMS Keys' policy with IAM roles chmod +x ../scripts/update-kms-policy-through-s3.sh ../scripts/update-kms-policy-through-s3.sh $ASC_DATASET_VARS_REPO
# Create terraform outputs file to be used as input variables terraform output -json > raw_output.json jq -r 'to_entries | map( if .value.type == "string" then "\(.key) = \"\(.value.value)\"" else "\(.key) = \(.value.value | tojson)" end ) | .[]' raw_output.json > $REPO_NAME-outputs.tfvars
# Upload reformed outputs file to Amazon S3 terraform artifacts bucket (For retrieval from other repositories) aws s3 cp $REPO_NAME-outputs.tfvars s3://$S3_TERRAFORM_ARTIFACTS_BUCKET_NAME/$REPO_NAME-outputs.tfvars rm -f raw_output.json rm -f $REPO_NAME-outputs.tfvars
AWS DevOps
TarefaDescriptionHabilidades 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:

  1. Crie arquivos CSV de amostra com dados variados para os conjuntos de dados Calendar e Outbound Order Line que foram criados na implantação.

  2. Obtenha o ID da Cadeia de Suprimentos AWS instância no diretório asc_instance_id de saídas do terraform.

  3. Observe o nome do bucket do Amazon S3 Cadeia de Suprimentos AWS que foi criado na implantação: aws-supply-chain-data-<Instance_ID>

  4. Para carregar os arquivos usando o AWS CLI, execute os seguintes comandos:

    # Upload Calendar CSV file aws s3 cp calendar_sample.csv s3://aws-supply-chain-data-<Instance_ID>/calendar-data/ # Upload Outbound Order Line CSV file aws s3 cp outbound_order_line_sample.csv s3://aws-supply-chain-data-<Instance_ID>/outbound-order-line-data/
Engenheiro de dados
TarefaDescriptionHabilidades 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:

  1. Faça login no Console de gerenciamento da AWS e pesquise o Cadeia de Suprimentos AWS serviço.

  2. Vá até a instânciaasc-deployment-poc-dev-asc-instance.

  3. Esse padrão usa o IAM Identity Center para gerenciar o acesso do usuário à Cadeia de Suprimentos AWS instância. Para garantir o acesso completo a essa solução, faça login como administrador do aplicativo.

Proprietário do App
TarefaDescriptionHabilidades 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 ASC-Integration-Flows de sua filial de implantação em sua GitHub organizaçã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 ASC-Datasets de sua filial de implantação em sua GitHub organização.

AWS DevOps
TarefaDescriptionHabilidades necessárias

Navegue até o diretório terraform-deployment.

Para acessar o terraform-deployment diretório deASC-Integration-Flows, execute o seguinte comando:

cd ASC-Integration-Flows/terraform-deployment
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:

# Setup terraform backend and providers config if they don't exist chmod +x ../scripts/generate-terraform-config.sh ../scripts/generate-terraform-config.sh
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.

# Run terraform init and validate terraform init terraform validate
# Download and merge ASC DATASET tfvars chmod +x ../scripts/download-vars-through-s3.sh ../scripts/download-vars-through-s3.sh $ASC_DATASET_VARS_REPO
# Run terraform plan terraform plan -destroy\ -var-file="tfInputs/$ENVIRONMENT.tfvars" \ -var="project_name=$PROJECT_NAME" \ -var="environment=$ENVIRONMENT" \ -var="lambda_temp_dir=$LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM" \ -var="layer_temp_dir=$LAMBDA_LAYER_TEMP_DIR_TERRAFORM" \ -parallelism=40 \ -out='tfplan.out'
AWS DevOps

Execute o plano de destruição da infraestrutura.

Para executar a destruição planejada de sua infraestrutura, execute o seguinte comando:

# Run terraform apply terraform apply tfplan.out
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 doASC-Integration-Flows, execute o seguinte comando:

# Delete the outputs file aws s3 rm s3://$S3_TERRAFORM_ARTIFACTS_BUCKET_NAME/$REPO_NAME-outputs.tfvars
AWS DevOps
TarefaDescriptionHabilidades necessárias

Navegue até o diretório terraform-deployment.

Para acessar o terraform-deployment diretório deASC-Datasets, execute o seguinte comando:

cd ASC-Datasets/terraform-deployment
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:

# Setup terraform backend and providers config if they don't exist chmod +x ../scripts/generate-terraform-config.sh ../scripts/generate-terraform-config.sh
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:

# Run terraform init and validate terraform init terraform validate # Run terraform plan terraform plan -destroy\ -var-file="tfInputs/$ENVIRONMENT.tfvars" \ -var="project_name=$PROJECT_NAME" \ -var="environment=$ENVIRONMENT" \ -var="user_role=$AWS_USER_ROLE" \ -var="lambda_temp_dir=$LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM" \ -var="layer_temp_dir=$LAMBDA_LAYER_TEMP_DIR_TERRAFORM" \ -parallelism=40 \ -out='tfplan.out'
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 paraforce-destroy), use o seguinte script:

# Delete S3 buckets excluding server access logging bucket chmod +x ../scripts/empty-s3-buckets.sh ../scripts/empty-s3-buckets.sh tfplan.out
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:

# Run terraform apply terraform apply tfplan.out
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 ASC-Datasets executando o seguinte comando:

# Delete the outputs file aws s3 rm s3://$S3_TERRAFORM_ARTIFACTS_BUCKET_NAME/$REPO_NAME-outputs.tfvars
AWS DevOps

Solução de problemas

ProblemaSoluçã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 do fluxo de Cadeia de Suprimentos AWS integração.

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.

  1. Verifique se o prefixo da configuração do fluxo de Cadeia de Suprimentos AWS integração corresponde ao prefixo usado ao carregar os arquivos de dados de amostra.

  2. Se os recursos dos Cadeia de Suprimentos AWS conjuntos de dados foram recriados, seus Amazon Resource Names (ARNs) associados serão alterados internamente. Portanto, reimplante os recursos dos fluxos Cadeia de Suprimentos AWS de integração de serviços.

Recursos relacionados

AWS documentação

Outros recursos

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:

  1. 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.

  2. 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.