View a markdown version of this page

Automatizza l'implementazione dei Catena di approvvigionamento di AWS data lake in una configurazione multi-repository utilizzando GitHub Actions, Artifactory e Terraform - Prontuario AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Automatizza l'implementazione dei Catena di approvvigionamento di AWS data lake in una configurazione multi-repository utilizzando GitHub Actions, Artifactory e Terraform

Keshav Ganesh, Amazon Web Services

Riepilogo

Questo modello fornisce un approccio automatizzato per l'implementazione e la gestione Catena di approvvigionamento di AWS dei data lake utilizzando funzionalità di integrazione continua multirepository e distribuzione continua (). 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

La soluzione sfrutta Catena di approvvigionamento di AWS Amazon Simple Storage Service (Amazon S3) per stabilire l'infrastruttura del data lake, utilizzando entrambi i metodi di distribuzione per automatizzare la configurazione e la creazione di risorse. AWS Lambda Questa automazione elimina le fasi di configurazione manuali e garantisce implementazioni coerenti in tutti gli ambienti. Inoltre, Catena di approvvigionamento di AWS elimina la necessità di competenze approfondite in materia di estrazione, trasformazione e caricamento (ETL) e può fornire approfondimenti e analisi basati su Amazon Quick Sight.

Implementando questo modello, le organizzazioni possono ridurre i tempi di implementazione, mantenere l'infrastruttura come codice e gestire i data lake della catena di fornitura attraverso un processo automatizzato e controllato dalla versione. L'approccio multirepository fornisce un controllo granulare degli accessi e supporta l'implementazione indipendente di diversi componenti. I team possono scegliere il metodo di implementazione più adatto agli strumenti e ai processi esistenti.

Prerequisiti e limitazioni

Prerequisiti

Assicurati che sul tuo computer locale sia installato quanto segue:

Assicurati che siano presenti le seguenti condizioni prima della distribuzione:

  • Un attivo Account AWS.

  • Un cloud privato virtuale (VPC) con due sottoreti private Account AWS a tua scelta. Regione AWS

  • Autorizzazioni sufficienti per il ruolo AWS Identity and Access Management (IAM) utilizzato per l'implementazione nei seguenti servizi:

    • Catena di approvvigionamento di AWS — Accesso completo preferito per l'implementazione dei relativi componenti, come set di dati e flussi di integrazione, oltre ad accedervi da. Console di gestione AWS

    • Amazon CloudWatch Logs: per creare e gestire gruppi di CloudWatch log.

    • Amazon Elastic Compute Cloud (Amazon EC2) — Per i gruppi di sicurezza Amazon EC2 e gli endpoint Amazon Virtual Private Cloud (Amazon VPC).

    • Amazon EventBridge : destinato all'uso da Catena di approvvigionamento di AWS.

    • IAM: per creare ruoli AWS Lambda di servizio.

    • AWS Key Management Service (AWS KMS) — Per accedere al bucket AWS KMS keys utilizzato per il bucket di artefatti Amazon S3 e il bucket di staging Amazon S3. Catena di approvvigionamento di AWS

    • AWS Lambda — Per creare le funzioni Lambda che distribuiscono i componenti. Catena di approvvigionamento di AWS

    • Amazon S3: per accedere al bucket di artefatti Amazon S3, al bucket di registrazione degli accessi al server e al bucket di staging. Catena di approvvigionamento di AWS Se utilizzi la distribuzione manuale, sono necessarie anche le autorizzazioni per il bucket di artefatti Amazon S3 Terraform.

    • Amazon VPC: per creare e gestire un VPC.

Se preferisci utilizzare i flussi di lavoro GitHub Actions per la distribuzione, procedi come segue:

Se preferisci eseguire una distribuzione manuale, procedi come segue:

Se preferisci utilizzare i flussi di lavoro di GitHub Actions per la distribuzione, configura quanto segue:

Limitazioni

  • L' Catena di approvvigionamento di AWS istanza non supporta tecniche complesse di trasformazione dei dati.

  • Catena di approvvigionamento di AWS è più adatto per i domini della catena di fornitura perché fornisce analisi e approfondimenti integrati. Per qualsiasi altro dominio, Catena di approvvigionamento di AWS può essere utilizzato come archivio dati come parte dell'architettura del data lake.

  • Potrebbe essere necessario migliorare le funzioni Lambda utilizzate in questa soluzione per gestire i tentativi di API e la gestione della memoria in un'implementazione su scala di produzione.

  • Alcune Servizi AWS non sono disponibili in tutte. Regioni AWS Per informazioni sulla disponibilità per regione, consulta AWS Servizi per regione. Per endpoint specifici, consulta Endpoints and quotas del servizio e scegli il link relativo al servizio.

