View a markdown version of this page

Automatisez le déploiement de lacs de AWS Supply Chain données dans une configuration multi-référentiels à l'aide d' GitHub Actions, Artifactory et Terraform - Recommandations AWS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Automatisez le déploiement de lacs de AWS Supply Chain données dans une configuration multi-référentiels à l'aide d' GitHub Actions, Artifactory et Terraform

Keshav Ganesh, Amazon Web Services

Résumé

Ce modèle fournit une approche automatisée pour le déploiement et la gestion des lacs de AWS Supply Chain données à l'aide d'une intégration continue multi-référentiels et de fonctionnalités de déploiement continu (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/CDfonctionnalités).

La solution s'appuie sur AWS Supply Chain Amazon Simple Storage Service (Amazon S3) pour établir l'infrastructure du lac de données, tout en utilisant l'une ou l'autre des méthodes de déploiement pour automatiser la configuration et la création de ressources. AWS Lambda Cette automatisation élimine les étapes de configuration manuelles et garantit des déploiements cohérents dans tous les environnements. En outre, il AWS Supply Chain élimine le besoin d'une expertise approfondie en matière d'extraction, de transformation et de chargement (ETL) et peut fournir des informations et des analyses basées sur Amazon Quick Sight.

En mettant en œuvre ce modèle, les entreprises peuvent réduire le temps de déploiement, maintenir l'infrastructure sous forme de code et gérer les lacs de données de la chaîne d'approvisionnement grâce à un processus automatisé contrôlé par version. L'approche multi-référentiels fournit un contrôle d'accès précis et permet le déploiement indépendant de différents composants. Les équipes peuvent choisir la méthode de déploiement la mieux adaptée à leurs outils et processus existants.

Conditions préalables et limitations

Conditions préalables

Assurez-vous que les éléments suivants sont installés sur votre ordinateur local :

Assurez-vous que les éléments suivants sont en place avant le déploiement :

  • Un actif Compte AWS.

  • Un cloud privé virtuel (VPC) avec deux sous-réseaux privés Compte AWS dans l'espace Région AWS de votre choix.

  • Autorisations suffisantes pour le rôle Gestion des identités et des accès AWS (IAM) utilisé pour le déploiement vers les services suivants :

    • AWS Supply Chain — L'accès complet est préféré pour déployer ses composants tels que les ensembles de données et les flux d'intégration, ainsi que pour y accéder depuis le AWS Management Console.

    • Amazon CloudWatch Logs : pour créer et gérer des groupes de CloudWatch journaux.

    • Amazon Elastic Compute Cloud (Amazon EC2) — Pour les groupes de sécurité Amazon EC2 et les points de terminaison Amazon Virtual Private Cloud (Amazon VPC).

    • Amazon EventBridge — À utiliser par AWS Supply Chain.

    • IAM — Pour créer des rôles AWS Lambda de service.

    • AWS Key Management Service (AWS KMS) — Pour accéder au compartiment d'artefacts AWS KMS keys utilisé pour le compartiment d'artefacts Amazon S3 et le compartiment AWS Supply Chain intermédiaire Amazon S3.

    • AWS Lambda — Pour créer les fonctions Lambda qui déploient les AWS Supply Chain composants.

    • Amazon S3 — Pour accéder au compartiment d'artefacts Amazon S3, au compartiment de journalisation des accès au serveur et au AWS Supply Chain compartiment intermédiaire. Si vous utilisez le déploiement manuel, les autorisations pour le compartiment d'artefacts Amazon S3 Terraform sont également requises.

    • Amazon VPC — Pour créer et gérer un VPC.

Si vous préférez utiliser les flux de travail GitHub Actions pour le déploiement, procédez comme suit :

Si vous préférez effectuer un déploiement manuel, procédez comme suit :

Si vous préférez utiliser les flux de travail GitHub Actions pour le déploiement, configurez les éléments suivants :

