View a markdown version of this page

Automatice el despliegue de lagos de AWS Supply Chain datos en una configuración de múltiples repositorios mediante GitHub Actions, Artifactory y Terraform - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Automatice el despliegue de lagos de AWS Supply Chain datos en una configuración de múltiples repositorios mediante GitHub Actions, Artifactory y Terraform

Keshav Ganesh, Amazon Web Services

Resumen

Este patrón proporciona un enfoque automatizado para implementar y administrar lagos de AWS Supply Chain datos mediante capacidades de integración continua y despliegue continuo () de múltiples repositorios. 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 solución aprovecha AWS Supply Chain y Amazon Simple Storage Service (Amazon S3) para establecer la infraestructura del lago de datos y, al mismo tiempo, utiliza cualquiera de los dos métodos de implementación para automatizar la configuración y la creación de recursos. AWS Lambda Esta automatización elimina los pasos de configuración manual y garantiza la uniformidad de las implementaciones en todos los entornos. Además, AWS Supply Chain elimina la necesidad de contar con una amplia experiencia en extracción, transformación y carga (ETL) y puede proporcionar información y análisis impulsados por Amazon Quick Sight.

Al implementar este patrón, las organizaciones pueden reducir el tiempo de implementación, mantener la infraestructura como código y administrar los lagos de datos de la cadena de suministro mediante un proceso automatizado y controlado por versiones. El enfoque de múltiples repositorios proporciona un control de acceso detallado y permite el despliegue independiente de diferentes componentes. Los equipos pueden elegir el método de implementación que mejor se adapte a sus herramientas y procesos existentes.

Requisitos previos y limitaciones

Requisitos previos 

Asegúrese de que lo siguiente esté instalado en su máquina local:

Asegúrese de que se cuente con lo siguiente antes de la implementación:

  • Un activo Cuenta de AWS.

  • Una nube privada virtual (VPC) con dos subredes privadas Cuenta de AWS en Región de AWS la que elija.

  • Permisos suficientes para el rol AWS Identity and Access Management (IAM) utilizado para la implementación en los siguientes servicios:

    • AWS Supply Chain — Se prefiere Full Access para implementar sus componentes, como conjuntos de datos y flujos de integración, además de acceder a ellos desde. Consola de administración de AWS

    • Amazon CloudWatch Logs: para crear y administrar grupos de CloudWatch registros.

    • Amazon Elastic Compute Cloud (Amazon EC2): para grupos de seguridad de Amazon EC2 y puntos de conexión de Amazon Virtual Private Cloud (Amazon VPC).

    • Amazon EventBridge : para uso de AWS Supply Chain.

    • IAM: para crear funciones AWS Lambda de servicio.

    • AWS Key Management Service (AWS KMS) — Para acceder al depósito AWS KMS keys de artefactos de Amazon S3 y al depósito AWS Supply Chain provisional de Amazon S3.

    • AWS Lambda — Para crear las funciones Lambda que despliegan los AWS Supply Chain componentes.

    • Amazon S3: para acceder al depósito de artefactos de Amazon S3, al depósito de registro de acceso al servidor y al AWS Supply Chain depósito provisional. Si utiliza la implementación manual, también necesitará permisos para el depósito de artefactos Terraform de Amazon S3.

    • Amazon VPC: para crear y administrar una VPC.

Si prefiere utilizar los flujos de trabajo de GitHub Actions para la implementación, haga lo siguiente:

Si prefiere realizar una implementación manual, haga lo siguiente:

Si prefieres usar los flujos de trabajo de GitHub Actions para la implementación, configura lo siguiente:

Limitaciones

  • La AWS Supply Chain instancia no admite técnicas complejas de transformación de datos.

  • AWS Supply Chain es la más adecuada para los dominios de la cadena de suministro porque proporciona análisis e información integrados. Para cualquier otro dominio, se AWS Supply Chain puede utilizar como almacén de datos como parte de la arquitectura del lago de datos.

  • Es posible que sea necesario mejorar las funciones Lambda utilizadas en esta solución para gestionar los reintentos de API y la administración de memoria en una implementación a escala de producción.

  • Algunas Servicios de AWS no están disponibles en todos. Regiones de AWS Para obtener información sobre la disponibilidad en regiones, consulte AWS Services by Region. Para ver los puntos de conexión específicos, consulte Service endpoints and quotas y elija el enlace del servicio.

