View a markdown version of this page

Otomatiskan penerapan Rantai Pasokan AWS data lake dalam pengaturan multi-repositori dengan menggunakan GitHub Actions, Artifactory, dan Terraform - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Otomatiskan penerapan Rantai Pasokan AWS data lake dalam pengaturan multi-repositori dengan menggunakan GitHub Actions, Artifactory, dan Terraform

Keshav Ganesh, Amazon Web Services

Ringkasan

Pola ini menyediakan pendekatan otomatis untuk menyebarkan dan mengelola Rantai Pasokan AWS data lake menggunakan integrasi berkelanjutan multi-repositori dan penerapan berkelanjutan (kemampuan. 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

Solusi ini memanfaatkan Rantai Pasokan AWS AWS Lambda, dan Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) untuk membuat infrastruktur data lake, sambil menggunakan salah satu metode penyebaran untuk mengotomatiskan konfigurasi dan pembuatan sumber daya. Otomatisasi ini menghilangkan langkah-langkah konfigurasi manual dan memastikan penerapan yang konsisten di seluruh lingkungan. Selain itu, Rantai Pasokan AWS menghilangkan kebutuhan akan keahlian mendalam dalam mengekstrak, mengubah, dan memuat (ETL) dan dapat memberikan wawasan dan analitik yang didukung oleh Amazon Quick Sight.

Dengan menerapkan pola ini, organisasi dapat mengurangi waktu penyebaran, memelihara infrastruktur sebagai kode, dan mengelola data lake rantai pasokan melalui proses otomatis yang dikendalikan versi. Pendekatan multi-repositori menyediakan kontrol akses berbutir halus dan mendukung penyebaran independen komponen yang berbeda. Tim dapat memilih metode penerapan yang paling sesuai dengan alat dan proses yang ada.

Prasyarat dan batasan

Prasyarat

Pastikan yang berikut ini diinstal pada mesin lokal Anda:

Pastikan hal-hal berikut sudah ada sebelum penerapan:

  • Aktif Akun AWS.

  • Virtual Private Cloud (VPC) dengan dua subnet pribadi di Akun AWS pilihan Anda Wilayah AWS .

  • Izin yang memadai untuk peran AWS Identity and Access Management (IAM) yang digunakan untuk penyebaran ke layanan berikut:

    • Rantai Pasokan AWS — Akses Penuh lebih disukai untuk menyebarkan komponennya seperti kumpulan data dan aliran integrasi, bersama dengan mengaksesnya dari file. Konsol Manajemen AWS

    • Amazon CloudWatch Logs — Untuk membuat dan mengelola grup CloudWatch log.

    • Amazon Elastic Compute Cloud (Amazon EC2) - Untuk grup keamanan Amazon EC2 dan titik akhir Amazon Virtual Private Cloud (Amazon VPC).

    • Amazon EventBridge — Untuk digunakan oleh Rantai Pasokan AWS.

    • IAM — Untuk membuat peran AWS Lambda layanan.

    • AWS Key Management Service (AWS KMS) — Untuk akses ke bucket artefak Amazon S3 yang AWS KMS keys digunakan dan bucket pementasan Amazon S3. Rantai Pasokan AWS

    • AWS Lambda — Untuk membuat fungsi Lambda yang menyebarkan komponen. Rantai Pasokan AWS

    • Amazon S3 — Untuk akses ke bucket artefak Amazon S3, bucket logging akses server, dan bucket staging. Rantai Pasokan AWS Jika Anda menggunakan penerapan manual, izin untuk bucket artefak Amazon S3 Terraform juga diperlukan.

    • Amazon VPC — Untuk membuat dan mengelola VPC.

Jika Anda lebih suka menggunakan alur kerja GitHub Tindakan untuk penerapan, lakukan hal berikut:

Jika Anda lebih suka melakukan penerapan manual, lakukan hal berikut:

Jika Anda lebih suka menggunakan alur kerja GitHub Tindakan untuk penerapan, siapkan yang berikut ini:

Batasan

  • Rantai Pasokan AWS Instance tidak mendukung teknik transformasi data yang kompleks.

  • Rantai Pasokan AWS paling cocok untuk domain rantai pasokan karena menyediakan analitik dan wawasan bawaan. Untuk domain lain, Rantai Pasokan AWS dapat digunakan sebagai penyimpanan data sebagai bagian dari arsitektur danau data.

  • Fungsi Lambda yang digunakan dalam solusi ini mungkin perlu ditingkatkan untuk menangani percobaan ulang API dan manajemen memori dalam penerapan skala produksi.

  • Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat AWS Layanan menurut Wilayah. Untuk titik akhir tertentu, lihat Titik akhir dan kuota layanan, dan pilih tautan untuk layanan.

Arsitektur

Anda dapat menerapkan solusi ini baik dengan menggunakan alur kerja GitHub Tindakan otomatis atau secara manual menggunakan Terraform.

Penerapan otomatis dengan Tindakan GitHub

Diagram berikut menunjukkan opsi penerapan otomatis yang menggunakan alur kerja GitHub Tindakan. JFrog Artifactory digunakan untuk manajemen artefak. Ini menyimpan informasi sumber daya dan output untuk digunakan dalam penyebaran multi-repositori.

Opsi penerapan otomatis yang menggunakan alur kerja GitHub Tindakan dan. JFrog

Penerapan manual dengan Terraform

Diagram berikut menunjukkan opsi penerapan manual melalui Terraform. Alih-alih JFrog Artifactory, Amazon S3 digunakan untuk manajemen artefak.

Opsi penerapan manual menggunakan Terraform dan Amazon S3.

Alur kerja penerapan

Diagram menunjukkan alur kerja berikut:

  1. Menyebarkan infrastruktur dan database kumpulan data Rantai Pasokan AWS layanan menggunakan salah satu metode penerapan berikut:

    • Penerapan otomatis — Menggunakan alur kerja GitHub Tindakan untuk mengatur semua langkah penerapan dan menggunakan Artifactory untuk manajemen artefak. JFrog

    • Penerapan manual — Menjalankan perintah Terraform secara langsung untuk setiap langkah penerapan dan menggunakan Amazon S3 untuk manajemen artefak.

  2. Buat AWS sumber daya pendukung yang diperlukan untuk operasi Rantai Pasokan AWS layanan:

    • Titik akhir Amazon VPC dan grup keamanan

    • AWS KMS keys

    • CloudWatch Grup log log

  3. Membuat dan menyebarkan sumber daya infrastruktur berikut:

    • Fungsi Lambda yang mengelola (membuat, memperbarui, dan menghapus) instance Rantai Pasokan AWS layanan, ruang nama, dan kumpulan data.

    • Rantai Pasokan AWS pementasan bucket Amazon S3 untuk konsumsi data

  4. Menerapkan fungsi Lambda yang mengelola alur integrasi antara bucket staging dan dataset. Rantai Pasokan AWS Setelah penerapan selesai, langkah-langkah alur kerja yang tersisa mengelola konsumsi dan analisis data.

  5. Konfigurasikan konsumsi data sumber ke bucket Amazon Rantai Pasokan AWS S3 pementasan.

  6. Setelah data ditambahkan ke bucket Amazon Rantai Pasokan AWS S3 pementasan, layanan secara otomatis memicu aliran integrasi ke kumpulan data. Rantai Pasokan AWS

  7. Rantai Pasokan AWS terintegrasi dengan Quick Sight Analytics untuk menghasilkan dasbor berdasarkan data yang dicerna.

Alat