Limites

  • L' AWS Supply Chain instance ne prend pas en charge les techniques de transformation de données complexes.

  • AWS Supply Chain est particulièrement adapté aux domaines de la chaîne d'approvisionnement car il fournit des analyses et des informations intégrées. Pour tout autre domaine, il AWS Supply Chain peut être utilisé comme magasin de données dans le cadre de l'architecture du lac de données.

  • Les fonctions Lambda utilisées dans cette solution devront peut-être être améliorées pour gérer les nouvelles tentatives d'API et la gestion de la mémoire dans le cadre d'un déploiement à l'échelle de la production.

  • Certains Services AWS ne sont pas disponibles du tout Régions AWS. Pour connaître la disponibilité par région, consultez la section AWS Services par région. Pour des points de terminaison spécifiques, consultez Points de terminaison de service et quotas, puis choisissez le lien correspondant au service.

Architecture

Vous pouvez déployer cette solution soit à l'aide de flux de travail GitHub Actions automatisés, soit manuellement à l'aide de Terraform.

Déploiement automatisé avec des GitHub actions

Le schéma suivant montre l'option de déploiement automatique qui utilise les flux de travail GitHub Actions. JFrog Artifactory est utilisé pour la gestion des artefacts. Il stocke les informations sur les ressources et les sorties à utiliser dans le cadre d'un déploiement multi-référentiels.

Option de déploiement automatique qui utilise les flux de travail GitHub Actions et JFrog.

Déploiement manuel avec Terraform

Le schéma suivant montre l'option de déploiement manuel via Terraform. Au lieu d' JFrog Artifactory, Amazon S3 est utilisé pour la gestion des artefacts.

Option de déploiement manuel à l'aide de Terraform et Amazon S3.

Flux de travail de déploiement

Les diagrammes montrent le flux de travail suivant :

  1. Déployez l'infrastructure des ensembles de données de AWS Supply Chain service et les bases de données à l'aide de l'une des méthodes de déploiement suivantes :

    • Déploiement automatisé : utilise GitHub les flux de travail Actions pour orchestrer toutes les étapes de déploiement et utilise JFrog Artifactory pour la gestion des artefacts.

    • Déploiement manuel : exécute les commandes Terraform directement pour chaque étape de déploiement et utilise Amazon S3 pour la gestion des artefacts.

  2. Créez les AWS ressources de support nécessaires au fonctionnement AWS Supply Chain du service :

    • Points de terminaison et groupes de sécurité Amazon VPC

    • AWS KMS keys

    • CloudWatch Logs, journaux, groupes

  3. Créez et déployez les ressources d'infrastructure suivantes :

    • Fonctions Lambda qui gèrent (créent, mettent à jour et suppriment) l'instance de AWS Supply Chain service, les espaces de noms et les ensembles de données.

    • AWS Supply Chain préparation du compartiment Amazon S3 pour l'ingestion de données

  4. Déployez la fonction Lambda qui gère les flux d'intégration entre le bucket intermédiaire et AWS Supply Chain les ensembles de données. Une fois le déploiement terminé, les étapes restantes du flux de travail gèrent l'ingestion et l'analyse des données.

  5. Configurez l'ingestion des données sources dans AWS Supply Chain le compartiment Amazon S3 intermédiaire.

  6. Une fois les données ajoutées au compartiment AWS Supply Chain Amazon S3 intermédiaire, le service déclenche automatiquement le flux d'intégration vers les AWS Supply Chain ensembles de données.

  7. AWS Supply Chain s'intègre à Quick Sight Analytics pour produire des tableaux de bord basés sur les données ingérées.

Outils