Architecture

Puoi implementare questa soluzione utilizzando i flussi di lavoro GitHub Actions automatizzati o manualmente utilizzando Terraform.

Distribuzione automatizzata con Actions GitHub

Il diagramma seguente mostra l'opzione di distribuzione automatizzata che utilizza i flussi di lavoro GitHub Actions. JFrog Artifactory viene utilizzato per la gestione degli artefatti. Memorizza le informazioni sulle risorse e gli output per l'uso in una distribuzione multirepository.

Opzione di distribuzione automatizzata che utilizza i flussi di lavoro GitHub Actions e. JFrog

Distribuzione manuale con Terraform

Il diagramma seguente mostra l'opzione di distribuzione manuale tramite Terraform. Invece di JFrog Artifactory, Amazon S3 viene utilizzato per la gestione degli artefatti.

Opzione di distribuzione manuale con Terraform e Amazon S3.

Workflow di implementazione

I diagrammi mostrano il seguente flusso di lavoro:

  1. Distribuisci l'infrastruttura e i database dei set di dati dei Catena di approvvigionamento di AWS servizi utilizzando uno dei seguenti metodi di distribuzione:

    • Distribuzione automatizzata: utilizza i flussi di lavoro di GitHub Actions per orchestrare tutte le fasi di distribuzione e utilizza JFrog Artifactory per la gestione degli artefatti.

    • Distribuzione manuale: esegue i comandi Terraform direttamente per ogni fase di distribuzione e utilizza Amazon S3 per la gestione degli artefatti.

  2. Crea le AWS risorse di supporto necessarie per il funzionamento del servizio: Catena di approvvigionamento di AWS

    • Endpoint e gruppi di sicurezza Amazon VPC

    • AWS KMS keys

    • CloudWatch Registra i gruppi di log

  3. Crea e distribuisci le seguenti risorse di infrastruttura:

    • Funzioni Lambda che gestiscono (creano, aggiornano ed eliminano) l'istanza del Catena di approvvigionamento di AWS servizio, i namespace e i set di dati.

    • Catena di approvvigionamento di AWS gestione temporanea del bucket Amazon S3 per l'inserimento di dati

  4. Implementa la funzione Lambda che gestisce i flussi di integrazione tra lo staging bucket e i set di dati. Catena di approvvigionamento di AWS Una volta completata l'implementazione, le fasi rimanenti del flusso di lavoro gestiscono l'inserimento e l'analisi dei dati.

  5. Configura l'inserimento dei dati di origine nel bucket di Catena di approvvigionamento di AWS staging Amazon S3.

  6. Dopo aver aggiunto i dati al bucket Catena di approvvigionamento di AWS di staging Amazon S3, il servizio attiva automaticamente il flusso di integrazione nei set di dati. Catena di approvvigionamento di AWS

  7. Catena di approvvigionamento di AWS si integra con Quick Sight Analytics per produrre dashboard basate sui dati acquisiti.

Tools (Strumenti)