Layanan AWS

  • Amazon CloudWatch Logs membantu Anda memusatkan log dari semua sistem, aplikasi, Layanan AWS sehingga Anda dapat memantau dan mengarsipkannya dengan aman.

  • AWS Command Line Interface (AWS CLI) adalah alat open source yang membantu Anda berinteraksi Layanan AWS melalui perintah di shell baris perintah Anda.

  • Amazon Elastic Compute Cloud (Amazon EC2) menyediakan kapasitas komputasi yang dapat diskalakan di. AWS Cloud Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.

  • Amazon EventBridge adalah layanan bus acara tanpa server yang membantu Anda menghubungkan aplikasi Anda dengan data waktu nyata dari berbagai sumber. Misalnya, AWS Lambda fungsi, titik akhir pemanggilan HTTP menggunakan tujuan API, atau bus acara di tempat lain. Akun AWS

  • AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.

  • AWS IAM Identity Centermembantu Anda mengelola akses masuk tunggal (SSO) secara terpusat ke semua aplikasi Anda Akun AWS dan cloud.

  • AWS Key Management Service (AWS KMS) membantu Anda membuat dan mengontrol kunci kriptografi untuk membantu melindungi data Anda.

  • AWS Lambdaadalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.

  • Amazon Q in Rantai Pasokan AWS adalah asisten AI generatif interaktif yang membantu Anda mengoperasikan rantai pasokan Anda secara lebih efisien dengan menganalisis data di Rantai Pasokan AWS data lake Anda.

  • Amazon Quick Sight adalah layanan intelijen bisnis skala cloud (BI) yang membantu Anda memvisualisasikan, menganalisis, dan melaporkan data Anda dalam satu dasbor.

  • Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

  • Rantai Pasokan AWSadalah aplikasi terkelola berbasis cloud yang dapat digunakan sebagai penyimpanan data dalam organisasi untuk domain rantai pasokan, yang dapat digunakan untuk menghasilkan wawasan dan melakukan analisis pada data yang dicerna.

  • Amazon Virtual Private Cloud (Amazon VPC) membantu Anda meluncurkan AWS sumber daya ke jaringan virtual yang telah Anda tentukan. Jaringan virtual ini menyerupai jaringan tradisional yang akan Anda operasikan di pusat data Anda sendiri, dengan manfaat menggunakan infrastruktur yang dapat diskalakan. AWSEndpoint Amazon VPC adalah perangkat virtual yang membantu Anda menghubungkan VPC Anda secara pribadi ke yang didukung Layanan AWS tanpa memerlukan gateway internet, perangkat NAT, koneksi VPN, atau koneksi. AWS Direct Connect

Alat-alat lainnya

  • GitHub Actions adalah platform integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) yang terintegrasi erat dengan GitHub repositori. Anda dapat menggunakan GitHub Actions untuk mengotomatiskan pipeline build, test, dan deployment.

  • HashiCorp Terraform adalah alat infrastruktur sebagai kode (IAc) yang membantu Anda membuat dan mengelola sumber daya cloud dan lokal.

  • JFrog Artifactory menyediakan end-to-end otomatisasi dan manajemen binari dan artefak melalui proses pengiriman aplikasi.

  • Python adalah bahasa pemrograman komputer tujuan umum. Pola ini menggunakan Python untuk kode AWS fungsi untuk berinteraksi dengan Rantai Pasokan AWS

    .

Praktik terbaik

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Kloning repositori.

Untuk mengkloning repositori pola ini, jalankan perintah berikut di workstation lokal Anda:

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

(Opsi otomatis) Verifikasi prasyarat untuk penerapan.

Pastikan Prasyarat lengkap untuk penerapan otomatis.

Pemilik aplikasi

(Opsi manual) Bersiaplah untuk penyebaran kumpulan Rantai Pasokan AWS data.

Untuk pergi ke terraform-deployment direktoriASC-Datasets, jalankan perintah berikut:

cd ASC-Datasets/terraform-deployment

Untuk mengasumsikan peran ARN yang dibuat dalam Prasyarat, jalankan perintah berikut:

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

Untuk mengkonfigurasi dan mengekspor variabel lingkungan, jalankan perintah berikut:

# 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

(Opsi manual) Bersiaplah untuk mengelola aliran Rantai Pasokan AWS integrasi dalam penerapan.

Untuk pergi ke terraform-deployment direktoriASC-Integration-Flows, jalankan perintah berikut:

cd ASC-Integration-Flows/terraform-deployment

Untuk mengasumsikan peran ARN yang dibuat sebelumnya, jalankan perintah berikut:

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

Untuk mengkonfigurasi dan mengekspor variabel lingkungan, jalankan perintah berikut:

# 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"
Pemilik aplikasi
TugasDeskripsiKeterampilan yang dibutuhkan

Salin ASC-Datasets direktori.

Untuk menyalin ASC-Datasets direktori ke lokasi baru, gunakan langkah-langkah berikut:

  1. Untuk pergi ke ASC-Datasets direktori, jalankan perintah berikut:

    cd ASC-Datasets
  2. Untuk menyalin ASC-Datasets direktori ke lokasi baru, jalankan perintah berikut:

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

Siapkan ASC-Datasets direktori.