Services AWS

  • Amazon CloudWatch Logs vous aide à centraliser les journaux de tous vos systèmes et applications, Services AWS afin que vous puissiez les surveiller et les archiver en toute sécurité.

  • AWS Command Line Interface (AWS CLI) est un outil open source qui vous permet d'interagir Services AWS par le biais de commandes dans votre interface de ligne de commande.

  • Amazon Elastic Compute Cloud (Amazon EC2) offre une capacité de calcul évolutive dans l' AWS Cloud. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les augmenter ou les diminuer rapidement.

  • Amazon EventBridge est un service de bus d'événements sans serveur qui vous permet de connecter vos applications à des données en temps réel provenant de diverses sources. Par exemple, AWS Lambda des fonctions, des points de terminaison d'appel HTTP utilisant des destinations d'API ou des bus d'événements dans d'autres. Comptes AWS

  • Gestion des identités et des accès AWS (IAM) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.

  • AWS IAM Identity Centervous permet de gérer de manière centralisée l'accès par authentification unique (SSO) à toutes vos applications Comptes AWS et à celles du cloud.

  • AWS Key Management Service (AWS KMS) vous aide à créer et à contrôler des clés cryptographiques afin de protéger vos données.

  • AWS Lambda est un service de calcul qui vous aide à exécuter du code sans avoir à allouer ni à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez.

  • Amazon Q in AWS Supply Chain est un assistant d'intelligence artificielle générative interactif qui vous aide à gérer votre chaîne d'approvisionnement de manière plus efficace en analysant les données de votre lac de AWS Supply Chain données.

  • Amazon Quick Sight est un service de business intelligence (BI) à l'échelle du cloud qui vous permet de visualiser, d'analyser et de rapporter vos données dans un tableau de bord unique.

  • Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.

  • AWS Supply Chainest une application gérée dans le cloud qui peut être utilisée comme magasin de données dans les organisations pour les domaines de la chaîne d'approvisionnement, qui peut être utilisée pour générer des informations et effectuer des analyses sur les données ingérées.

  • Amazon Virtual Private Cloud (Amazon VPC) vous aide à lancer AWS des ressources dans un réseau virtuel que vous avez défini. Ce réseau virtuel ressemble à un réseau traditionnel que vous pourriez exécuter dans votre propre centre de données et présente l'avantage d'utiliser l'infrastructure évolutive d' AWS. Un point de terminaison Amazon VPC est un appareil virtuel qui vous permet de connecter de manière privée votre VPC à un service compatible Services AWS sans avoir besoin d'une passerelle Internet, d'un appareil NAT, d'une connexion VPN ou d'une connexion. AWS Direct Connect

Autres outils

  • GitHub Actions est une plateforme d'intégration et de livraison continues (CI/CD) étroitement intégrée aux GitHub référentiels. Vous pouvez utiliser GitHub les actions pour automatiser votre pipeline de création, de test et de déploiement.

  • HashiCorp Terraform est un outil d'infrastructure en tant que code (IaC) qui vous aide à créer et à gérer des ressources sur site et dans le cloud.

  • JFrog Artifactory assure end-to-end l'automatisation et la gestion des fichiers binaires et des artefacts tout au long du processus de livraison des applications.

  • Python est un langage de programmation informatique polyvalent. Ce modèle utilise Python pour que le code de la AWS fonction interagisse avec AWS Supply Chain

    .

Bonnes pratiques

Épopées

Sous-tâcheDescriptionCompétences requises

Pour cloner le référentiel.

Pour cloner le dépôt de ce modèle, exécutez la commande suivante sur votre station de travail locale :

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

(Option automatique) Vérifiez les conditions préalables au déploiement.

Assurez-vous que les conditions préalables sont remplies pour le déploiement automatique.

Propriétaire de l'application

(Option manuelle) Préparez le déploiement des AWS Supply Chain ensembles de données.

Pour accéder au terraform-deployment répertoire deASC-Datasets, exécutez la commande suivante :

cd ASC-Datasets/terraform-deployment

Pour assumer le rôle ARN créé dans les prérequis, exécutez la commande suivante :

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

Pour configurer et exporter les variables d'environnement, exécutez les commandes suivantes :

# 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

(Option manuelle) Préparez-vous à gérer les flux AWS Supply Chain d'intégration lors du déploiement.

Pour accéder au terraform-deployment répertoire deASC-Integration-Flows, exécutez la commande suivante :

cd ASC-Integration-Flows/terraform-deployment

Pour assumer le rôle ARN créé précédemment, exécutez la commande suivante :

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

Pour configurer et exporter les variables d'environnement, exécutez les commandes suivantes :

# 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"
Propriétaire de l'application
Sous-tâcheDescriptionCompétences requises

Copiez le ASC-Datasets répertoire.

Pour copier le ASC-Datasets répertoire vers un nouvel emplacement, procédez comme suit :

  1. Pour accéder au ASC-Datasets répertoire, exécutez la commande suivante :

    cd ASC-Datasets
  2. Pour copier le ASC-Datasets répertoire vers un nouvel emplacement, exécutez les commandes suivantes :

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

Configurez le ASC-Datasets répertoire.

