View a markdown version of this page

Automatisieren Sie die Bereitstellung von AWS Supply Chain Data Lakes in einem Multi-Repository-Setup mithilfe von GitHub Actions, Artifactory und Terraform - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Automatisieren Sie die Bereitstellung von AWS Supply Chain Data Lakes in einem Multi-Repository-Setup mithilfe von GitHub Actions, Artifactory und Terraform

Keshav Ganesh, Amazon Web Services

Zusammenfassung

Dieses Muster bietet einen automatisierten Ansatz für die Bereitstellung und Verwaltung von AWS Supply Chain Data Lakes unter Verwendung von Funktionen für kontinuierliche Integration und kontinuierliche Bereitstellung mit mehreren Repositorys. 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

Die Lösung nutzt AWS Supply Chain AWS Lambda, und Amazon Simple Storage Service (Amazon S3), um die Data-Lake-Infrastruktur einzurichten, und verwendet gleichzeitig beide Bereitstellungsmethoden, um die Konfiguration und Ressourcenerstellung zu automatisieren. Diese Automatisierung macht manuelle Konfigurationsschritte überflüssig und gewährleistet konsistente Bereitstellungen in allen Umgebungen. Darüber hinaus AWS Supply Chain entfällt der Bedarf an fundiertem Fachwissen in den Bereichen Extrahieren, Transformieren und Laden (ETL) und bietet Einblicke und Analysen auf der Grundlage von Amazon Quick Sight.

Durch die Implementierung dieses Musters können Unternehmen die Bereitstellungszeit reduzieren, die Infrastruktur als Code verwalten und Data Lakes in der Lieferkette mithilfe eines versionskontrollierten, automatisierten Prozesses verwalten. Der Ansatz mit mehreren Repositorys bietet eine detaillierte Zugriffskontrolle und unterstützt die unabhängige Bereitstellung verschiedener Komponenten. Teams können die Bereitstellungsmethode wählen, die am besten zu ihren vorhandenen Tools und Prozessen passt.

Voraussetzungen und Einschränkungen

Voraussetzungen

Stellen Sie sicher, dass auf Ihrem lokalen Computer Folgendes installiert ist:

Stellen Sie vor der Bereitstellung sicher, dass Folgendes vorhanden ist:

  • Ein aktiver AWS-Konto.

  • Eine virtuelle private Cloud (VPC) mit zwei privaten Subnetzen in AWS-Konto einem Ihrer AWS-Region Wahl.

  • Ausreichende Berechtigungen für die AWS Identity and Access Management (IAM) -Rolle, die für die Bereitstellung in den folgenden Diensten verwendet wird:

    • AWS Supply Chain — Voller Zugriff wird bevorzugt für die Bereitstellung seiner Komponenten wie Datensätze und Integrationsabläufe sowie für den Zugriff über. AWS-Managementkonsole

    • Amazon CloudWatch Logs — Zum Erstellen und Verwalten von CloudWatch Protokollgruppen.

    • Amazon Elastic Compute Cloud (Amazon EC2) — Für Amazon EC2-Sicherheitsgruppen und Amazon Virtual Private Cloud (Amazon VPC) -Endpunkte.

    • Amazon EventBridge — Zur Verwendung durch AWS Supply Chain.

    • IAM — Zum Erstellen von AWS Lambda Servicerollen.

    • AWS Key Management Service (AWS KMS) — Für den Zugriff auf den für Amazon S3 AWS KMS keys verwendeten Artefakt-Bucket und den Amazon S3 AWS Supply Chain S3-Staging-Bucket.

    • AWS Lambda — Für die Erstellung der Lambda-Funktionen, die die AWS Supply Chain Komponenten bereitstellen.

    • Amazon S3 — Für den Zugriff auf den Amazon S3 S3-Artefakt-Bucket, den Server-Zugriffs-Logging-Bucket und den AWS Supply Chain Staging-Bucket. Wenn Sie die manuelle Bereitstellung verwenden, sind auch Berechtigungen für den Amazon S3 S3-Bucket für Terraform-Artefakte erforderlich.

    • Amazon VPC — Zum Erstellen und Verwalten einer VPC.

Wenn Sie es vorziehen, GitHub Aktions-Workflows für die Bereitstellung zu verwenden, gehen Sie wie folgt vor:

Wenn Sie eine manuelle Bereitstellung bevorzugen, gehen Sie wie folgt vor:

Wenn Sie es vorziehen, GitHub Aktions-Workflows für die Bereitstellung zu verwenden, richten Sie Folgendes ein:

Einschränkungen

  • Die AWS Supply Chain Instanz unterstützt keine komplexen Datentransformationstechniken.

  • AWS Supply Chain eignet sich am besten für Supply-Chain-Bereiche, da es integrierte Analysen und Einblicke bietet. AWS Supply Chain Kann für jede andere Domäne als Datenspeicher als Teil der Data-Lake-Architektur verwendet werden.

  • Die in dieser Lösung verwendeten Lambda-Funktionen müssen möglicherweise erweitert werden, um API-Wiederholungen und Speicherverwaltung in einer Bereitstellung im Produktionsmaßstab zu handhaben.

  • Einige AWS-Services sind nicht in allen verfügbar. AWS-Regionen Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie unter AWS Dienste nach Regionen. Informationen zu bestimmten Endpunkten finden Sie unter Dienstendpunkte und Kontingente. Wählen Sie dort den Link für den Dienst aus.

Architektur

Sie können diese Lösung entweder mithilfe automatisierter GitHub Aktionsworkflows oder manuell mithilfe von Terraform bereitstellen.

Automatisierte Bereitstellung mit Aktionen GitHub

Das folgende Diagramm zeigt die automatisierte Bereitstellungsoption, die GitHub Aktions-Workflows verwendet. JFrog Artifactory wird für die Verwaltung von Artefakten verwendet. Es speichert Ressourceninformationen und Ausgaben zur Verwendung in einer Bereitstellung mit mehreren Repositorys.

Automatisierte Bereitstellungsoption, die GitHub Aktionsworkflows und JFrog verwendet.

Manuelle Bereitstellung mit Terraform

Das folgende Diagramm zeigt die manuelle Bereitstellungsoption über Terraform. Anstelle von JFrog Artifactory wird Amazon S3 für die Verwaltung von Artefakten verwendet.

Manuelle Bereitstellungsoption mit Terraform und Amazon S3.

Arbeitsablauf bei der Bereitstellung

Die Diagramme zeigen den folgenden Arbeitsablauf:

  1. Stellen Sie die Infrastruktur und Datenbanken von AWS Supply Chain Service-Datasets mithilfe einer der folgenden Bereitstellungsmethoden bereit:

    • Automatisierte Bereitstellung — verwendet GitHub Aktions-Workflows, um alle Bereitstellungsschritte zu orchestrieren, und verwendet JFrog Artifactory für die Verwaltung von Artefakten.

    • Manuelle Bereitstellung — Führt Terraform-Befehle direkt für jeden Bereitstellungsschritt aus und verwendet Amazon S3 für die Verwaltung von Artefakten.

  2. Erstellen Sie die unterstützenden AWS Ressourcen, die für AWS Supply Chain den Servicebetrieb erforderlich sind:

    • Amazon VPC-Endpunkte und Sicherheitsgruppen

    • AWS KMS keys

    • CloudWatch Protokolliert Protokollgruppen

  3. Erstellen und implementieren Sie die folgenden Infrastrukturressourcen:

    • Lambda-Funktionen, die die AWS Supply Chain Dienstinstanz, Namespaces und Datensätze verwalten (erstellen, aktualisieren und löschen).

    • AWS Supply Chain Bereitstellen eines Amazon S3 S3-Buckets für die Datenaufnahme

  4. Stellen Sie die Lambda-Funktion bereit, die Integrationsflüsse zwischen dem Staging-Bucket und AWS Supply Chain den Datensätzen verwaltet. Nach Abschluss der Bereitstellung verwalten die verbleibenden Workflow-Schritte die Datenaufnahme und -analyse.

  5. Konfigurieren Sie die Quelldatenaufnahme für den Amazon S3 AWS Supply Chain S3-Staging-Bucket.

  6. Nachdem Daten zum Amazon S3 AWS Supply Chain S3-Staging-Bucket hinzugefügt wurden, löst der Service automatisch den Integrationsfluss zu den AWS Supply Chain Datensätzen aus.

  7. AWS Supply Chain lässt sich in Quick Sight Analytics integrieren, um Dashboards auf der Grundlage der aufgenommenen Daten zu erstellen.