Arquitectura

Puedes implementar esta solución mediante flujos de trabajo de GitHub Actions automatizados o manualmente con Terraform.

Despliegue automatizado con Actions GitHub

En el siguiente diagrama, se muestra la opción de despliegue automatizado que utiliza los flujos de trabajo de GitHub Actions. JFrog Artifactory se utiliza para la gestión de artefactos. Almacena la información y los resultados de los recursos para utilizarlos en una implementación de varios repositorios.

Opción de despliegue automatizado que utiliza los flujos de trabajo de GitHub Actions y JFrog.

Despliegue manual con Terraform

El siguiente diagrama muestra la opción de despliegue manual a través de Terraform. En lugar de JFrog Artifactory, Amazon S3 se utiliza para la administración de artefactos.

Opción de implementación manual mediante Terraform y Amazon S3.

Flujo de trabajo de una implementación

Los diagramas muestran el siguiente flujo de trabajo:

  1. Implemente conjuntos de datos de AWS Supply Chain servicios, infraestructura y bases de datos mediante uno de los siguientes métodos de implementación:

    • Implementación automatizada: utiliza los flujos de trabajo de GitHub Actions para organizar todos los pasos de la implementación y utiliza JFrog Artifactory para la gestión de artefactos.

    • Implementación manual: ejecuta los comandos de Terraform directamente para cada paso de la implementación y usa Amazon S3 para la administración de artefactos.

  2. Cree los AWS recursos de apoyo necesarios para el funcionamiento del AWS Supply Chain servicio:

    • Puntos de enlace y grupos de seguridad de Amazon VPC

    • AWS KMS keys

    • CloudWatch Registros, grupos de registros

  3. Cree e implemente los siguientes recursos de infraestructura:

    • Funciones Lambda que administran (crean, actualizan y eliminan) la instancia de AWS Supply Chain servicio, los espacios de nombres y los conjuntos de datos.

    • AWS Supply Chain organizar un bucket de Amazon S3 para la ingesta de datos

  4. Implemente la función Lambda que gestiona los flujos de integración entre el depósito provisional y los conjuntos de datos. AWS Supply Chain Una vez completada la implementación, los pasos restantes del flujo de trabajo gestionan la ingesta y el análisis de los datos.

  5. Configure la ingesta de datos de origen en el bucket AWS Supply Chain provisional de Amazon S3.

  6. Una vez que se añaden los datos al AWS Supply Chain bucket provisional de Amazon S3, el servicio activa automáticamente el flujo de integración de los AWS Supply Chain conjuntos de datos.

  7. AWS Supply Chain se integra con Quick Sight Analytics para crear paneles basados en los datos ingeridos.

Tools (Herramientas)

Servicios de AWS

  • Amazon CloudWatch Logs le ayuda a centralizar los registros de todos sus sistemas y aplicaciones Servicios de AWS para que pueda supervisarlos y archivarlos de forma segura.

  • AWS Command Line Interface (AWS CLI) es una herramienta de código abierto que le ayuda a interactuar Servicios de AWS mediante los comandos de su consola de línea de comandos.

  • Amazon Elastic Compute Cloud (Amazon EC2) brinda capacidad de computación escalable en la Nube de AWS. Puede lanzar tantos servidores virtuales como necesite y escalarlos o reducirlos con rapidez.

  • Amazon EventBridge es un servicio de bus de eventos sin servidor que le ayuda a conectar sus aplicaciones con datos en tiempo real de diversas fuentes. Por ejemplo, AWS Lambda funciones, puntos de enlace de invocación HTTP que utilizan destinos de API o buses de eventos en otros. Cuentas de AWS

  • AWS Identity and Access Management (IAM) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.

  • AWS IAM Identity Centerle ayuda a gestionar de forma centralizada el acceso mediante el inicio de sesión único (SSO) a todas sus aplicaciones y a las de la nube. Cuentas de AWS

  • AWS Key Management Service (AWS KMS) le ayuda a crear y controlar claves criptográficas para proteger sus datos.

  • AWS Lambda es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.

  • Amazon Q in AWS Supply Chain es un asistente de IA generativa interactivo que le ayuda a gestionar su cadena de suministro de forma más eficiente mediante el análisis de los datos de su lago de AWS Supply Chain datos.

  • Amazon QuickSight es un servicio de inteligencia empresarial (BI) a escala de la nube que lo ayuda a visualizar, analizar y generar informes de sus datos en un único panel.

  • Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

  • AWS Supply Chaines una aplicación gestionada basada en la nube que se puede utilizar como almacén de datos en las organizaciones para los dominios de la cadena de suministro, que se puede utilizar para generar información y realizar análisis de los datos ingeridos.

  • Amazon Virtual Private Cloud (Amazon VPC) le ayuda a lanzar AWS recursos en una red virtual que haya definido. Esa red virtual es similar a la red tradicional que utiliza en su propio centro de datos, con los beneficios de usar la infraestructura escalable de AWS. Un punto de conexión de Amazon VPC es un dispositivo virtual que le ayuda a conectar de forma privada su VPC a una red compatible Servicios de AWS sin necesidad de una pasarela de Internet, un dispositivo NAT, una conexión VPN o una conexión. AWS Direct Connect

