View a markdown version of this page

使用 GitHub Actions、Artifactory 和 Terraform 在多存储库设置中自动部署 AWS Supply Chain 数据湖 - AWS 规范指引

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 GitHub Actions、Artifactory 和 Terraform 在多存储库设置中自动部署 AWS Supply Chain 数据湖

Keshav Ganesh,亚马逊 Web Services

Summary

这种模式提供了一种使用多存储库持续集成和持续部署(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功能)来部署和管理 AWS Supply Chain 数据湖的自动化方法。

该解决方案利用 AWS Supply Chain AWS Lambda、和 Amazon Simple Storage Service (Amazon S3) 来建立数据湖基础设施,同时使用任一部署方法自动配置和资源创建。这种自动化消除了手动配置步骤,并确保了跨环境部署的一致性。此外, AWS Supply Chain 无需在提取、转换和加载 (ETL) 方面拥有深厚的专业知识,并且可以提供由 Amazon Quick Sight 支持的见解和分析。

通过实施这种模式,组织可以缩短部署时间,维护基础设施即代码,并通过版本控制的自动化流程管理供应链数据湖。多存储库方法提供了精细的访问控制,并支持独立部署不同的组件。团队可以选择最适合其现有工具和流程的部署方法。

先决条件和限制

先决条件

确保在本地计算机上安装了以下内容:

在部署之前,请确保以下内容准备就绪:

  • 活跃 AWS 账户的.

  • 虚拟私有云 (VPC),其中有两个私有子网供您选择。 AWS 账户 AWS 区域

  • 用于部署到以下服务的 AWS Identity and Access Management (IAM) 角色有足够的权限:

    • AWS Supply Chain — Full Access 首选部署其组件(如数据集和集成流),以及从中进行访问 AWS 管理控制台。

    • Amazon CloudWatch 日志-用于创建和管理 CloudWatch 日志组。

    • 亚马逊弹性计算云 (Amazon EC2) — 适用于亚马逊 EC2 安全组和亚马逊虚拟私有云 (亚马逊 VPC) 终端节点。

    • 亚马逊 EventBridge -供使用 AWS Supply Chain。

    • IAM — 用于创建 AWS Lambda 服务角色。

    • AWS Key Management Service (AWS KMS) — AWS KMS keys 用于访问用于 Amazon S3 工件存储桶和 Amazon S3 AWS Supply Chain 暂存存储桶的。

    • AWS Lambda — 用于创建用于部署组件的 Lambda 函数。 AWS Supply Chain

    • Amazon S3 — 用于访问 Amazon S3 项目存储桶、服务器访问日志存储桶和 AWS Supply Chain 暂存存储桶。如果您使用的是手动部署,则还需要获得 Amazon S3 Terraform 项目存储桶的权限。

    • 亚马逊 VPC — 用于创建和管理 VPC。

如果您更喜欢使用 GitHub 操作工作流程进行部署,请执行以下操作:

如果您更喜欢手动部署,请执行以下操作:

如果您更喜欢使用 GitHub 操作工作流程进行部署,请进行以下设置:

限制

  • 该 AWS Supply Chain 实例不支持复杂的数据转换技术。

  • AWS Supply Chain 最适合供应链领域,因为它提供了内置的分析和见解。对于任何其他域, AWS Supply Chain 可用作数据存储作为数据湖架构的一部分。

  • 可能需要增强此解决方案中使用的 Lambda 函数,以处理生产规模部署中的 API 重试和内存管理。

  • 有些 AWS 服务 并非全部可用 AWS 区域。有关区域可用性,请参阅按区域划分的AWS 服务。有关特定端点,请参阅服务端点和配额,然后选择相应服务的链接。

架构

您可以使用自动 GitHub 操作工作流程或使用 Terraform 手动部署此解决方案。

使用 GitHub 操作自动部署

下图显示了使用 GitHub 操作工作流的自动部署选项。 JFrog Artifactory 用于工件管理。它存储资源信息和输出,以便在多存储库部署中使用。