Untuk mengatur ASC-Datasets sebagai repositori mandiri di organisasi Anda, jalankan perintah berikut:

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

Konfigurasikan nama cabang di file alur kerja.github.

Siapkan nama cabang dalam berkas alur kerja deployment seperti yang ditunjukkan pada contoh berikut:

on: workflow_dispatch: push: branches: - dev #Change to any other branch preferred for deployment
Pemilik aplikasi

Siapkan GitHub lingkungan dan konfigurasikan nilai lingkungan.

Untuk menyiapkan GitHub lingkungan di GitHub organisasi Anda, gunakan petunjuk di GitHub lingkungan Pengaturan di repositori pola ini.

Untuk mengonfigurasi nilai lingkungan dalam file alur kerja, gunakan instruksi di Nilai lingkungan pengaturan dalam file alur kerja di repositori pola ini.

Pemilik aplikasi

Memicu alur kerja.

Untuk mendorong perubahan ke GitHub organisasi dan memicu alur kerja penerapan, jalankan perintah berikut:

git push -u origin dev
AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Salin ASC-Integration-Flows direktori.

Untuk menyalin ASC-Integration-Flows direktori ke lokasi baru, gunakan langkah-langkah berikut:

  1. Untuk pergi ke ASC-Integration-Flows direktori, jalankan perintah berikut:

    cd ASC-Integration-Flows
  2. Untuk menyalin ASC-Integration-Flows direktori ke lokasi baru, jalankan perintah berikut:

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

Siapkan ASC-Integration-Flows direktori.

Untuk menyiapkan ASC-Integration-Flows direktori sebagai repositori mandiri di organisasi Anda, jalankan perintah berikut:

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

Konfigurasikan nama cabang di file alur kerja.github.

Siapkan nama cabang dalam berkas alur kerja deployment seperti yang ditunjukkan pada contoh berikut:

on: workflow_dispatch: push: branches: - dev #Change to any other branch preferred for deployment
Pemilik aplikasi

Siapkan GitHub lingkungan dan konfigurasikan nilai lingkungan.

Untuk menyiapkan GitHub lingkungan di GitHub organisasi Anda, gunakan petunjuk di GitHub lingkungan Pengaturan di repositori pola ini.

Untuk mengonfigurasi nilai lingkungan dalam file alur kerja, gunakan instruksi di Nilai lingkungan pengaturan dalam file alur kerja di repositori pola ini.

Pemilik aplikasi

Memicu alur kerja.

Untuk mendorong perubahan ke GitHub organisasi dan memicu alur kerja penerapan, jalankan perintah berikut:

git push -u origin dev
AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Buka direktori terraform-deployment tersebut.

Untuk pergi ke terraform-deployment direktoriASC-Datasets, jalankan perintah berikut:

cd ASC-Datasets/terraform-deployment
AWS DevOps

Siapkan bucket Amazon S3 status Terraform.

Untuk menyiapkan bucket Amazon S3 status Terraform, gunakan skrip berikut:

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

Siapkan ember artefak Terraform Amazon S3.

Untuk menyiapkan bucket Amazon S3 artefak Terraform, gunakan skrip berikut:

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

Siapkan konfigurasi backend dan penyedia Terraform.

Untuk menyiapkan konfigurasi backend dan penyedia Terraform, gunakan skrip berikut:

# 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

Hasilkan rencana penerapan.

Untuk membuat rencana penyebaran, jalankan perintah berikut:

# 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

Menyebarkan konfigurasi.

Untuk menerapkan konfigurasi, jalankan perintah berikut:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Perbarui konfigurasi lain dan simpan output.

Untuk memperbarui kebijakan AWS KMS utama dan menyimpan output konfigurasi yang diterapkan di bucket Amazon S3 artefak Terraform, jalankan perintah berikut:

# 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
TugasDeskripsiKeterampilan yang dibutuhkan

Buka direktori terraform-deployment tersebut.

Untuk pergi ke terraform-deployment direktoriASC-Integration-Flows, jalankan perintah berikut:

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

Siapkan konfigurasi backend dan penyedia Terraform.

Untuk menyiapkan konfigurasi backend dan penyedia Terraform, gunakan skrip berikut:

# 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

Hasilkan rencana penerapan.