Otras herramientas

  • GitHub Actions es una plataforma de integración y entrega continuas (CI/CD) que está estrechamente integrada con los repositorios. GitHub Puedes usar GitHub Actions para automatizar tu proceso de creación, prueba e implementación.

  • HashiCorp Terraform es una herramienta de infraestructura como código (IaC) que te ayuda a crear y administrar recursos locales y en la nube.

  • JFrog Artifactory proporciona end-to-end automatización y administración de archivos binarios y artefactos a través del proceso de entrega de la aplicación.

  • Python es un lenguaje de programación informático de uso general. Este patrón usa Python para que el código de la AWS función interactúe con AWS Supply Chain

    .

Prácticas recomendadas

Epics

TareaDescripciónHabilidades requeridas

Clonar el repositorio.

Para clonar el repositorio de este patrón, ejecute el comando siguiente en la estación de trabajo local:

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

(Opción automatizada) Verifique los requisitos previos para la implementación.

Asegúrese de que los requisitos previos estén completos para la implementación automática.

Propietario de la aplicación

(Opción manual) Prepárese para la implementación de los AWS Supply Chain conjuntos de datos.

Para ir al terraform-deployment directorio deASC-Datasets, ejecute el siguiente comando:

cd ASC-Datasets/terraform-deployment

Para asumir el rol ARN que se creó en los requisitos previos, ejecute el siguiente comando:

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

Para configurar y exportar las variables de entorno, ejecute los siguientes comandos:

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

(Opción manual) Prepárese para gestionar los flujos de AWS Supply Chain integración durante la implementación.

Para ir al terraform-deployment directorio deASC-Integration-Flows, ejecute el siguiente comando:

cd ASC-Integration-Flows/terraform-deployment

Para asumir el rol ARN que se creó anteriormente, ejecute el siguiente comando:

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

Para configurar y exportar las variables de entorno, ejecute los siguientes comandos:

# Export Environment variables export REGION=<Enter deployment region> export REPO_NAME=<Enter Current ASC Integration Flows dir name> export ASC_DATASET_VARS_REPO=<Enter Current ASC Datasets dir name> #Must be the same directory name used for ASC Datasets deployment export PROJECT_NAME="asc-deployment-poc" export ACCOUNT_ID=<Enter deployment Account ID> export ENVIRONMENT="dev" export LAMBDA_LAYER_TEMP_DIR_TERRAFORM="layerOutput" export LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM="lambdaOutput" export S3_TERRAFORM_ARTIFACTS_BUCKET_NAME="$PROJECT_NAME-$ACCOUNT_ID-$REGION-terraform-artifacts-$ENVIRONMENT"
Propietario de la aplicación
TareaDescripciónHabilidades requeridas

Copia el ASC-Datasets directorio.

Para copiar el ASC-Datasets directorio a una nueva ubicación, siga estos pasos:

  1. Para ir al ASC-Datasets directorio, ejecute el siguiente comando:

    cd ASC-Datasets
  2. Para copiar el ASC-Datasets directorio a una nueva ubicación, ejecute los siguientes comandos:

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