Tools

AWS-Services

  • Amazon CloudWatch Logs hilft Ihnen dabei, die Protokolle all Ihrer Systeme und Anwendungen zu zentralisieren, AWS-Services sodass Sie sie überwachen und sicher archivieren können.

  • AWS Command Line Interface (AWS CLI) ist ein Open-Source-Tool, mit dem Sie AWS-Services über Befehle in Ihrer Befehlszeilen-Shell interagieren können.

  • Amazon Elastic Compute Cloud (Amazon EC2) bietet sichere und skalierbare Rechenkapazität in der AWS Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.

  • Amazon EventBridge ist ein serverloser Event-Bus-Service, mit dem Sie Ihre Anwendungen mit Echtzeitdaten aus einer Vielzahl von Quellen verbinden können. Zum Beispiel AWS Lambda Funktionen, HTTP-Aufruf-Endpunkte, die API-Ziele verwenden, oder Event-Busse in anderen. AWS-Konten

  • AWS Identity and Access Management (IAM) hilft Ihnen dabei, den Zugriff auf Ihre AWS Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.

  • AWS IAM Identity Centerhilft Ihnen dabei, den Single Sign-On (SSO) -Zugriff auf all Ihre Anwendungen AWS-Konten und Cloud-Anwendungen zentral zu verwalten.

  • AWS Key Management Service (AWS KMS) hilft Ihnen dabei, kryptografische Schlüssel zu erstellen und zu kontrollieren, um Ihre Daten zu schützen.

  • AWS Lambda ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Es führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.

  • Amazon Q in AWS Supply Chain ist ein interaktiver generativer KI-Assistent, der Ihnen hilft, Ihre Lieferkette effizienter zu betreiben, indem er die Daten in Ihrem AWS Supply Chain Data Lake analysiert.

  • Amazon Quick Sight ist ein Business Intelligence (BI) -Service auf Cloud-Ebene, mit dem Sie Ihre Daten in einem einzigen Dashboard visualisieren, analysieren und Berichte erstellen können.

  • Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.

  • AWS Supply Chainist eine cloudbasierte verwaltete Anwendung, die in Organisationen als Datenspeicher für Lieferketten-Domänen verwendet werden kann. Sie kann verwendet werden, um Erkenntnisse zu gewinnen und Analysen der aufgenommenen Daten durchzuführen.

  • Amazon Virtual Private Cloud (Amazon VPC) hilft Ihnen dabei, AWS Ressourcen in einem von Ihnen definierten virtuellen Netzwerk bereitzustellen. Dieses virtuelle Netzwerk entspricht einem herkömmlichen Netzwerk, wie Sie es in Ihrem Rechenzentrum betreiben würden, mit den Vorteilen der Verwendung der skalierbaren Infrastruktur von AWS. Ein Amazon VPC-Endpunkt ist ein virtuelles Gerät, mit dem Sie Ihre VPC privat mit unterstützten Geräten verbinden können, AWS-Services ohne dass ein Internet-Gateway, ein NAT-Gerät, eine VPN-Verbindung oder AWS Direct Connect eine Verbindung erforderlich ist.

Andere Tools

  • GitHub Actions ist eine CI/CD-Plattform (Continuous Integration and Continuous Delivery), die eng in Repositorien integriert GitHub ist. Sie können GitHub Actions verwenden, um Ihre Build-, Test- und Bereitstellungspipeline zu automatisieren.

  • HashiCorp Terraform ist ein IaC-Tool (Infrastructure as Code), mit dem Sie Cloud- und lokale Ressourcen erstellen und verwalten können.

  • JFrog Artifactory ermöglicht die end-to-end Automatisierung und Verwaltung von Binärdateien und Artefakten während des Anwendungsbereitstellungsprozesses.

  • Python ist eine Allzweck-Computerprogrammiersprache. Dieses Muster verwendet Python für die Interaktion mit dem Code der AWS Funktion AWS Supply Chain

    .

Best Practices

Epen

AufgabeDescriptionErforderliche Fähigkeiten

Klonen Sie das Repository

Um das Repository dieses Musters zu klonen, führen Sie den folgenden Befehl auf Ihrer lokalen Workstation aus:

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