Untuk menghasilkan rencana penyebaran, jalankan perintah berikut. Perintah ini menginisialisasi lingkungan Terraform Anda, menggabungkan variabel konfigurasi dari ASC-Datasets konfigurasi Terraform Anda yang ada, dan menghasilkan rencana penerapan.

# 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

Menyebarkan konfigurasi.

Untuk menerapkan konfigurasi, jalankan perintah berikut:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Perbarui konfigurasi lainnya.

Untuk memperbarui kebijakan AWS KMS utama dan menyimpan output konfigurasi yang diterapkan di bucket Amazon S3 artefak Terraform, jalankan perintah berikut:

# 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
TugasDeskripsiKeterampilan yang dibutuhkan

Unggah contoh file CSV.

Untuk mengunggah file CSV sampel untuk kumpulan data, gunakan langkah-langkah berikut:

  1. Buat contoh file CSV dengan beragam data untuk kumpulan data Kalender dan Garis Pesanan Keluar yang dibuat dalam penerapan.

  2. Ambil ID Rantai Pasokan AWS instance asc_instance_id dari direktori keluaran terraform.

  3. Perhatikan nama bucket Amazon S3 untuk Rantai Pasokan AWS yang dibuat dalam penerapan: aws-supply-chain-data-<Instance_ID>

  4. Untuk mengunggah file dengan menggunakan AWS CLI, jalankan perintah berikut:

    # 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/
Insinyur data
TugasDeskripsiKeterampilan yang dibutuhkan

Mengatur Rantai Pasokan AWS akses.

Untuk mengatur Rantai Pasokan AWS akses dari Konsol Manajemen AWS, gunakan langkah-langkah berikut:

  1. Masuk ke Konsol Manajemen AWS dan cari Rantai Pasokan AWS layanan.

  2. Pergi ke instanceasc-deployment-poc-dev-asc-instance.

  3. Pola ini menggunakan IAM Identity Center untuk mengelola akses pengguna ke Rantai Pasokan AWS instance. Untuk memastikan akses lengkap ke solusi ini, masuk sebagai Administrator aplikasi.

Pemilik aplikasi
TugasDeskripsiKeterampilan yang dibutuhkan

Memicu alur kerja penghancuran untuk sumber daya alur integrasi.

Memicu alur kerja penghancuran ASC-Integration-Flows dari cabang penyebaran Anda di organisasi Anda GitHub .

AWS DevOps

Memicu alur kerja penghancuran untuk sumber daya kumpulan data.

Memicu alur kerja penghancuran ASC-Datasets dari cabang penyebaran Anda di organisasi Anda GitHub .

AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Buka direktori terraform-deployment tersebut.

Untuk pergi ke terraform-deployment direktoriASC-Integration-Flows, jalankan perintah berikut:

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

Siapkan konfigurasi backend dan penyedia Terraform.

Untuk menyiapkan konfigurasi backend dan penyedia Terraform, gunakan skrip berikut:

# 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

Menghasilkan rencana penghancuran infrastruktur.

Untuk mempersiapkan penghancuran AWS infrastruktur Anda yang terkontrol dengan membuat rencana pembongkaran terperinci, jalankan perintah berikut. Proses ini menginisialisasi Terraform, menggabungkan konfigurasi Rantai Pasokan AWS kumpulan data, dan membuat rencana penghancuran yang dapat Anda tinjau sebelum dijalankan.

# 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

Jalankan rencana penghancuran infrastruktur.

Untuk menjalankan penghancuran infrastruktur yang direncanakan, jalankan perintah berikut:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Hapus output Terraform dari bucket Amazon S3.

Untuk menghapus file output yang diunggah selama penyebaranASC-Integration-Flows, jalankan perintah berikut:

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

Buka direktori terraform-deployment tersebut.

Untuk pergi ke terraform-deployment direktoriASC-Datasets, jalankan perintah berikut:

cd ASC-Datasets/terraform-deployment
AWS DevOps

Siapkan konfigurasi backend dan penyedia Terraform.

Untuk menyiapkan konfigurasi backend dan penyedia Terraform, gunakan skrip berikut:

# 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

Menghasilkan rencana penghancuran infrastruktur.

Untuk membuat rencana untuk menghancurkan sumber daya Rantai Pasokan AWS dataset, jalankan perintah berikut:

# 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

Ember Amazon S3 kosong.