Configure el ASC-Datasets directorio.

Para configurarlo ASC-Datasets como un repositorio independiente en su organización, ejecute los siguientes comandos:

git init git add . git commit -m "Initial commit: ASC-Datasets standalone repository" git remote add origin <INSERT_ASC_DATASETS_GITHUB_URL> git branch -M dev
AWS DevOps

Configure el nombre de la rama en el archivo de flujo de trabajo .github.

Configura el nombre de la rama en el archivo de flujo de trabajo de implementación, como se muestra en el siguiente ejemplo:

on: workflow_dispatch: push: branches: - dev #Change to any other branch preferred for deployment
Propietario de la aplicación

Configure GitHub los entornos y configure los valores del entorno.

Para configurar GitHub los entornos de su GitHub organización, siga las instrucciones de Configuración de GitHub los entornos del repositorio de este patrón.

Para configurar los valores del entorno en los archivos de flujo de trabajo, siga las instrucciones de Configurar los valores del entorno en los archivos de flujo de trabajo del repositorio de este patrón.

Propietario de la aplicación

Activa el flujo de trabajo.

Para introducir los cambios en su GitHub organización y activar el flujo de trabajo de implementación, ejecute el siguiente comando:

git push -u origin dev
AWS DevOps
TareaDescripciónHabilidades requeridas

Copia el ASC-Integration-Flows directorio.

Para copiar el ASC-Integration-Flows directorio a una nueva ubicación, siga estos pasos:

  1. Para ir al ASC-Integration-Flows directorio, ejecute el siguiente comando:

    cd ASC-Integration-Flows
  2. Para copiar el ASC-Integration-Flows directorio a una nueva ubicación, ejecute los siguientes comandos:

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

Configure el ASC-Integration-Flows directorio.

Para configurar el ASC-Integration-Flows directorio como un repositorio independiente en su organización, ejecute los siguientes comandos:

git init git add . git commit -m "Initial commit: ASC-Integration-Flows standalone repository" git remote add origin <INSERT_ASC_Integration_Flows_GITHUB_URL> git branch -M dev
AWS DevOps

Configure el nombre de la rama en el archivo de flujo de trabajo .github.

Configura el nombre de la rama en el archivo de flujo de trabajo de implementación, como se muestra en el siguiente ejemplo:

on: workflow_dispatch: push: branches: - dev #Change to any other branch preferred for deployment
Propietario de la aplicación

Configure GitHub los entornos y configure los valores del entorno.

Para configurar GitHub los entornos de su GitHub organización, siga las instrucciones de Configuración de GitHub los entornos del repositorio de este patrón.

Para configurar los valores del entorno en los archivos de flujo de trabajo, siga las instrucciones de Configurar los valores del entorno en los archivos de flujo de trabajo del repositorio de este patrón.

Propietario de la aplicación

Activa el flujo de trabajo.

Para introducir los cambios en su GitHub organización y activar el flujo de trabajo de implementación, ejecute el siguiente comando:

git push -u origin dev
AWS DevOps
TareaDescripciónHabilidades requeridas

Vaya al directorio terraform-deployment .

Para ir al terraform-deployment directorio deASC-Datasets, ejecute el siguiente comando:

cd ASC-Datasets/terraform-deployment
AWS DevOps

Configure el bucket Amazon S3 del estado de Terraform.

Para configurar el bucket Amazon S3 del estado de Terraform, utilice el siguiente script:

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

Configure el bucket Amazon S3 de Terraform Artifacts.

Para configurar el bucket Amazon S3 de Terraform Artifacts, utilice el siguiente script:

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

Configure el backend y la configuración de los proveedores de Terraform.

Para configurar el backend y los proveedores de Terraform, utilice el siguiente 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

Genere un plan de despliegue.

Para generar un plan de despliegue, ejecute los siguientes comandos:

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

Implemente las configuraciones.

Para implementar las configuraciones, ejecute el siguiente comando:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Actualice otras configuraciones y almacene los resultados.

Para actualizar las políticas AWS KMS clave y almacenar los resultados de las configuraciones aplicadas en el bucket Amazon S3 de Terraform Artifacts, ejecute los siguientes comandos:

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