自动部署选项,使用 GitHub 操作工作流程和 JFrog.

使用 Terraform 进行手动部署

下图显示了通过 Terraform 的手动部署选项。Amazon S3 不是 A JFrog rtifactory,而是用于项目管理。

使用 Terraform 和 Amazon S3 的手动部署选项。

部署工作流

图表显示了以下工作流程:

  1. 使用以下部署方法之一部署 AWS Supply Chain 服务数据集基础架构和数据库:

    • 自动部署-使用 GitHub 操作工作流程来协调所有部署步骤,并使用 JFrog Artifactory 进行工件管理。

    • 手动部署 — 直接为每个部署步骤执行 Terraform 命令,并使用 Amazon S3 进行项目管理。

  2. 创建 AWS Supply Chain 服务操作所需的支持 AWS 资源:

    • 亚马逊 VPC 终端节点和安全组

    • AWS KMS keys

    • CloudWatch 日志日志组

  3. 创建和部署以下基础架构资源:

    • 管理(创建、更新和删除) AWS Supply Chain 服务实例、命名空间和数据集的 Lambda 函数。

    • AWS Supply Chain 暂存用于数据摄取的 Amazon S3 存储桶

  4. 部署 Lambda 函数来管理暂存存储桶和数据集之间的集成流程。 AWS Supply Chain 部署完成后,其余工作流程步骤将管理数据摄取和分析。

  5. 将源数据提取配置到暂存 A AWS Supply Chain mazon S3 存储桶。

  6. 将数据添加到 AWS Supply Chain 暂存 Amazon S3 存储桶后,该服务会自动触发 AWS Supply Chain 数据集的集成流程。

  7. AWS Supply Chain 与 Quick Sight Analytics 集成,可根据摄取的数据生成仪表板。

工具

AWS 服务

  • Amazon CloudWatch Lo gs 可帮助您集中所有系统和应用程序的日志, AWS 服务 这样您就可以监控它们并安全地将其存档。

  • AWS Command Line Interface (AWS CLI) 是一个开源工具,可帮助您 AWS 服务 通过命令行 shell 中的命令进行交互。

  • Amazon Elastic Compute Cloud(Amazon EC2)在 AWS 云中提供可扩展的计算容量。您可以根据需要启动任意数量的虚拟服务器,并快速纵向扩展或缩减这些服务器。

  • Amazon EventBridge 是一项无服务器事件总线服务,可帮助您将应用程序与来自各种来源的实时数据连接起来。例如, AWS Lambda 函数、使用 API 目的地的 HTTP 调用端点或其他 AWS 账户目的地的事件总线。

  • AWS Identity and Access Management (IAM) 通过控制谁经过身份验证并有权使用 AWS 资源,从而帮助您安全地管理对资源的访问权限。

  • AWS IAM Identity Center帮助您集中管理对所有应用程序 AWS 账户 和云应用程序的单点登录 (SSO) 访问权限。

  • AWS Key Management Service (AWS KMS) 可帮助您创建和控制加密密钥以帮助保护您的数据。

  • AWS Lambda 是一项计算服务,可帮助您运行代码,无需预调配或管理服务器。它只在需要时运行您的代码,并自动进行扩展,因此您只需为使用的计算时间付费。

  • Amazon Q in AWS Supply Chain 是一款交互式生成式 AI 助手,可通过分析数据湖中的数据来帮助您更高效地运营供应链。 AWS Supply Chain

  • Amazon Quick Sight 是一种云级商业智能(BI)服务,可用于在单独的控制面板中可视化、分析和报告数据。

  • Amazon Simple Storage Service(Amazon S3)是一项基于云的对象存储服务,可帮助您存储、保护和检索任意数量的数据。

  • AWS Supply Chain是一款基于云的托管应用程序,可用作组织中供应链域的数据存储,可用于生成见解并对摄取的数据进行分析。

  • Amazon Virtual Private Cloud(亚马逊 VPC)可帮助您将 AWS 资源启动到您定义的虚拟网络中。该虚拟网络类似于您在数据中心中运行的传统网络,并具有使用 AWS的可扩展基础设施的优势。Amazon VPC 终端节点是一种虚拟设备,可帮助您将自己的 VPC 私密连接到受支持的, AWS 服务 而无需互联网网关、NAT 设备、VPN AWS Direct Connect 连接或连接。