Servizi AWS

  • Amazon CloudWatch Logs ti aiuta a centralizzare i log di tutti i tuoi sistemi e applicazioni, Servizi AWS così puoi monitorarli e archiviarli in modo sicuro.

  • AWS Command Line Interface (AWS CLI) è uno strumento open source che ti aiuta a interagire Servizi AWS tramite comandi nella shell della riga di comando.

  • Amazon Elastic Compute Cloud (Amazon EC2) fornisce capacità di calcolo scalabile nel Cloud AWS. Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.

  • Amazon EventBridge è un servizio di bus eventi senza server che ti aiuta a connettere le tue applicazioni con dati in tempo reale provenienti da una varietà di fonti. Ad esempio, AWS Lambda funzioni, endpoint di invocazione HTTP che utilizzano destinazioni API o bus di eventi in altro modo. Account AWS

  • AWS Identity and Access Management (IAM) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.

  • AWS IAM Identity Centerti aiuta a gestire centralmente l'accesso Single Sign-On (SSO) a tutte le tue applicazioni e a quelle sul cloud. Account AWS

  • AWS Key Management Service (AWS KMS) ti aiuta a creare e controllare chiavi crittografiche per proteggere i tuoi dati.

  • AWS Lambda è un servizio di calcolo che consente di eseguire il codice senza gestire i server o effettuarne il provisioning. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di elaborazione che utilizzi.

  • Amazon Q in Catena di approvvigionamento di AWS è un assistente AI generativo interattivo che ti aiuta a gestire la catena di approvvigionamento in modo più efficiente analizzando i dati nel tuo Catena di approvvigionamento di AWS data lake.

  • Amazon Quick Sight è un servizio di business intelligence (BI) su scala cloud che ti aiuta a visualizzare, analizzare e generare report sui dati in un'unica dashboard.

  • Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

  • Catena di approvvigionamento di AWSè un'applicazione gestita basata sul cloud che può essere utilizzata come archivio dati nelle organizzazioni per i domini della catena di fornitura, che può essere utilizzata per generare approfondimenti ed eseguire analisi sui dati acquisiti.

  • Amazon Virtual Private Cloud (Amazon VPC) ti aiuta a lanciare AWS risorse in una rete virtuale che hai definito. Questa rete virtuale è simile a una comune rete da gestire all'interno del proprio data center, ma con i vantaggi dell'infrastruttura scalabile di AWS. Un endpoint Amazon VPC è un dispositivo virtuale che ti aiuta a connettere privatamente il tuo VPC a Supported Servizi AWS senza richiedere un gateway Internet, un dispositivo NAT, una connessione VPN o una connessione. AWS Direct Connect

Altri strumenti

  • GitHub Actions è una piattaforma di integrazione e distribuzione continua (CI/CD) strettamente integrata con i repository. GitHub Puoi utilizzare GitHub Actions per automatizzare la pipeline di compilazione, test e distribuzione.

  • HashiCorp Terraform è uno strumento di infrastruttura come codice (IaC) che ti aiuta a creare e gestire risorse cloud e locali.

  • JFrog Artifactory fornisce l' end-to-endautomazione e la gestione di file binari e artefatti attraverso il processo di distribuzione delle applicazioni.

  • Python è un linguaggio di programmazione per computer generico. Questo modello utilizza Python con cui il codice della AWS funzione può interagire Catena di approvvigionamento di AWS

    .

Best practice

Epiche

OperazioneDescriptionCompetenze richieste

Clonare il repository.

Per clonare il repository di questo pattern, esegui il seguente comando nella tua workstation locale:

git clone https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment.git cd ASC-Deployment
AWS DevOps

(Opzione automatizzata) Verifica i prerequisiti per la distribuzione.

Assicurati che i prerequisiti per la distribuzione automatizzata siano completi.

Proprietario dell'app

(Opzione manuale) Preparati per la distribuzione dei Catena di approvvigionamento di AWS set di dati.

Per accedere alla terraform-deployment directory diASC-Datasets, esegui il seguente comando:

cd ASC-Datasets/terraform-deployment

Per assumere il ruolo ARN creato nei Prerequisiti, esegui il comando seguente:

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

Per configurare ed esportare le variabili di ambiente, esegui i seguenti comandi:

# 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

(Opzione manuale) Preparati a gestire i flussi di Catena di approvvigionamento di AWS integrazione durante la distribuzione.

Per accedere alla terraform-deployment directory diASC-Integration-Flows, esegui il seguente comando:

cd ASC-Integration-Flows/terraform-deployment

Per assumere il ruolo ARN creato in precedenza, esegui il seguente comando:

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

Per configurare ed esportare le variabili di ambiente, esegui i seguenti comandi:

# 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"
Proprietario dell'app
OperazioneDescriptionCompetenze richieste

Copia la ASC-Datasets cartella.

Per copiare la ASC-Datasets directory in una nuova posizione, procedi nel seguente modo:

  1. Per accedere alla ASC-Datasets directory, esegui il comando seguente:

    cd ASC-Datasets
  2. Per copiare la ASC-Datasets directory in una nuova posizione, esegui i seguenti comandi:

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

Configura la ASC-Datasets directory.

Per configurarlo ASC-Datasets come repository autonomo nell'organizzazione, esegui i seguenti comandi:

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