(Automatisierte Option) Überprüfen Sie die Voraussetzungen für die Bereitstellung.

Stellen Sie sicher, dass die Voraussetzungen für die automatisierte Bereitstellung erfüllt sind.

Besitzer der App

(Manuelle Option) Bereiten Sie die Bereitstellung von AWS Supply Chain Datensätzen vor.

Führen Sie den folgenden Befehl ausASC-Datasets, um zum terraform-deployment Verzeichnis von zu wechseln:

cd ASC-Datasets/terraform-deployment

Führen Sie den folgenden Befehl aus, um die Rolle ARN anzunehmen, die in den Voraussetzungen erstellt wurde:

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

Führen Sie die folgenden Befehle aus, um die Umgebungsvariablen zu konfigurieren und zu exportieren:

# 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

(Manuelle Option) Bereiten Sie sich auf die Verwaltung der AWS Supply Chain Integrationsabläufe während der Bereitstellung vor.

Führen Sie den folgenden Befehl ausASC-Integration-Flows, um zum terraform-deployment Verzeichnis von zu wechseln:

cd ASC-Integration-Flows/terraform-deployment

Führen Sie den folgenden Befehl aus, um die Rolle ARN anzunehmen, die zuvor erstellt wurde:

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

Führen Sie die folgenden Befehle aus, um die Umgebungsvariablen zu konfigurieren und zu exportieren:

# 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"
Besitzer der App
AufgabeDescriptionErforderliche Fähigkeiten

Kopieren Sie das ASC-Datasets Verzeichnis.

Gehen Sie wie folgt vor, um das ASC-Datasets Verzeichnis an einen neuen Speicherort zu kopieren:

  1. Führen Sie den folgenden Befehl aus, um zu dem ASC-Datasets Verzeichnis zu wechseln:

    cd ASC-Datasets
  2. Führen Sie die folgenden Befehle aus, um das ASC-Datasets Verzeichnis an einen neuen Speicherort zu kopieren:

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

Richten Sie das ASC-Datasets Verzeichnis ein.

Führen Sie die folgenden Befehle aus, um es ASC-Datasets als eigenständiges Repository in Ihrer Organisation einzurichten:

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

Konfigurieren Sie den Zweignamen in der Workflow-Datei .github.

Richten Sie den Zweignamen in der Deployment-Workflow-Datei ein, wie im folgenden Beispiel gezeigt:

on: workflow_dispatch: push: branches: - dev #Change to any other branch preferred for deployment
Besitzer der App

Richten Sie GitHub Umgebungen ein und konfigurieren Sie Umgebungswerte.

Um GitHub Umgebungen in Ihrer GitHub Organisation einzurichten, folgen Sie den Anweisungen unter GitHub Umgebungen einrichten im Repository dieses Musters.

Um Umgebungswerte in den Workflow-Dateien zu konfigurieren, folgen Sie den Anweisungen unter Umgebungswerte einrichten in den Workflow-Dateien im Repository dieses Musters.

Besitzer der App

Den Workflow auslösen.

Führen Sie den folgenden Befehl aus, um Ihre Änderungen an Ihre GitHub Organisation weiterzuleiten und den Bereitstellungs-Workflow auszulösen:

git push -u origin dev
AWS DevOps
AufgabeDescriptionErforderliche Fähigkeiten

Kopieren Sie das ASC-Integration-Flows Verzeichnis.

Gehen Sie wie folgt vor, um das ASC-Integration-Flows Verzeichnis an einen neuen Speicherort zu kopieren:

  1. Führen Sie den folgenden Befehl aus, um zu dem ASC-Integration-Flows Verzeichnis zu wechseln:

    cd ASC-Integration-Flows
  2. Führen Sie die folgenden Befehle aus, um das ASC-Integration-Flows Verzeichnis an einen neuen Speicherort zu kopieren:

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

Richten Sie das ASC-Integration-Flows Verzeichnis ein.

Führen Sie die folgenden Befehle aus, um das ASC-Integration-Flows Verzeichnis als eigenständiges Repository in Ihrer Organisation einzurichten:

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

Konfigurieren Sie den Zweignamen in der Workflow-Datei .github.

Richten Sie den Zweignamen in der Deployment-Workflow-Datei ein, wie im folgenden Beispiel gezeigt:

on: workflow_dispatch: push: branches: - dev #Change to any other branch preferred for deployment
Besitzer der App

Richten Sie GitHub Umgebungen ein und konfigurieren Sie Umgebungswerte.

Um GitHub Umgebungen in Ihrer GitHub Organisation einzurichten, folgen Sie den Anweisungen unter GitHub Umgebungen einrichten im Repository dieses Musters.

Um Umgebungswerte in den Workflow-Dateien zu konfigurieren, folgen Sie den Anweisungen unter Umgebungswerte einrichten in den Workflow-Dateien im Repository dieses Musters.

Besitzer der App

Den Workflow auslösen.

Führen Sie den folgenden Befehl aus, um Ihre Änderungen an Ihre GitHub Organisation weiterzuleiten und den Bereitstellungs-Workflow auszulösen:

git push -u origin dev
AWS DevOps
AufgabeDescriptionErforderliche Fähigkeiten

Navigieren Sie zum terraform-deployment Verzeichnis .

Führen Sie den folgenden Befehl ausASC-Datasets, um zum terraform-deployment Verzeichnis von zu wechseln:

cd ASC-Datasets/terraform-deployment
AWS DevOps

Richten Sie den Amazon S3 S3-Bucket Terraform State ein.

Verwenden Sie das folgende Skript, um den Amazon S3 S3-Bucket Terraform State einzurichten:

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

Richten Sie den Amazon S3-Bucket für Terraform-Artefakte ein.

Verwenden Sie das folgende Skript, um den Amazon S3 S3-Bucket für Terraform-Artefakte einzurichten:

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

Richten Sie das Terraform-Backend und die Provider-Konfiguration ein.

Verwenden Sie das folgende Skript, um das Terraform-Backend und die Provider-Konfiguration einzurichten:

# 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

Generieren Sie einen Bereitstellungsplan.

Führen Sie die folgenden Befehle aus, um einen Bereitstellungsplan zu generieren:

# 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

Stellen Sie die Konfigurationen bereit.

Führen Sie den folgenden Befehl aus, um die Konfigurationen bereitzustellen:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Aktualisieren Sie andere Konfigurationen und speichern Sie Ausgaben.

Führen Sie die folgenden Befehle aus, um AWS KMS wichtige Richtlinien zu aktualisieren und die angewendeten Konfigurationsausgaben im Amazon S3 S3-Bucket für Terraform-Artefakte zu speichern:

# 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
AufgabeDescriptionErforderliche Fähigkeiten

Navigieren Sie zum terraform-deployment Verzeichnis .

Führen Sie den folgenden Befehl ausASC-Integration-Flows, um zum terraform-deployment Verzeichnis von zu wechseln:

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

Richten Sie das Terraform-Backend und die Provider-Konfiguration ein.

Verwenden Sie das folgende Skript, um das Terraform-Backend und die Provider-Konfigurationen einzurichten:

# 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

Generieren Sie einen Bereitstellungsplan.

Führen Sie die folgenden Befehle aus, um einen Bereitstellungsplan zu generieren. Diese Befehle initialisieren Ihre Terraform-Umgebung, führen Konfigurationsvariablen ASC-Datasets mit Ihren vorhandenen Terraform-Konfigurationen zusammen und generieren einen Bereitstellungsplan.

# 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

Stellen Sie die Konfigurationen bereit.

Führen Sie den folgenden Befehl aus, um die Konfigurationen bereitzustellen:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Aktualisieren Sie andere Konfigurationen.

Führen Sie die folgenden Befehle aus, um AWS KMS wichtige Richtlinien zu aktualisieren und die angewendeten Konfigurationsausgaben im Amazon S3 S3-Bucket für Terraform-Artefakte zu speichern:

# 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
AufgabeDescriptionErforderliche Fähigkeiten

Laden Sie CSV-Beispieldateien hoch.