其他工具

  • GitHub A@@ c tions 是一个持续集成和持续交付 (CI/CD) 平台,与 GitHub 存储库紧密集成。您可以使用 GitHub Actions 来自动执行构建、测试和部署管道。

  • HashiCorp Terraform 是一款基础设施即代码 (IaC) 工具,可帮助您创建和管理云和本地资源。

  • JFrog Artifactor y 通过应用程序交付 end-to-end流程提供二进制文件和工件的自动化和管理。

  • Python 是一种通用的计算机编程语言。此模式使用 Python 让 AWS 函数的代码与之交互 AWS Supply Chain

    .

最佳实践

操作说明

Task说明所需技能

克隆存储库。

要克隆此模式的存储库,请在您的本地工作站中运行如下命令:

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

(自动选项)验证部署的先决条件。

确保已完成自动部署的先决条件

应用程序所有者

(手动选项)准备部署 AWS Supply Chain 数据集。

要转到的terraform-deployment目录ASC-Datasets,请运行以下命令:

cd ASC-Datasets/terraform-deployment

要代入在先决条件中创建的 ARN 角色,请运行以下命令:

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

要配置和导出环境变量,请运行以下命令:

# 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

(手动选项)为管理部署中的 AWS Supply Chain 集成流程做好准备。

要转到的terraform-deployment目录ASC-Integration-Flows,请运行以下命令:

cd ASC-Integration-Flows/terraform-deployment

要代入之前创建的 ARN 角色,请运行以下命令:

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

要配置和导出环境变量,请运行以下命令:

# 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"
应用程序所有者
Task说明所需技能

复制该ASC-Datasets目录。

要将ASC-Datasets目录复制到新位置,请执行以下步骤:

  1. 要转到该ASC-Datasets目录,请运行以下命令:

    cd ASC-Datasets
  2. 要将ASC-Datasets目录复制到新位置,请运行以下命令:

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

设置ASC-Datasets目录。

要在组织中设置ASC-Datasets为独立存储库,请运行以下命令:

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

在.github 工作流程文件中配置分支名称。

部署工作流文件中设置分支名称,如以下示例所示:

on: workflow_dispatch: push: branches: - dev #Change to any other branch preferred for deployment
应用程序所有者

设置 GitHub 环境并配置环境值。

要在 GitHub 组织中设置 GitHub 环境,请使用此模式存储库中的安装 GitHub 环境中的说明。

要在工作流文件中配置环境值,请使用此模式存储库中工作流程文件中的安装环境值中的说明。

应用程序所有者

触发工作流程。

要将更改推送到您的 GitHub 组织并触发部署工作流程,请运行以下命令:

git push -u origin dev
AWS DevOps
Task说明所需技能

复制该ASC-Integration-Flows目录。

要将ASC-Integration-Flows目录复制到新位置,请执行以下步骤:

  1. 要转到该ASC-Integration-Flows目录,请运行以下命令:

    cd ASC-Integration-Flows
  2. 要将ASC-Integration-Flows目录复制到新位置,请运行以下命令:

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

设置ASC-Integration-Flows目录。

要将该ASC-Integration-Flows目录设置为组织中的独立存储库,请运行以下命令:

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

在.github 工作流程文件中配置分支名称。

部署工作流文件中设置分支名称,如以下示例所示:

on: workflow_dispatch: push: branches: - dev #Change to any other branch preferred for deployment
应用程序所有者

设置 GitHub 环境并配置环境值。

要在 GitHub 组织中设置 GitHub 环境,请使用此模式存储库中的安装 GitHub 环境中的说明。