Pour le configurer ASC-Datasets en tant que référentiel autonome dans votre organisation, exécutez les commandes suivantes :

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

Configurez le nom de la branche dans le fichier de flux de travail .github.

Configurez le nom de la branche dans le fichier du flux de travail de déploiement comme indiqué dans l'exemple suivant :

on: workflow_dispatch: push: branches: - dev #Change to any other branch preferred for deployment
Propriétaire de l'application

Configurez GitHub des environnements et configurez les valeurs d'environnement.

Pour configurer GitHub des environnements dans votre GitHub organisation, suivez les instructions de la section Configuration GitHub des environnements dans le référentiel de ce modèle.

Pour configurer les valeurs d'environnement dans les fichiers de flux de travail, suivez les instructions de la section Configuration des valeurs d'environnement dans les fichiers de flux de travail du référentiel de ce modèle.

Propriétaire de l'application

Déclenchez le flux de travail.

Pour appliquer vos modifications à votre GitHub organisation et déclencher le flux de travail de déploiement, exécutez la commande suivante :

git push -u origin dev
AWS DevOps
Sous-tâcheDescriptionCompétences requises

Copiez le ASC-Integration-Flows répertoire.

Pour copier le ASC-Integration-Flows répertoire vers un nouvel emplacement, procédez comme suit :

  1. Pour accéder au ASC-Integration-Flows répertoire, exécutez la commande suivante :

    cd ASC-Integration-Flows
  2. Pour copier le ASC-Integration-Flows répertoire vers un nouvel emplacement, exécutez les commandes suivantes :

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

Configurez le ASC-Integration-Flows répertoire.

Pour configurer le ASC-Integration-Flows répertoire en tant que référentiel autonome dans votre organisation, exécutez les commandes suivantes :

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

Configurez le nom de la branche dans le fichier de flux de travail .github.

Configurez le nom de la branche dans le fichier du flux de travail de déploiement comme indiqué dans l'exemple suivant :

on: workflow_dispatch: push: branches: - dev #Change to any other branch preferred for deployment
Propriétaire de l'application

Configurez GitHub des environnements et configurez les valeurs d'environnement.

Pour configurer GitHub des environnements dans votre GitHub organisation, suivez les instructions de la section Configuration GitHub des environnements dans le référentiel de ce modèle.

Pour configurer les valeurs d'environnement dans les fichiers de flux de travail, suivez les instructions de la section Configuration des valeurs d'environnement dans les fichiers de flux de travail du référentiel de ce modèle.

Propriétaire de l'application

Déclenchez le flux de travail.

Pour appliquer vos modifications à votre GitHub organisation et déclencher le flux de travail de déploiement, exécutez la commande suivante :

git push -u origin dev
AWS DevOps
Sous-tâcheDescriptionCompétences requises

Accédez au répertoire terraform-deployment .

Pour accéder au terraform-deployment répertoire deASC-Datasets, exécutez la commande suivante :

cd ASC-Datasets/terraform-deployment
AWS DevOps

Configurez le compartiment Amazon S3 d'état Terraform.

Pour configurer le compartiment Amazon S3 d'état Terraform, utilisez le script suivant :

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

Configurez le compartiment Amazon S3 des artefacts Terraform.

Pour configurer le compartiment Amazon S3 des artefacts Terraform, utilisez le script suivant :

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

Configurez le backend Terraform et la configuration des fournisseurs.

Pour configurer le backend Terraform et la configuration des fournisseurs, utilisez le script suivant :

# 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

Générez un plan de déploiement.

Pour générer un plan de déploiement, exécutez les commandes suivantes :

# 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

Déployez les configurations.

Pour déployer les configurations, exécutez la commande suivante :

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Mettez à jour les autres configurations et stockez les sorties.

Pour mettre à jour les politiques AWS KMS clés et stocker les sorties de configuration appliquées dans le compartiment Amazon S3 des artefacts Terraform, exécutez les commandes suivantes :

# 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
Sous-tâcheDescriptionCompétences requises

Accédez au répertoire terraform-deployment.

Pour accéder au terraform-deployment répertoire deASC-Integration-Flows, exécutez la commande suivante :

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

Configurez le backend Terraform et la configuration des fournisseurs.