Configura il nome del ramo nel file di workflow .github.

Imposta il nome del ramo nel file del flusso di lavoro di distribuzione come mostrato nell'esempio seguente:

on: workflow_dispatch: push: branches: - dev #Change to any other branch preferred for deployment
Proprietario dell'app

Configura GitHub gli ambienti e configura i valori dell'ambiente.

Per configurare GitHub gli ambienti nella propria GitHub organizzazione, utilizzare le istruzioni in Configurazione GitHub degli ambienti nell'archivio di questo modello.

Per configurare i valori di ambiente nei file del flusso di lavoro, utilizzate le istruzioni in Configurazione dei valori di ambiente nei file di flusso di lavoro nel repository di questo pattern.

Proprietario dell'app

Attiva il flusso di lavoro.

Per inviare le modifiche all' GitHub organizzazione e attivare il flusso di lavoro di distribuzione, esegui il comando seguente:

git push -u origin dev
AWS DevOps
OperazioneDescriptionCompetenze richieste

Copia la ASC-Integration-Flows cartella.

Per copiare la ASC-Integration-Flows directory in una nuova posizione, procedi nel seguente modo:

  1. Per accedere alla ASC-Integration-Flows directory, esegui il comando seguente:

    cd ASC-Integration-Flows
  2. Per copiare la ASC-Integration-Flows directory in una nuova posizione, esegui i seguenti comandi:

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

Configura la ASC-Integration-Flows directory.

Per configurare la ASC-Integration-Flows directory come archivio autonomo nell'organizzazione, esegui i seguenti comandi:

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

Configura il nome del ramo nel file di workflow .github.

Imposta il nome del ramo nel file del flusso di lavoro di distribuzione come mostrato nell'esempio seguente:

on: workflow_dispatch: push: branches: - dev #Change to any other branch preferred for deployment
Proprietario dell'app

Configura GitHub gli ambienti e configura i valori dell'ambiente.

Per configurare GitHub gli ambienti nella propria GitHub organizzazione, utilizzare le istruzioni in Configurazione GitHub degli ambienti nell'archivio di questo modello.

Per configurare i valori di ambiente nei file del flusso di lavoro, utilizzate le istruzioni in Configurazione dei valori di ambiente nei file di flusso di lavoro nel repository di questo pattern.

Proprietario dell'app

Attiva il flusso di lavoro.

Per inviare le modifiche all' GitHub organizzazione e attivare il flusso di lavoro di distribuzione, esegui il comando seguente:

git push -u origin dev
AWS DevOps
OperazioneDescriptionCompetenze richieste

Passa alla directory terraform-deployment .

Per accedere alla terraform-deployment directory diASC-Datasets, esegui il seguente comando:

cd ASC-Datasets/terraform-deployment
AWS DevOps

Configura il bucket Amazon S3 dello stato Terraform.

Per configurare il bucket Amazon S3 dello stato Terraform, usa lo script seguente:

# Setup terraform bucket chmod +x ../scripts/setup-terraform.sh ../scripts/setup-terraform.sh
AWS DevOps

Configura il bucket Terraform Artifacts Amazon S3.

Per configurare il bucket Terraform Artifacts Amazon S3, usa lo script seguente:

# Setup terraform artifacts bucket chmod +x ../scripts/setup-terraform-artifacts-bucket.sh ../scripts/setup-terraform-artifacts-bucket.sh
AWS DevOps

Configura il backend Terraform e la configurazione dei provider.

Per configurare il backend Terraform e la configurazione dei provider, utilizza il seguente 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

Genera un piano di distribuzione.

Per generare un piano di distribuzione, esegui i seguenti comandi:

# 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

Implementa le configurazioni.

Per distribuire le configurazioni, esegui il comando seguente:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Aggiorna altre configurazioni e archivia gli output.

Per aggiornare le politiche AWS KMS chiave e archiviare gli output delle configurazioni applicate nel bucket Terraform Artifacts Amazon S3, esegui i seguenti comandi:

# 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
OperazioneDescriptionCompetenze richieste

Passa alla directory terraform-deployment.

Per accedere alla terraform-deployment directory diASC-Integration-Flows, esegui il seguente comando:

cd ASC-Integration-Flows/terraform-deployment
AWS DevOps

Configura il backend Terraform e la configurazione dei provider.