要在工作流文件中配置环境值,请使用此模式存储库中工作流程文件中的安装环境值中的说明。

应用程序所有者

触发工作流程。

要将更改推送到您的 GitHub 组织并触发部署工作流程,请运行以下命令:

git push -u origin dev
AWS DevOps
Task说明所需技能

导航到 terraform-deployment 目录。

要转到的terraform-deployment目录ASC-Datasets,请运行以下命令:

cd ASC-Datasets/terraform-deployment
AWS DevOps

设置 Terraform 状态 Amazon S3 存储桶。

要设置 Terraform 状态 Amazon S3 存储桶,请使用以下脚本:

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

设置 Terraform 工件 Amazon S3 存储桶。

要设置 Terraform 工件 Amazon S3 存储桶,请使用以下脚本:

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

设置 Terraform 后端和提供者配置。

要设置 Terraform 后端和提供程序配置,请使用以下脚本:

# 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

生成部署计划。

要生成部署计划,请运行以下命令:

# 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

部署配置。

要部署配置,请运行以下命令:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

更新其他配置并存储输出。

要更新 AWS KMS 密钥策略并将应用的配置输出存储在 Terraform 工件 Amazon S3 存储桶中,请运行以下命令:

# 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
Task说明所需技能

导航到 terraform-deployment 目录。

要转到的terraform-deployment目录ASC-Integration-Flows,请运行以下命令:

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

设置 Terraform 后端和提供者配置。

要设置 Terraform 后端和提供程序配置,请使用以下脚本:

# 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

生成部署计划。

要生成部署计划,请运行以下命令。这些命令初始化您的 Terraform 环境,将配置变量ASC-Datasets与现有 Terraform 配置合并,并生成部署计划。

# 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

部署配置。

要部署配置,请运行以下命令:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

更新其他配置。

要更新 AWS KMS 密钥策略并将应用的配置输出存储在 Terraform 工件 Amazon S3 存储桶中,请运行以下命令:

# 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
Task说明所需技能

上传示例 CSV 文件。

要上传数据集的示例 CSV 文件,请按以下步骤操作:

  1. 为部署中创建的日历出库订单行数据集创建包含各种数据的示例 CSV 文件。

  2. asc_instance_idterraform 输出目录中获取 AWS Supply Chain 实例 ID。

  3. 请注意在部署中为其创建 AWS Supply Chain 的 Amazon S3 存储桶名称:aws-supply-chain-data-<Instance_ID>

  4. 要使用上传文件 AWS CLI,请运行以下命令:

    # 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/
数据工程师
Task说明所需技能

设置 AWS Supply Chain 访问权限。

要从中设置 AWS Supply Chain 访问权限 AWS 管理控制台,请按以下步骤操作:

  1. 登录 AWS 管理控制台 并搜索该 AWS Supply Chain 服务。

  2. 转到实例asc-deployment-poc-dev-asc-instance

  3. 此模式使用 IAM 身份中心来管理用户对 AWS Supply Chain 实例的访问权限。为确保完全访问此解决方案,请以应用程序管理员身份登录。

应用程序所有者
Task说明所需技能

触发集成流资源的销毁工作流程。

ASC-Integration-Flows从 GitHub 组织中的部署分支触发的销毁工作流程

AWS DevOps

触发数据集资源的销毁工作流程。

ASC-Datasets从 GitHub 组织中的部署分支触发的销毁工作流程

AWS DevOps
Task说明所需技能

导航到 terraform-deployment 目录。

要转到的terraform-deployment目录ASC-Integration-Flows,请运行以下命令:

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

设置 Terraform 后端和提供者配置。

要设置 Terraform 后端和提供程序配置,请使用以下脚本:

# 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

制定基础设施销毁计划。

要通过生成详细的拆卸计划为有控制地销毁 AWS 基础设施做好准备,请运行以下命令。该过程初始化 Terraform,合并 AWS Supply Chain 数据集配置,并创建销毁计划,您可以在执行之前查看该计划。