Pour configurer les configurations du backend et du fournisseur Terraform, utilisez le script suivant :

# 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

Générez un plan de déploiement.

Pour générer un plan de déploiement, exécutez les commandes suivantes. Ces commandes initialisent votre environnement Terraform, fusionnent les variables de configuration ASC-Datasets avec vos configurations Terraform existantes et génèrent un plan de déploiement.

# 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

Déployez les configurations.

Pour déployer les configurations, exécutez la commande suivante :

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Mettez à jour les autres configurations.

Pour mettre à jour les politiques AWS KMS clés et stocker les sorties de configuration appliquées dans le compartiment Amazon S3 des artefacts Terraform, exécutez les commandes suivantes :

# 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
Sous-tâcheDescriptionCompétences requises

Téléchargez des exemples de fichiers CSV.

Pour télécharger des exemples de fichiers CSV pour les ensembles de données, procédez comme suit :

  1. Créez des exemples de fichiers CSV contenant des données variées pour les ensembles de données de calendrier et de lignes de commande sortantes créés lors du déploiement.

  2. Récupérez l'ID de l' AWS Supply Chain instance dans le asc_instance_id répertoire des sorties de terraform.

  3. Notez que le nom du compartiment Amazon S3 correspondant AWS Supply Chain a été créé lors du déploiement : aws-supply-chain-data-<Instance_ID>

  4. Pour télécharger les fichiers à l'aide du AWS CLI, exécutez les commandes suivantes :

    # 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/
Ingénieur de données
Sous-tâcheDescriptionCompétences requises

Configurez AWS Supply Chain l'accès.

Pour configurer AWS Supply Chain l'accès depuis le AWS Management Console, procédez comme suit :

  1. Connectez-vous au AWS Management Console et recherchez le AWS Supply Chain service.

  2. Accédez à l'instanceasc-deployment-poc-dev-asc-instance.

  3. Ce modèle utilise IAM Identity Center pour gérer l'accès des utilisateurs à l' AWS Supply Chain instance. Pour garantir un accès complet à cette solution, connectez-vous en tant qu'administrateur de l'application.

Propriétaire de l'application
Sous-tâcheDescriptionCompétences requises

Déclenchez le flux de travail de destruction des ressources des flux d'intégration.

Déclenchez le flux de travail de destruction ASC-Integration-Flows depuis la succursale de déploiement de votre GitHub organisation.

AWS DevOps

Déclenchez le flux de travail de destruction des ressources des ensembles de données.

Déclenchez le flux de travail de destruction ASC-Datasets depuis la succursale de déploiement de votre GitHub organisation.

AWS DevOps
Sous-tâcheDescriptionCompétences requises

Accédez au répertoire terraform-deployment.

Pour accéder au terraform-deployment répertoire deASC-Integration-Flows, exécutez la commande suivante :

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

Configurez le backend Terraform et la configuration des fournisseurs.

Pour configurer le backend Terraform et la configuration des fournisseurs, utilisez le script suivant :

# 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

Générez un plan de destruction de l'infrastructure.

Pour préparer la destruction contrôlée de votre AWS infrastructure en générant un plan de démontage détaillé, exécutez les commandes suivantes. Le processus initialise Terraform, intègre les configurations de AWS Supply Chain jeux de données et crée un plan de destruction que vous pouvez consulter avant de l'exécuter.

# 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

Exécutez le plan de destruction de l'infrastructure.

Pour exécuter la destruction planifiée de votre infrastructure, exécutez la commande suivante :

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Supprimez les sorties Terraform du compartiment Amazon S3.

Pour supprimer le fichier de sortie qui a été chargé lors du déploiement deASC-Integration-Flows, exécutez la commande suivante :

# Delete the outputs file aws s3 rm s3://$S3_TERRAFORM_ARTIFACTS_BUCKET_NAME/$REPO_NAME-outputs.tfvars
AWS DevOps
Sous-tâcheDescriptionCompétences requises

Accédez au répertoire terraform-deployment.

Pour accéder au terraform-deployment répertoire deASC-Datasets, exécutez la commande suivante :

cd ASC-Datasets/terraform-deployment
AWS DevOps

Configurez le backend Terraform et la configuration des fournisseurs.