Per configurare il backend Terraform e le configurazioni del provider, utilizza il seguente 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

Genera un piano di distribuzione.

Per generare un piano di distribuzione, esegui i comandi seguenti. Questi comandi inizializzano l'ambiente Terraform, uniscono le variabili di configurazione ASC-Datasets con le configurazioni Terraform esistenti e generano un piano di implementazione.

# 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

Implementa le configurazioni.

Per distribuire le configurazioni, esegui il comando seguente:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Aggiorna altre configurazioni.

Per aggiornare le politiche AWS KMS chiave e archiviare gli output delle configurazioni applicate nel bucket Terraform Artifacts Amazon S3, esegui i seguenti comandi:

# 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
OperazioneDescriptionCompetenze richieste

Carica file CSV di esempio.

Per caricare file CSV di esempio per i set di dati, procedi nel seguente modo:

  1. Crea file CSV di esempio con vari dati per i set di dati Calendar e Outbound Order Line creati durante la distribuzione.

  2. Recupera l'ID dell' Catena di approvvigionamento di AWS istanza asc_instance_id dalla directory degli output di terraform.

  3. Nota il nome del bucket Amazon S3 per il quale è stato creato Catena di approvvigionamento di AWS durante la distribuzione: aws-supply-chain-data-<Instance_ID>

  4. Per caricare i file utilizzando il AWS CLI, esegui i seguenti comandi:

    # 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/
Ingegnere dei dati
OperazioneDescriptionCompetenze richieste

Configura Catena di approvvigionamento di AWS l'accesso.

Per configurare Catena di approvvigionamento di AWS l'accesso da Console di gestione AWS, procedi nel seguente modo:

  1. Accedi a Console di gestione AWS e cerca il Catena di approvvigionamento di AWS servizio.

  2. Vai all'istanzaasc-deployment-poc-dev-asc-instance.

  3. Questo modello utilizza IAM Identity Center per gestire l'accesso degli utenti all' Catena di approvvigionamento di AWS istanza. Per garantire l'accesso completo a questa soluzione, accedi come amministratore dell'applicazione.

Proprietario dell'app
OperazioneDescriptionCompetenze richieste

Attiva il flusso di lavoro Destroy per le risorse dei flussi di integrazione.

Attiva il flusso di lavoro di distruzione ASC-Integration-Flows dal tuo ramo di distribuzione GitHub all'interno dell'organizzazione.

AWS DevOps

Attiva il flusso di lavoro di distruzione delle risorse dei set di dati.

Attiva il flusso di lavoro di distruzione ASC-Datasets dal tuo ramo di distribuzione all'interno GitHub dell'organizzazione.

AWS DevOps
OperazioneDescriptionCompetenze richieste

Passa alla directory terraform-deployment.

Per accedere alla terraform-deployment directory diASC-Integration-Flows, esegui il seguente comando:

cd ASC-Integration-Flows/terraform-deployment
AWS DevOps

Configura il backend Terraform e la configurazione dei provider.

Per configurare il backend Terraform e la configurazione dei provider, utilizza il seguente 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

Genera un piano di distruzione dell'infrastruttura.

Per prepararti alla distruzione controllata dell' AWS infrastruttura generando un piano di smontaggio dettagliato, esegui i seguenti comandi. Il processo inizializza Terraform, incorpora le configurazioni Catena di approvvigionamento di AWS dei set di dati e crea un piano di distruzione che è possibile esaminare prima dell'esecuzione.

# 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

Esegui un piano di distruzione dell'infrastruttura.

Per eseguire la distruzione pianificata dell'infrastruttura, esegui il seguente comando:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Rimuovi gli output Terraform dal bucket Amazon S3.

Per rimuovere il file di output che è stato caricato durante la distribuzione diASC-Integration-Flows, esegui il seguente comando:

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

Passa alla directory terraform-deployment.

Per accedere alla terraform-deployment directory diASC-Datasets, esegui il seguente comando:

cd ASC-Datasets/terraform-deployment
AWS DevOps

Configura il backend Terraform e la configurazione dei provider.

Per configurare il backend Terraform e la configurazione dei provider, utilizza il seguente 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

Genera un piano di distruzione dell'infrastruttura.

Per creare un piano per la distruzione delle risorse del Catena di approvvigionamento di AWS set di dati, esegui i seguenti comandi:

# 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