# 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

执行基础设施销毁计划。

要按计划销毁您的基础架构,请运行以下命令:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

从 Amazon S3 存储桶中删除 Terraform 的输出。

要删除部署期间上传的输出文件ASC-Integration-Flows,请运行以下命令:

# Delete the outputs file aws s3 rm s3://$S3_TERRAFORM_ARTIFACTS_BUCKET_NAME/$REPO_NAME-outputs.tfvars
AWS DevOps
Task说明所需技能

导航到 terraform-deployment 目录。

要转到的terraform-deployment目录ASC-Datasets,请运行以下命令:

cd ASC-Datasets/terraform-deployment
AWS DevOps

设置 Terraform 后端和提供者配置。

要设置 Terraform 后端和提供程序配置,请使用以下脚本:

# 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

制定基础设施销毁计划。

要制定销毁 AWS Supply Chain 数据集资源的计划,请运行以下命令:

# 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

清空 Amazon S3 存储桶。

要清空所有 Amazon S3 存储桶(配置为的服务器访问日志存储桶除外force-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

执行基础设施销毁计划。

要使用生成的计划按计划销毁数据 AWS Supply Chain 集基础架构,请运行以下命令:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

从 Amazon S3 Terraform 工件存储桶中删除 Terraform 输出。

要完成清理过程,请运行以下命令删除部署期间上传ASC-Datasets的输出文件:

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

问题排查

问题解决方案

由于 AWS Supply Chain 内部错误或服务角色的 IAM 权限不足, AWS Supply Chain 数据集或集成流程未正确部署。

首先,清理所有资源。然后,重新部署 AWS Supply Chain 数据集资源,然后重新部署 AWS Supply Chain 集成流资源。

AWS Supply Chain 集成流程不会获取为数据 AWS Supply Chain 集上传的新数据文件。

  1. 检查 AWS Supply Chain 集成流程配置的前缀是否与上传示例数据文件时使用的前缀相匹配。

  2. 如果重新创建了 AWS Supply Chain 数据集的资源,则其关联的 Amazon 资源名称 (ARNs) 会在内部发生变化。因此,重新部署 AWS Supply Chain 服务集成流资源的资源。

相关资源

AWS 文档

其他资源

附加信息

该解决方案可以复制到更多数据集,也可以通过 Amazon Quick Sight 提供的预建仪表板 AWS Supply Chain 或与 Amazon Quick Sight 的自定义集成进行查询以进行进一步分析。此外,您可以使用 Amazon Q 来询问与您的 AWS Supply Chain 实例相关的问题。

使用 “分析” AWS Supply Chain 分析数据

有关设置 AWS Supply Chain 分析的说明,请参阅 AWS Supply Chain 文档中的设置 AWS Supply Chain 分析

这种模式演示了日历Outbound_Order_L ine 数据集的创建。要创建使用这些数据集的分析,请使用以下步骤:

  1. 要分析数据集,请使用季节性分析仪表板。要添加仪表板,请按照 AWS Supply Chain 文档中预建仪表板中的步骤进行操作。

  2. 选择控制面板以查看其基于日历数据和出库订单行数据的示例 CSV 文件的分析。

该仪表板根据数据集摄取的数据按需提供多年来的见解。您可以进一步指定产品编号、客户编号、年份和其他参数进行分析。

使用 Amazon Q 询问与您的 AWS Supply Chain 实例相关的问题

Amazon Q in AWS Supply Chain 是一款交互式生成人工智能助手,可帮助您更有效地运营供应链。Amazon Q 可以执行以下操作:

  • 分析数据湖中的 AWS Supply Chain 数据。

  • 提供运营和财务见解。

  • 回答您当前的供应链问题。

有关使用 Amazon Q 的更多信息,请参阅 AWS Supply Chain 文档中的启用 Ama zon Q AWS Supply Chain和使用 Amazon Q。 AWS Supply Chain