Untuk mengosongkan semua bucket Amazon S3 (kecuali bucket logging akses server, yang dikonfigurasi untukforce-destroy), gunakan skrip berikut:

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

Jalankan rencana penghancuran infrastruktur.

Untuk menjalankan penghancuran infrastruktur Rantai Pasokan AWS dataset Anda yang direncanakan menggunakan rencana yang dihasilkan, jalankan perintah berikut:

# Run terraform apply terraform apply tfplan.out
AWS DevOps

Hapus keluaran Terraform dari ember artefak Amazon S3 Terraform.

Untuk menyelesaikan proses pembersihan, hapus file output yang diunggah selama penerapan ASC-Datasets dengan menjalankan perintah berikut:

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

Pemecahan masalah

IsuSolusi

Rantai Pasokan AWS Kumpulan data atau alur integrasi tidak diterapkan dengan benar karena kesalahan Rantai Pasokan AWS internal atau izin IAM yang tidak memadai untuk peran layanan.

Pertama, bersihkan semua sumber daya. Kemudian, terapkan ulang sumber daya Rantai Pasokan AWS kumpulan data dan kemudian gunakan kembali sumber daya aliran integrasi. Rantai Pasokan AWS

Alur Rantai Pasokan AWS integrasi tidak mengambil file data baru yang diunggah untuk kumpulan data. Rantai Pasokan AWS

  1. Periksa apakah awalan konfigurasi alur Rantai Pasokan AWS integrasi cocok dengan awalan yang digunakan saat mengunggah file data sampel.

  2. Jika sumber daya untuk Rantai Pasokan AWS kumpulan data dibuat ulang, Amazon Resource Names (ARNs) yang terkait akan berubah secara internal. Oleh karena itu, menyebarkan kembali sumber daya untuk sumber daya aliran integrasi Rantai Pasokan AWS layanan.

Sumber daya terkait

AWS dokumentasi

Sumber daya lainnya

Informasi tambahan

Solusi ini dapat direplikasi untuk lebih banyak kumpulan data dan dapat ditanyakan untuk analisis lebih lanjut, melalui dasbor bawaan yang disediakan atau integrasi Rantai Pasokan AWS khusus dengan Amazon Quick Sight. Selain itu, Anda dapat menggunakan Amazon Q untuk mengajukan pertanyaan terkait Rantai Pasokan AWS instans Anda.

Menganalisis data dengan Rantai Pasokan AWS Analytics

Untuk petunjuk menyiapkan Rantai Pasokan AWS Analytics, lihat Menyetel Rantai Pasokan AWS Analytics di Rantai Pasokan AWS dokumentasi.

Pola ini menunjukkan pembuatan kumpulan data Kalender dan Outbound_Order_Line. Untuk membuat analisis yang menggunakan kumpulan data ini, gunakan langkah-langkah berikut:

  1. Untuk menganalisis kumpulan data, gunakan dasbor Analisis Musim. Untuk menambahkan dasbor, ikuti langkah-langkah di dasbor Prebuilt dalam dokumentasi. Rantai Pasokan AWS

  2. Pilih dasbor untuk melihat analisisnya yang didasarkan pada contoh file CSV untuk data Kalender dan data Outbound Order Line.

Dasbor memberikan wawasan tentang permintaan selama bertahun-tahun berdasarkan data yang dicerna untuk kumpulan data. Anda dapat lebih lanjut menentukan ProductID, CustomerID, tahun, dan parameter lain untuk analisis.

Gunakan Amazon Q untuk mengajukan pertanyaan terkait Rantai Pasokan AWS instans Anda

Amazon Q in Rantai Pasokan AWS adalah asisten AI generatif interaktif yang membantu Anda mengoperasikan rantai pasokan dengan lebih efisien. Amazon Q dapat melakukan hal berikut:

  • Analisis data di danau Rantai Pasokan AWS data Anda.

  • Memberikan wawasan operasional dan keuangan.

  • Jawab pertanyaan rantai pasokan langsung Anda.

Untuk informasi selengkapnya tentang menggunakan Amazon Q, lihat Mengaktifkan Amazon Q di Rantai Pasokan AWS dan Menggunakan Amazon Q Rantai Pasokan AWS dalam Rantai Pasokan AWS dokumentasi.