Bucket Amazon S3 vuoti.

Per svuotare tutti i bucket Amazon S3 (tranne il bucket di registrazione degli accessi al server, che è configurato perforce-destroy), usa lo script seguente:

# Delete S3 buckets excluding server access logging bucket chmod +x ../scripts/empty-s3-buckets.sh ../scripts/empty-s3-buckets.sh tfplan.out
AWS DevOps

Esegui un piano di distruzione dell'infrastruttura.

Per eseguire la distruzione pianificata dell'infrastruttura del Catena di approvvigionamento di AWS set di dati utilizzando il piano generato, esegui il comando seguente:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Rimuovi gli output Terraform dal bucket di artefatti Terraform di Amazon S3.

Per completare il processo di pulizia, rimuovi il file di output che è stato caricato durante la distribuzione di eseguendo il comando seguente: ASC-Datasets

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

Risoluzione dei problemi

ProblemaSoluzione

Un Catena di approvvigionamento di AWS set di dati o un flusso di integrazione non è stato distribuito correttamente a causa di errori Catena di approvvigionamento di AWS interni o autorizzazioni IAM insufficienti per il ruolo di servizio.

Innanzitutto, pulisci tutte le risorse. Quindi, ridistribuisci le risorse del Catena di approvvigionamento di AWSset di dati e quindi ridistribuisci le risorse del flusso di integrazione. Catena di approvvigionamento di AWS

Il flusso di Catena di approvvigionamento di AWS integrazione non recupera i nuovi file di dati caricati per i set di dati. Catena di approvvigionamento di AWS

  1. Verifica che il prefisso della configurazione del flusso di Catena di approvvigionamento di AWS integrazione corrisponda al prefisso utilizzato durante il caricamento dei file di dati di esempio.

  2. Se le risorse per Catena di approvvigionamento di AWS i set di dati sono state ricreate, gli Amazon Resource Names (ARNs) associati cambiano internamente. Pertanto, ridistribuisci le risorse per le risorse dei flussi di integrazione dei Catena di approvvigionamento di AWS servizi.

Risorse correlate

AWS documentazione

Altre risorse

Informazioni aggiuntive

Questa soluzione può essere replicata per più set di dati e può essere interrogata per ulteriori analisi, tramite dashboard predefiniti forniti o integrazione Catena di approvvigionamento di AWS personalizzata con Amazon Quick Sight. Inoltre, puoi utilizzare Amazon Q per porre domande relative alla tua Catena di approvvigionamento di AWS istanza.

Analizza i dati con Catena di approvvigionamento di AWS Analytics

Per istruzioni su come configurare Catena di approvvigionamento di AWS Analytics, consulta Impostazione di Catena di approvvigionamento di AWS Analytics nella Catena di approvvigionamento di AWS documentazione.

Questo modello ha dimostrato la creazione di set di dati Calendar e Outbound_Order_Line. Per creare un'analisi che utilizzi questi set di dati, procedi nel seguente modo:

  1. Per analizzare i set di dati, utilizza la dashboard di Seasonality Analysis. Per aggiungere la dashboard, segui i passaggi in Dashboard predefiniti nella documentazione. Catena di approvvigionamento di AWS

  2. Scegli la dashboard per visualizzarne l'analisi basata su file CSV di esempio per i dati del calendario e i dati della linea degli ordini in uscita.

La dashboard fornisce informazioni sulla domanda nel corso degli anni sulla base dei dati acquisiti per i set di dati. È possibile specificare ulteriormente ProductID, CustomerId, years e altri parametri per l'analisi.

Usa Amazon Q per porre domande relative alla tua Catena di approvvigionamento di AWS istanza

Amazon Q in Catena di approvvigionamento di AWS è un assistente AI generativo interattivo che ti aiuta a gestire la catena di approvvigionamento in modo più efficiente. Amazon Q può fare quanto segue:

  • Analizza i dati nel tuo Catena di approvvigionamento di AWS data lake.

  • Fornisci informazioni operative e finanziarie.

  • Rispondi alle tue domande immediate sulla catena di fornitura.

Per ulteriori informazioni sull'uso di Amazon Q, consulta la sezione Attivazione di Amazon Q in Catena di approvvigionamento di AWS e Uso di Amazon Q Catena di approvvigionamento di AWS nella Catena di approvvigionamento di AWS documentazione.