Vaya al directorio terraform-deployment.

Para ir al terraform-deployment directorio deASC-Integration-Flows, ejecute el siguiente comando:

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

Configure el backend y la configuración de los proveedores de Terraform.

Para configurar las configuraciones del backend y del proveedor de Terraform, utilice el siguiente 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

Genere un plan de despliegue.

Para generar un plan de despliegue, ejecute los siguientes comandos. Estos comandos inicializan el entorno de Terraform, combinan las variables de configuración ASC-Datasets con las configuraciones de Terraform existentes y generan un plan de despliegue.

# 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

Implemente las configuraciones.

Para implementar las configuraciones, ejecute el siguiente comando:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Actualice otras configuraciones.

Para actualizar las políticas AWS KMS clave y almacenar los resultados de las configuraciones aplicadas en el bucket Amazon S3 de Terraform Artifacts, ejecute los siguientes comandos:

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

Cargue archivos CSV de muestra.

Para cargar archivos CSV de muestra para los conjuntos de datos, siga los siguientes pasos:

  1. Cree archivos CSV de muestra con datos variados para los conjuntos de datos del calendario y de las líneas de pedidos salientes que se crearon durante la implementación.

  2. Obtenga el ID de la AWS Supply Chain instancia del directorio asc_instance_id de salidas de Terraform.

  3. Tenga en cuenta el nombre del bucket de Amazon S3 AWS Supply Chain que se creó en la implementación: aws-supply-chain-data-<Instance_ID>

  4. Para cargar los archivos mediante el AWS CLI, ejecute los siguientes comandos:

    # Upload Calendar CSV file aws s3 cp calendar_sample.csv s3://aws-supply-chain-data-<Instance_ID>/calendar-data/ # Upload Outbound Order Line CSV file aws s3 cp outbound_order_line_sample.csv s3://aws-supply-chain-data-<Instance_ID>/outbound-order-line-data/
Ingeniero de datos
TareaDescripciónHabilidades requeridas

Configura el AWS Supply Chain acceso.

Para configurar el AWS Supply Chain acceso desde Consola de administración de AWS, siga los siguientes pasos:

  1. Inicie sesión en Consola de administración de AWS y busque el AWS Supply Chain servicio.

  2. Ve a la instanciaasc-deployment-poc-dev-asc-instance.

  3. Este patrón utiliza el Centro de identidad de IAM para gestionar el acceso de los usuarios a la AWS Supply Chain instancia. Para garantizar el acceso completo a esta solución, inicie sesión como administrador de la aplicación.

Propietario de la aplicación
TareaDescripciónHabilidades requeridas

Active el flujo de trabajo de destrucción de los recursos de los flujos de integración.

Active el flujo de trabajo de destrucción ASC-Integration-Flows desde la rama de despliegue de su GitHub organización.

AWS DevOps

Active el flujo de trabajo de destrucción de los recursos de conjuntos de datos.

Active el flujo de trabajo de destrucción ASC-Datasets desde la rama de despliegue de su GitHub organización.

AWS DevOps
TareaDescripciónHabilidades requeridas

Vaya al directorio terraform-deployment.

Para ir al terraform-deployment directorio deASC-Integration-Flows, ejecute el siguiente comando:

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

Configure el backend y la configuración de los proveedores de Terraform.

Para configurar el backend y los proveedores de Terraform, utilice el siguiente 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

Genere un plan de destrucción de infraestructura.

Para prepararse para la destrucción controlada de su AWS infraestructura mediante la generación de un plan de desmontaje detallado, ejecute los siguientes comandos. El proceso inicializa Terraform, incorpora configuraciones de AWS Supply Chain conjuntos de datos y crea un plan de destrucción que puede revisar antes de ejecutarlo.

# 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

Ejecute un plan de destrucción de la infraestructura.

Para ejecutar la destrucción planificada de su infraestructura, ejecute el siguiente comando:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Elimine las salidas de Terraform del bucket de Amazon S3.

Para eliminar el archivo de resultados que se cargó durante la implementación deASC-Integration-Flows, ejecute el siguiente comando:

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

Vaya al directorio terraform-deployment.

Para ir al terraform-deployment directorio deASC-Datasets, ejecute el siguiente comando:

cd ASC-Datasets/terraform-deployment
AWS DevOps

Configure el backend y la configuración de los proveedores de Terraform.

Para configurar el backend y los proveedores de Terraform, utilice el siguiente 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

Genere un plan de destrucción de infraestructura.

Para crear un plan para destruir los recursos del AWS Supply Chain conjunto de datos, ejecute los siguientes comandos:

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

Depósitos de Amazon S3 vacíos.

Para vaciar todos los depósitos de Amazon S3 (excepto el depósito de registro de acceso al servidor, para el que está configuradoforce-destroy), utilice el siguiente script:

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

Ejecute un plan de destrucción de la infraestructura.

Para ejecutar la destrucción planificada de la infraestructura de su AWS Supply Chain conjunto de datos mediante el plan generado, ejecute el siguiente comando:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Elimine las salidas de Terraform del depósito de artefactos de Terraform de Amazon S3.

Para completar el proceso de limpieza, elimine el archivo de resultados que se cargó durante la implementación de ASC-Datasets ejecutando el siguiente comando:

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

Resolución de problemas

ProblemaSolución

Un AWS Supply Chain conjunto de datos o un flujo de integración no se implementó correctamente debido a errores AWS Supply Chain internos o a la insuficiencia de permisos de IAM para la función de servicio.

En primer lugar, limpie todos los recursos. A continuación, vuelva a implementar los recursos del AWS Supply Chainconjunto de datos y, a continuación, vuelva a implementar los recursos del AWS Supply Chain flujo de integración.

El flujo AWS Supply Chain de integración no busca los nuevos archivos de datos cargados para los conjuntos de datos. AWS Supply Chain

  1. Compruebe que el prefijo de la configuración del flujo de AWS Supply Chain integración coincida con el prefijo utilizado al cargar los archivos de datos de muestra.

  2. Si se han vuelto a crear los recursos de AWS Supply Chain los conjuntos de datos, sus nombres de recursos de Amazon (ARNs) asociados cambian internamente. Por lo tanto, vuelva a implementar los recursos para los recursos de los flujos de integración de AWS Supply Chain servicios.

Recursos relacionados

AWS documentación

Otros recursos

Información adicional

Esta solución se puede replicar para más conjuntos de datos y se puede consultar para su posterior análisis, a través de paneles prediseñados que se proporcionan con Amazon Quick Sight o mediante una integración AWS Supply Chain personalizada con Amazon Quick Sight. Además, puedes usar Amazon Q para hacer preguntas relacionadas con tu AWS Supply Chain instancia.

Analice los datos con AWS Supply Chain Analytics

Para obtener instrucciones sobre cómo configurar AWS Supply Chain Analytics, consulte Configuración de AWS Supply Chain Analytics en la AWS Supply Chain documentación.

Este patrón demostró la creación de conjuntos de datos Calendar y Outbound_Order_Line. Para crear un análisis que utilice estos conjuntos de datos, siga los siguientes pasos:

  1. Para analizar los conjuntos de datos, utilice el panel de análisis de estacionalidad. Para agregar el panel, siga los pasos que se indican en los paneles prediseñados de la documentación. AWS Supply Chain

  2. Elija el panel para ver su análisis, que se basa en archivos CSV de muestra para los datos del calendario y los datos de las líneas de pedidos salientes.

El panel proporciona información sobre demanda a lo largo de los años en función de los datos ingeridos para los conjuntos de datos. Puede especificar además el ProductID, el CustomeriD, los años y otros parámetros para el análisis.

Usa Amazon Q para hacer preguntas relacionadas con tu AWS Supply Chain instancia

Amazon Q in AWS Supply Chain es un asistente de IA generativa interactivo que le ayuda a gestionar su cadena de suministro de forma más eficiente. Amazon Q puede hacer lo siguiente:

  • Analice los datos de su lago AWS Supply Chain de datos.

  • Proporcione información operativa y financiera.

  • Responda a sus preguntas inmediatas sobre la cadena de suministro.

Para obtener más información sobre el uso de Amazon Q, consulte Activación de Amazon Q AWS Supply Chain y Uso de Amazon Q AWS Supply Chain in en la AWS Supply Chain documentación.