Gehen Sie wie folgt vor, um CSV-Beispieldateien für die Datensätze hochzuladen:

  1. Erstellen Sie CSV-Beispieldateien mit unterschiedlichen Daten für die Datensätze „Kalender“ und „Outbound Order Line“, die bei der Bereitstellung erstellt wurden.

  2. Rufen Sie die AWS Supply Chain Instanz-ID asc_instance_id aus dem Terraform-Ausgabeverzeichnis ab.

  3. Beachten Sie den Amazon S3 S3-Bucket-Namen AWS Supply Chain , der bei der Bereitstellung erstellt wurde: aws-supply-chain-data-<Instance_ID>

  4. Führen Sie die folgenden Befehle aus AWS CLI, um die Dateien mithilfe von hochzuladen:

    # 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/
Dateningenieur
AufgabeDescriptionErforderliche Fähigkeiten

AWS Supply Chain Zugriff einrichten.

Gehen Sie wie folgt vor AWS-Managementkonsole, um den AWS Supply Chain Zugriff von der aus einzurichten:

  1. Melden Sie sich bei dem an AWS-Managementkonsole und suchen Sie nach dem AWS Supply Chain Dienst.

  2. Gehe zur Instanzasc-deployment-poc-dev-asc-instance.

  3. Dieses Muster verwendet IAM Identity Center, um den Benutzerzugriff auf die AWS Supply Chain Instanz zu verwalten. Um den vollständigen Zugriff auf diese Lösung sicherzustellen, melden Sie sich als Administrator der Anwendung an.

Besitzer der App
AufgabeDescriptionErforderliche Fähigkeiten

Löst den Workflow zur Zerstörung von Ressourcen für Integrationsflüsse aus.

Lösen Sie den Zerstörungsworkflow ASC-Integration-Flows von Ihrer Deployment-Abteilung in Ihrer GitHub Organisation aus.

AWS DevOps

Löst den Workflow zur Zerstörung von Datensatz-Ressourcen aus.

Lösen Sie den Löschen-Workflow ASC-Datasets von Ihrer Deployment-Abteilung in Ihrer GitHub Organisation aus.

AWS DevOps
AufgabeDescriptionErforderliche Fähigkeiten

Navigieren Sie zum terraform-deployment Verzeichnis .

Führen Sie den folgenden Befehl ausASC-Integration-Flows, um zum terraform-deployment Verzeichnis von zu wechseln:

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

Richten Sie das Terraform-Backend und die Provider-Konfiguration ein.

Verwenden Sie das folgende Skript, um das Terraform-Backend und die Provider-Konfiguration einzurichten:

# 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

Generieren Sie einen Plan zur Zerstörung der Infrastruktur.

Führen Sie die folgenden Befehle aus, um sich auf die kontrollierte Zerstörung Ihrer AWS Infrastruktur vorzubereiten, indem Sie einen detaillierten Plan zum Abbau Ihrer Infrastruktur erstellen. Der Prozess initialisiert Terraform, integriert AWS Supply Chain Datensatzkonfigurationen und erstellt einen Zerstörungsplan, den Sie vor der Ausführung überprüfen können.

# 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

Führen Sie den Plan zur Zerstörung der Infrastruktur aus.

Führen Sie den folgenden Befehl aus, um die geplante Zerstörung Ihrer Infrastruktur auszuführen:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Entfernen Sie Terraform-Ausgaben aus dem Amazon S3 S3-Bucket.

Führen Sie den folgenden Befehl aus, um die Ausgabedatei zu entfernenASC-Integration-Flows, die während der Bereitstellung von hochgeladen wurde:

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

Navigieren Sie zum terraform-deployment Verzeichnis .

Führen Sie den folgenden Befehl ausASC-Datasets, um zum terraform-deployment Verzeichnis von zu wechseln:

cd ASC-Datasets/terraform-deployment
AWS DevOps

Richten Sie das Terraform-Backend und die Provider-Konfiguration ein.

Verwenden Sie das folgende Skript, um das Terraform-Backend und die Provider-Konfiguration einzurichten:

# 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

Generieren Sie einen Plan zur Zerstörung der Infrastruktur.

Führen Sie die folgenden Befehle aus, um einen Plan für die Zerstörung von AWS Supply Chain Datensatzressourcen zu erstellen:

# 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

Leere Amazon S3 S3-Buckets.

Verwenden Sie das folgende Skript, um alle Amazon S3 S3-Buckets zu leeren (mit Ausnahme des Serverzugriffs-Logging-Buckets, für den konfiguriert istforce-destroy):

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

Führen Sie den Plan zur Zerstörung der Infrastruktur aus.