Pour configurer le backend Terraform et la configuration des fournisseurs, utilisez le script suivant :

# 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

Générez un plan de destruction de l'infrastructure.

Pour créer un plan de destruction des ressources du AWS Supply Chain jeu de données, exécutez les commandes suivantes :

# 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

Compartiments Amazon S3 vides.

Pour vider tous les compartiments Amazon S3 (à l'exception du compartiment de journalisation des accès au serveur, qui est configuré pourforce-destroy), utilisez le script suivant :

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

Exécutez le plan de destruction de l'infrastructure.

Pour exécuter la destruction planifiée de votre infrastructure de jeux de AWS Supply Chain données à l'aide du plan généré, exécutez la commande suivante :

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Supprimez les sorties Terraform du compartiment d'artefacts Amazon S3 Terraform.

Pour terminer le processus de nettoyage, supprimez le fichier de sortie qui a été chargé lors du déploiement de ASC-Datasets en exécutant la commande suivante :

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

Résolution des problèmes

ProblèmeSolution

Un AWS Supply Chain ensemble de données ou un flux d'intégration n'a pas été déployé correctement en raison d'erreurs AWS Supply Chain internes ou d'autorisations IAM insuffisantes pour le rôle de service.

Tout d'abord, nettoyez toutes les ressources. Redéployez ensuite les ressources du AWS Supply Chain jeu de données, puis redéployez les ressources du flux AWS Supply Chain d'intégration.

Le flux AWS Supply Chain d'intégration ne récupère pas les nouveaux fichiers de données chargés pour les AWS Supply Chain ensembles de données.

  1. Vérifiez que le préfixe de la configuration du flux AWS Supply Chain d'intégration correspond au préfixe utilisé lors du téléchargement des exemples de fichiers de données.

  2. Si les ressources des AWS Supply Chain ensembles de données ont été recréées, les noms de ressources Amazon associés (ARNs) sont modifiés en interne. Par conséquent, redéployez les ressources pour les ressources des flux d'intégration des AWS Supply Chain services.

Ressources connexes

AWS documentation

Autres ressources

Informations supplémentaires

Cette solution peut être répliquée pour un plus grand nombre d'ensembles de données et peut être interrogée pour une analyse plus approfondie, via des tableaux de bord prédéfinis fournis ou une intégration AWS Supply Chain personnalisée avec Amazon Quick Sight. En outre, vous pouvez utiliser Amazon Q pour poser des questions relatives à votre AWS Supply Chain instance.

Analyser les données avec AWS Supply Chain Analytics

Pour obtenir des instructions sur la configuration AWS Supply Chain d'Analytics, consultez la section Configuration AWS Supply Chain d'Analytics dans la AWS Supply Chain documentation.

Ce modèle a démontré la création des ensembles de données Calendar et Outbound_Order_Line. Pour créer une analyse utilisant ces ensembles de données, procédez comme suit :

  1. Pour analyser les ensembles de données, utilisez le tableau de bord d'analyse de la saisonnalité. Pour ajouter le tableau de bord, suivez les étapes décrites dans la section Tableaux de bord prédéfinis de la AWS Supply Chain documentation.

  2. Choisissez le tableau de bord pour voir son analyse basée sur des exemples de fichiers CSV pour les données du calendrier et les données des lignes de commande sortantes.

Le tableau de bord fournit des informations à la demande au fil des ans sur la base des données ingérées pour les ensembles de données. Vous pouvez également spécifier le ProductID, le CustomerID, les années et d'autres paramètres pour l'analyse.

Utilisez Amazon Q pour poser des questions relatives à votre AWS Supply Chain instance

Amazon Q in AWS Supply Chain est un assistant IA génératif interactif qui vous aide à gérer votre chaîne d'approvisionnement de manière plus efficace. Amazon Q peut effectuer les opérations suivantes :

  • Analysez les données de votre lac AWS Supply Chain de données.

  • Fournissez des informations opérationnelles et financières.

  • Répondez à vos questions immédiates sur la chaîne d'approvisionnement.

Pour plus d'informations sur l'utilisation d'Amazon Q, consultez les sections Activation d'Amazon Q dans AWS Supply Chain et Utilisation d'Amazon Q AWS Supply Chain dans la AWS Supply Chain documentation.