Führen Sie den folgenden Befehl aus, um die geplante Zerstörung Ihrer AWS Supply Chain Datensatz-Infrastruktur mithilfe des generierten Plans auszuführen:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Entfernen Sie Terraform-Ausgaben aus dem Amazon S3 S3-Bucket für Terraform-Artefakte.

Um den Bereinigungsprozess abzuschließen, entfernen Sie die Ausgabedatei, die während der Bereitstellung von hochgeladen wurde, ASC-Datasets indem Sie den folgenden Befehl ausführen:

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

Fehlerbehebung

ProblemLösung

Ein AWS Supply Chain Datensatz oder ein Integrationsablauf wurde aufgrund AWS Supply Chain interner Fehler oder unzureichender IAM-Berechtigungen für die Servicerolle nicht korrekt bereitgestellt.

Bereinigen Sie zunächst alle Ressourcen. Stellen Sie dann die AWS Supply Chain Datensatzressourcen erneut bereit und stellen Sie dann die AWS Supply Chain Integrationsflussressourcen erneut bereit.

Der AWS Supply Chain Integrationsfluss ruft die neuen Datendateien, die für die Datensätze hochgeladen wurden, nicht ab. AWS Supply Chain

  1. Stellen Sie sicher, dass das Präfix der AWS Supply Chain Integrationsfluss-Konfiguration mit dem Präfix übereinstimmt, das beim Hochladen der Beispieldatendateien verwendet wurde.

  2. Wenn die Ressourcen für die AWS Supply Chain Datensätze neu erstellt wurden, ändern sich die zugehörigen Amazon-Ressourcennamen (ARNs) intern. Stellen Sie daher die Ressourcen für die AWS Supply Chain Service Integration Flow-Ressourcen erneut bereit.

Zugehörige Ressourcen

AWS Dokumentation

Sonstige Ressourcen

Zusätzliche Informationen

Diese Lösung kann für mehr Datensätze repliziert und für weitere Analysen abgefragt werden, und zwar über vorgefertigte Dashboards, die mit Amazon Quick Sight bereitgestellt werden, AWS Supply Chain oder über eine benutzerdefinierte Integration mit Amazon Quick Sight. Darüber hinaus können Sie Amazon Q verwenden, um Fragen zu Ihrer AWS Supply Chain Instance zu stellen.

Analysieren Sie Daten mit AWS Supply Chain Analytics

Anweisungen zum Einrichten von AWS Supply Chain Analytics finden Sie in der AWS Supply Chain Dokumentation unter AWS Supply Chain Analytics einrichten.

Dieses Muster demonstrierte die Erstellung von Calendar - und Outbound_Order_Line-Datensätzen. Gehen Sie wie folgt vor, um eine Analyse zu erstellen, die diese Datensätze verwendet:

  1. Verwenden Sie das Dashboard für die Saisonalitätsanalyse, um die Datensätze zu analysieren. Um das Dashboard hinzuzufügen, folgen Sie den Schritten unter Vorgefertigte Dashboards in der Dokumentation. AWS Supply Chain

  2. Wählen Sie das Dashboard aus, um dessen Analyse zu sehen, die auf CSV-Beispieldateien für Kalenderdaten und ausgehende Auftragspositionsdaten basiert.

Das Dashboard bietet auf Anfrage Erkenntnisse über die Jahre, die auf den aufgenommenen Daten für die Datensätze basieren. Sie können die ProductID, CustomerID, Jahre und andere Parameter für die Analyse weiter angeben.

Verwenden Sie Amazon Q, um Fragen zu Ihrer AWS Supply Chain Instance zu stellen

Amazon Q in AWS Supply Chain ist ein interaktiver generativer KI-Assistent, der Ihnen hilft, Ihre Lieferkette effizienter zu betreiben. Amazon Q kann Folgendes tun:

  • Analysieren Sie die Daten in Ihrem AWS Supply Chain Data Lake.

  • Bieten Sie betriebliche und finanzielle Einblicke.

  • Beantworten Sie Ihre unmittelbaren Fragen zur Lieferkette.

Weitere Informationen zur Verwendung von Amazon Q finden Sie unter Amazon Q aktivieren in AWS Supply Chain und Amazon Q verwenden AWS Supply Chain in der AWS Supply Chain Dokumentation.