

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

# Mengotomatiskan penyebaran Rantai Pasokan AWS data lake dalam pengaturan multi-repositori
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes"></a>

*Keshav Ganesh, Amazon Web Services*

## Ringkasan
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes-summary"></a>

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
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes-prereqs"></a>

**Prasyarat**

Pastikan yang berikut ini diinstal pada mesin lokal Anda:
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) versi 2
+ [GitHub CLI](https://docs.github.com/en/get-started/git-basics/set-up-git)
+ [Python v3.13](https://www.python.org/downloads/)
+ [Terraform](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli) v1.12 atau yang lebih baru

Pastikan hal-hal berikut sudah ada sebelum penerapan:
+ Aktif Akun AWS.
+ [Virtual Private Cloud (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) dengan dua [subnet pribadi](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-example-private-subnets-nat.html) 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:
+ Siapkan [OpenID Connect (OIDC)](https://docs.github.com/en/actions/how-tos/secure-your-work/security-harden-deployments/oidc-in-aws#configuring-the-role-and-trust-policy) untuk peran IAM dengan izin yang disebutkan sebelumnya.
+ Buat peran IAM dengan izin serupa untuk mengakses. Konsol Manajemen AWS Untuk informasi selengkapnya, lihat [Membuat peran untuk memberikan izin kepada pengguna IAM dalam dokumentasi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) IAM.

Jika Anda lebih suka melakukan penerapan manual, lakukan hal berikut:
+ Buat pengguna IAM untuk mengambil peran IAM dengan izin yang disebutkan sebelumnya. Untuk informasi selengkapnya, lihat [Membuat peran untuk memberikan izin kepada pengguna IAM dalam dokumentasi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) IAM.
+ [Asumsikan peran](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-role.html) di terminal lokal Anda.

Jika Anda lebih suka menggunakan alur kerja GitHub Tindakan untuk penerapan, siapkan yang berikut ini:
+ [Akun JFrog Artifactory](https://jfrog.com/artifactory/?utm_source=google&utm_medium=cpc_search&utm_campaign=SearchDSKBrandAPACIN202506&utm_term=jfrog%20cloud&gads_network=g&utm_content=u-bin&gads_campaign_id=22674833884&gads_adgroup_id=184501797241&gads_extension_id=233003714635&gads_target_id=aud-312135645780:kwd-1598615735032&gads_matchtype=b&gad_source=1&gad_campaignid=22674833884&gbraid=0AAAAADqV85U5B37iapTR9IIFHBvydF5AQ&gclid=CjwKCAjwiY_GBhBEEiwAFaghvqdNV-odNLZXPHjT7NAwf8lA-QuMtg666hgvDW1oCJ4nn7wvf869_xoCW4IQAvD_BwE) untuk mendapatkan nama host, nama pengguna login, dan token akses login.
+ [Kunci JFrog proyek dan repositori](https://docs.jfrog.com/projects/docs/create-a-project) untuk menyimpan artefak.

**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](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Untuk titik akhir tertentu, lihat [Titik akhir dan kuota layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), dan pilih tautan untuk layanan.

## Arsitektur
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes-architecture"></a>

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\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/2f0b78b0-a174-4703-b533-d66b3fb005e0/images/d454a5c5-ed51-421c-a87f-ff74cfcb30be.png)


**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.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/2f0b78b0-a174-4703-b533-d66b3fb005e0/images/1130e728-44d5-4ae7-9586-1e497f54352a.png)


**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.

1. 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

1. 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

1. 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.

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

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

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

## Alat
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes-tools"></a>

**Layanan AWS**
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) membantu Anda memusatkan log dari semua sistem, aplikasi, Layanan AWS sehingga Anda dapat memantau dan mengarsipkannya dengan aman.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) 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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) 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](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) 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)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)membantu Anda mengelola akses masuk tunggal (SSO) secara terpusat ke semua aplikasi Anda Akun AWS dan cloud.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) membantu Anda membuat dan mengontrol kunci kriptografi untuk membantu melindungi data Anda.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)adalah 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](https://docs.aws.amazon.com/aws-supply-chain/latest/userguide/qinasc.html) 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](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [Rantai Pasokan AWS](https://docs.aws.amazon.com/aws-supply-chain/latest/adminguide/getting-started.html)adalah 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)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) 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. AWS[Endpoint Amazon VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) 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](https://docs.github.com/en/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](https://www.terraform.io/) adalah alat infrastruktur sebagai kode (IAc) yang membantu Anda membuat dan mengelola sumber daya cloud dan lokal.
+ [JFrog Artifactory](https://jfrog.com/help/r/jfrog-artifactory-documentation/jfrog-artifactory) menyediakan end-to-end otomatisasi dan manajemen binari dan artefak melalui proses pengiriman aplikasi.
+ [Python adalah bahasa](https://www.python.org/) pemrograman komputer tujuan umum. Pola ini menggunakan Python untuk kode AWS fungsi untuk berinteraksi Rantai Pasokan AWS

  .

## Praktik terbaik
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes-best-practices"></a>
+ Pertahankan keamanan setinggi mungkin saat menerapkan pola ini. Seperti yang dinyatakan dalam [Prasyarat](#automate-the-deployment-of-aws-supply-chain-data-lakes-prereqs), pastikan [virtual private cloud (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) dengan dua [subnet pribadi](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-example-private-subnets-nat.html) ada di pilihan Anda. Akun AWS Wilayah AWS 
+ Gunakan [kunci terkelola AWS KMS pelanggan](https://docs.aws.amazon.com/kms/latest/cryptographic-details/basic-concepts.html) sedapat mungkin, dan berikan izin akses terbatas kepada mereka.
+ Untuk mengatur peran IAM dengan akses paling sedikit yang diperlukan untuk menelan data untuk pola ini, lihat [Pengambilan Data Aman dari Sistem Sumber ke Amazon S3 di repositori](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/tree/main?tab=readme-ov-file#secure-data-ingestion-from-source-systems-to-amazon-s3) pola ini.

## Epik
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes-epics"></a>

### (Kedua opsi) Siapkan workstation lokal
<a name="both-options-set-up-local-workstation"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning repositori. | Untuk mengkloning repositori pola ini, jalankan perintah berikut di workstation lokal Anda:<pre>git clone https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment.git<br />cd ASC-Deployment</pre> | AWS DevOps | 
| (Opsi otomatis) Verifikasi prasyarat untuk penerapan. | Pastikan [Prasyarat](#automate-the-deployment-of-aws-supply-chain-data-lakes-prereqs) lengkap untuk penerapan otomatis. | Pemilik aplikasi | 
| (Opsi manual) Bersiaplah untuk penyebaran kumpulan Rantai Pasokan AWS data. | Untuk pergi ke `terraform-deployment` direktori`ASC-Datasets`, jalankan perintah berikut:<pre>cd ASC-Datasets/terraform-deployment</pre>Untuk mengasumsikan peran ARN yang dibuat dalam [Prasyarat](#automate-the-deployment-of-aws-supply-chain-data-lakes-prereqs), jalankan perintah berikut:<pre>aws sts assume-role --role-arn <enter AWS user role ARN> --role-session-name <your-session-name></pre>Untuk mengkonfigurasi dan mengekspor variabel lingkungan, jalankan perintah berikut:<pre># Export Environment variables<br />export REGION=<Enter deployment region><br />export REPO_NAME=<Enter Current ASC Datasets dir name><br />export PROJECT_NAME="asc-deployment-poc"<br />export ACCOUNT_ID=<Enter deployment Account ID><br />export ENVIRONMENT="dev"<br />export LAMBDA_LAYER_TEMP_DIR_TERRAFORM="layerOutput"<br />export LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM="lambdaOutput"<br />export AWS_USER_ROLE=<Enter user role ARN for AWS Console access and deployment><br />export S3_TERRAFORM_ARTIFACTS_BUCKET_NAME="$PROJECT_NAME-$ACCOUNT_ID-$REGION-terraform-artifacts-$ENVIRONMENT"</pre> | AWS DevOps | 
| (Opsi manual) Bersiaplah untuk mengelola aliran Rantai Pasokan AWS integrasi dalam penerapan. | Untuk pergi ke `terraform-deployment` direktori`ASC-Integration-Flows`, jalankan perintah berikut:<pre>cd ASC-Integration-Flows/terraform-deployment</pre>Untuk mengasumsikan peran ARN yang dibuat sebelumnya, jalankan perintah berikut:<pre>aws sts assume-role --role-arn <enter AWS user role ARN> --role-session-name <your-session-name></pre>Untuk mengkonfigurasi dan mengekspor variabel lingkungan, jalankan perintah berikut:<pre># Export Environment variables<br />export REGION=<Enter deployment region><br />export REPO_NAME=<Enter Current ASC Integration Flows dir name><br />export ASC_DATASET_VARS_REPO=<Enter Current ASC Datasets dir name>  #Must be the same directory name used for ASC Datasets deployment<br />export PROJECT_NAME="asc-deployment-poc"<br />export ACCOUNT_ID=<Enter deployment Account ID><br />export ENVIRONMENT="dev"<br />export LAMBDA_LAYER_TEMP_DIR_TERRAFORM="layerOutput"<br />export LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM="lambdaOutput"<br />export S3_TERRAFORM_ARTIFACTS_BUCKET_NAME="$PROJECT_NAME-$ACCOUNT_ID-$REGION-terraform-artifacts-$ENVIRONMENT"</pre> | Pemilik aplikasi | 

### (Opsi otomatis) Menyebarkan Rantai Pasokan AWS kumpulan data menggunakan alur kerja Tindakan GitHub
<a name="automated-option-deploy-supplychain-datasets-using-github-actions-workflows"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Salin `ASC-Datasets` direktori. | Untuk menyalin `ASC-Datasets` direktori ke lokasi baru, gunakan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-the-deployment-of-aws-supply-chain-data-lakes.html) | AWS DevOps | 
| Siapkan `ASC-Datasets` direktori. | Untuk mengatur `ASC-Datasets` sebagai repositori mandiri di organisasi Anda, jalankan perintah berikut:<pre>git init<br />git add .<br />git commit -m "Initial commit: ASC-Datasets standalone repository"<br />git remote add origin <INSERT_ASC_DATASETS_GITHUB_URL><br />git branch -M dev</pre> | AWS DevOps | 
| Konfigurasikan nama cabang di file alur kerja.github. | Siapkan nama cabang dalam berkas alur kerja [deployment](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/blob/main/ASC-Datasets/.github/workflows/asc-datasets.yml) seperti yang ditunjukkan pada contoh berikut:<pre>   on:<br />     workflow_dispatch:<br />     push:<br />       branches:<br />         - dev     #Change to any other branch preferred for deployment</pre> | Pemilik aplikasi | 
| Siapkan GitHub lingkungan dan konfigurasikan nilai lingkungan. | Untuk menyiapkan GitHub lingkungan di GitHub organisasi Anda, gunakan petunjuk di [ GitHub lingkungan Pengaturan](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/tree/main/ASC-Datasets#setup-github-environments) di repositori pola ini.Untuk mengonfigurasi [nilai lingkungan](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/tree/main/ASC-Datasets#setup-environment-values-in-the-workflow-files) dalam file alur kerja, gunakan instruksi di [Nilai lingkungan pengaturan dalam file alur kerja di](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/tree/main/ASC-Datasets#setup-environment-values-in-the-workflow-files) repositori pola ini. | Pemilik aplikasi | 
| Memicu alur kerja. | Untuk mendorong perubahan ke GitHub organisasi dan memicu alur kerja penerapan, jalankan perintah berikut:<pre>git push -u origin dev</pre> | AWS DevOps | 

### (Opsi otomatis) Menerapkan alur Rantai Pasokan AWS integrasi menggunakan alur kerja GitHub Tindakan
<a name="automated-option-deploy-supplychain-integration-flows-using-github-actions-workflows"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Salin `ASC-Integration-Flows` direktori. | Untuk menyalin `ASC-Integration-Flows` direktori ke lokasi baru, gunakan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-the-deployment-of-aws-supply-chain-data-lakes.html) | AWS DevOps | 
| Siapkan `ASC-Integration-Flows` direktori. | Untuk menyiapkan `ASC-Integration-Flows` direktori sebagai repositori mandiri di organisasi Anda, jalankan perintah berikut:<pre>git init<br />git add .<br />git commit -m "Initial commit: ASC-Integration-Flows standalone repository"<br />git remote add origin <INSERT_ASC_Integration_Flows_GITHUB_URL><br />git branch -M dev</pre> | AWS DevOps | 
| Konfigurasikan nama cabang di file alur kerja.github. | Siapkan nama cabang dalam berkas alur kerja [deployment](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/blob/main/ASC-Integration-Flows/.github/workflows/asc-integration-flows.yml) seperti yang ditunjukkan pada contoh berikut:<pre>   on:<br />     workflow_dispatch:<br />     push:<br />       branches:<br />         - dev     #Change to any other branch preferred for deployment</pre> | Pemilik aplikasi | 
| Siapkan GitHub lingkungan dan konfigurasikan nilai lingkungan. | Untuk menyiapkan GitHub lingkungan di GitHub organisasi Anda, gunakan petunjuk di [ GitHub lingkungan Pengaturan](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/tree/main/ASC-Integration-Flows#setup-github-environments) di repositori pola ini.Untuk mengonfigurasi [nilai lingkungan](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/tree/main/ASC-Integration-Flows#setup-github-environments) dalam file alur kerja, gunakan instruksi di [Nilai lingkungan pengaturan dalam file alur kerja di](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/tree/main/ASC-Integration-Flows#setup-environment-values-in-the-workflow-files) repositori pola ini. | Pemilik aplikasi | 
| Memicu alur kerja. | Untuk mendorong perubahan ke GitHub organisasi dan memicu alur kerja penerapan, jalankan perintah berikut:<pre>git push -u origin dev</pre> | AWS DevOps | 

### (Opsi manual) Terapkan Rantai Pasokan AWS kumpulan data menggunakan Terraform
<a name="manual-option-deploy-supplychain-datasets-using-terraform"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buka direktori `terraform-deployment ` tersebut. | Untuk pergi ke `terraform-deployment` direktori`ASC-Datasets`, jalankan perintah berikut:<pre>cd ASC-Datasets/terraform-deployment</pre> | AWS DevOps | 
| Siapkan bucket Amazon S3 status Terraform. | Untuk menyiapkan bucket Amazon S3 status Terraform, gunakan skrip berikut:<pre># Setup terraform bucket<br />chmod +x ../scripts/setup-terraform.sh<br />../scripts/setup-terraform.sh</pre> | AWS DevOps | 
| Siapkan ember artefak Terraform Amazon S3. | Untuk menyiapkan bucket Amazon S3 artefak Terraform, gunakan skrip berikut:<pre># Setup terraform artifacts bucket<br />chmod +x ../scripts/setup-terraform-artifacts-bucket.sh<br />../scripts/setup-terraform-artifacts-bucket.sh</pre> | AWS DevOps | 
| Siapkan konfigurasi backend dan penyedia Terraform. | Untuk menyiapkan konfigurasi backend dan penyedia Terraform, gunakan skrip berikut:<pre># Setup terraform backend and providers config if they don't exist<br />chmod +x ../scripts/generate-terraform-config.sh<br />../scripts/generate-terraform-config.sh</pre> | AWS DevOps | 
| Hasilkan rencana penerapan. | Untuk membuat rencana penyebaran, jalankan perintah berikut:<pre># Run terraform init and validate<br />terraform init<br />terraform validate<br /><br /># Run terraform plan<br />terraform plan \<br />-var-file="tfInputs/$ENVIRONMENT.tfvars" \<br />-var="project_name=$PROJECT_NAME" \<br />-var="environment=$ENVIRONMENT" \<br />-var="user_role=$AWS_USER_ROLE" \<br />-var="lambda_temp_dir=$LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM" \<br />-var="layer_temp_dir=$LAMBDA_LAYER_TEMP_DIR_TERRAFORM" \<br />-parallelism=40 \<br />-out='tfplan.out'</pre> | AWS DevOps | 
| Menyebarkan konfigurasi. | Untuk menerapkan konfigurasi, jalankan perintah berikut:<pre># Run terraform apply<br />terraform apply tfplan.out</pre> | 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:<pre># Update AWS Supply Chain KMS Key policy with the service's requirements<br />chmod +x ../scripts/update-asc-kms-policy.sh<br />../scripts/update-asc-kms-policy.sh<br /></pre><pre># Update AWS KMS Keys' policy with IAM roles<br />chmod +x ../scripts/update-kms-policy.sh<br />../scripts/update-kms-policy.sh<br /></pre><pre># Create terraform outputs file to be used as input variables<br />terraform output -json > raw_output.json<br />jq -r 'to_entries | map(<br />  if .value.type == "string" then<br />      "\(.key) = \"\(.value.value)\""<br />  else<br />      "\(.key) = \(.value.value | tojson)"<br />  end<br />) | .[]' raw_output.json > $REPO_NAME-outputs.tfvars<br /></pre><pre># Upload reformed outputs file to Amazon S3 terraform artifacts bucket (For retrieval from other repositories)<br />aws s3 cp $REPO_NAME-outputs.tfvars s3://$S3_TERRAFORM_ARTIFACTS_BUCKET_NAME/$REPO_NAME-outputs.tfvars<br />rm -f raw_output.json<br />rm -f $REPO_NAME-outputs.tfvars<br /></pre> | AWS DevOps | 

### (Opsi manual) Terapkan aliran integrasi Rantai Pasokan AWS layanan menggunakan Terraform
<a name="manual-option-deploy-supplychain-service-integration-flows-using-terraform"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buka direktori `terraform-deployment` tersebut. | Untuk pergi ke `terraform-deployment` direktori`ASC-Integration-Flows`, jalankan perintah berikut:<pre>cd ASC-Integration-Flows/terraform-deployment</pre> | AWS DevOps | 
| Siapkan konfigurasi backend dan penyedia Terraform. | Untuk menyiapkan konfigurasi backend dan penyedia Terraform, gunakan skrip berikut:<pre># Setup terraform backend and providers config if they don't exist<br />chmod +x ../scripts/generate-terraform-config.sh<br />../scripts/generate-terraform-config.sh</pre> | 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.<pre># Run terraform init and validate<br />terraform init<br />terraform validate<br /></pre><pre># Download and merge ASC DATASET tfvars<br />chmod +x ../scripts/download-vars-through-s3.sh<br />../scripts/download-vars-through-s3.sh $ASC_DATASET_VARS_REPO<br /></pre><pre># Run terraform plan<br />terraform plan \<br />-var-file="tfInputs/$ENVIRONMENT.tfvars" \<br />-var="project_name=$PROJECT_NAME" \<br />-var="environment=$ENVIRONMENT" \<br />-var="lambda_temp_dir=$LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM" \<br />-var="layer_temp_dir=$LAMBDA_LAYER_TEMP_DIR_TERRAFORM" \<br />-parallelism=40 \<br />-out='tfplan.out'</pre> | AWS DevOps | 
| Menyebarkan konfigurasi. | Untuk menerapkan konfigurasi, jalankan perintah berikut:<pre># Run terraform apply<br />terraform apply tfplan.out</pre> | 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:<pre># Update AWS KMS Keys' policy with IAM roles<br />chmod +x ../scripts/update-kms-policy-through-s3.sh<br />../scripts/update-kms-policy-through-s3.sh $ASC_DATASET_VARS_REPO<br /></pre><pre># Create terraform outputs file to be used as input variables<br />terraform output -json > raw_output.json<br />jq -r 'to_entries | map(<br />  if .value.type == "string" then<br />      "\(.key) = \"\(.value.value)\""<br />  else<br />      "\(.key) = \(.value.value | tojson)"<br />  end<br />) | .[]' raw_output.json > $REPO_NAME-outputs.tfvars<br /></pre><pre># Upload reformed outputs file to Amazon S3 terraform artifacts bucket (For retrieval from other repositories)<br />aws s3 cp $REPO_NAME-outputs.tfvars s3://$S3_TERRAFORM_ARTIFACTS_BUCKET_NAME/$REPO_NAME-outputs.tfvars<br />rm -f raw_output.json<br />rm -f $REPO_NAME-outputs.tfvars<br /></pre> | AWS DevOps | 

### (Kedua opsi) Mencerna data
<a name="both-options-ingest-data"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Unggah contoh file CSV. | Untuk mengunggah file CSV sampel untuk kumpulan data, gunakan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-the-deployment-of-aws-supply-chain-data-lakes.html) | Insinyur data | 

### (Kedua opsi) Siapkan Rantai Pasokan AWS akses
<a name="both-options-set-up-supplychain-access"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Mengatur Rantai Pasokan AWS akses. | Untuk mengatur Rantai Pasokan AWS akses dari Konsol Manajemen AWS, gunakan langkah-langkah berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-the-deployment-of-aws-supply-chain-data-lakes.html) | Pemilik aplikasi | 

### (Opsi otomatis) Bersihkan semua sumber daya menggunakan alur kerja GitHub Tindakan
<a name="automated-option-clean-up-all-resources-using-github-actions-workflows"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Memicu alur kerja penghancuran untuk sumber daya alur integrasi. | Memicu [alur kerja penghancuran](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/blob/main/ASC-Integration-Flows/.github/workflows/destroy-workflow.yml) `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](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/blob/main/ASC-Datasets/.github/workflows/destroy-workflow.yml) `ASC-Datasets` dari cabang penyebaran Anda di organisasi Anda GitHub . | AWS DevOps | 

### (Opsi manual) Bersihkan sumber daya aliran Rantai Pasokan AWS integrasi menggunakan Terraform
<a name="manual-option-clean-up-resources-of-supplychain-integration-flows-using-terraform"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buka direktori `terraform-deployment` tersebut. | Untuk pergi ke `terraform-deployment` direktori`ASC-Integration-Flows`, jalankan perintah berikut:<pre>cd ASC-Integration-Flows/terraform-deployment</pre> | AWS DevOps | 
| Siapkan konfigurasi backend dan penyedia Terraform. | Untuk menyiapkan konfigurasi backend dan penyedia Terraform, gunakan skrip berikut:<pre># Setup terraform backend and providers config if they don't exist<br />chmod +x ../scripts/generate-terraform-config.sh<br />../scripts/generate-terraform-config.sh</pre> | 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.<pre># Run terraform init and validate<br />terraform init<br />terraform validate<br /></pre><pre># Download and merge ASC DATASET tfvars<br />chmod +x ../scripts/download-vars-through-s3.sh<br />../scripts/download-vars-through-s3.sh $ASC_DATASET_VARS_REPO<br /></pre><pre># Run terraform plan<br />terraform plan -destroy\<br />-var-file="tfInputs/$ENVIRONMENT.tfvars" \<br />-var="project_name=$PROJECT_NAME" \<br />-var="environment=$ENVIRONMENT" \<br />-var="lambda_temp_dir=$LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM" \<br />-var="layer_temp_dir=$LAMBDA_LAYER_TEMP_DIR_TERRAFORM" \<br />-parallelism=40 \<br />-out='tfplan.out'</pre> | AWS DevOps | 
| Jalankan rencana penghancuran infrastruktur. | Untuk menjalankan penghancuran infrastruktur yang direncanakan, jalankan perintah berikut:<pre># Run terraform apply<br />terraform apply tfplan.out</pre> | AWS DevOps | 
| Hapus output Terraform dari bucket Amazon S3. | Untuk menghapus file output yang diunggah selama penyebaran`ASC-Integration-Flows`, jalankan perintah berikut:<pre># Delete the outputs file<br />aws s3 rm s3://$S3_TERRAFORM_ARTIFACTS_BUCKET_NAME/$REPO_NAME-outputs.tfvars</pre> | AWS DevOps | 

### (Opsi manual) Bersihkan sumber daya kumpulan data Rantai Pasokan AWS layanan menggunakan Terraform
<a name="manual-option-clean-up-resources-of-supplychain-service-datasets-using-terraform"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buka direktori `terraform-deployment` tersebut. | Untuk pergi ke `terraform-deployment` direktori`ASC-Datasets`, jalankan perintah berikut:<pre>cd ASC-Datasets/terraform-deployment</pre> | AWS DevOps | 
| Siapkan konfigurasi backend dan penyedia Terraform. | Untuk menyiapkan konfigurasi backend dan penyedia Terraform, gunakan skrip berikut:<pre># Setup terraform backend and providers config if they don't exist<br />chmod +x ../scripts/generate-terraform-config.sh<br />../scripts/generate-terraform-config.sh</pre> | AWS DevOps | 
| Menghasilkan rencana penghancuran infrastruktur. | Untuk membuat rencana untuk menghancurkan sumber daya Rantai Pasokan AWS dataset, jalankan perintah berikut:<pre># Run terraform init and validate<br />terraform init<br />terraform validate<br /><br /># Run terraform plan<br />terraform plan -destroy\<br />-var-file="tfInputs/$ENVIRONMENT.tfvars" \<br />-var="project_name=$PROJECT_NAME" \<br />-var="environment=$ENVIRONMENT" \<br />-var="user_role=$AWS_USER_ROLE" \<br />-var="lambda_temp_dir=$LAMBDA_FUNCTION_TEMP_DIR_TERRAFORM" \<br />-var="layer_temp_dir=$LAMBDA_LAYER_TEMP_DIR_TERRAFORM" \<br />-parallelism=40 \<br />-out='tfplan.out'</pre> | AWS DevOps | 
| Ember Amazon S3 kosong. | Untuk mengosongkan semua bucket Amazon S3 (kecuali bucket logging akses server, yang dikonfigurasi untuk`force-destroy`), gunakan skrip berikut:<pre># Delete S3 buckets excluding server access logging bucket<br />chmod +x ../scripts/empty-s3-buckets.sh<br />../scripts/empty-s3-buckets.sh tfplan.out</pre> | AWS DevOps | 
| Jalankan rencana penghancuran infrastruktur. | Untuk menjalankan penghancuran infrastruktur Rantai Pasokan AWS dataset Anda yang direncanakan menggunakan rencana yang dihasilkan, jalankan perintah berikut:<pre># Run terraform apply<br />terraform apply tfplan.out</pre> | 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:<pre># Delete the outputs file<br />aws s3 rm s3://$S3_TERRAFORM_ARTIFACTS_BUCKET_NAME/$REPO_NAME-outputs.tfvars</pre> | AWS DevOps | 

## Pemecahan masalah
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
|  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](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/blob/main/ASC-Datasets/README.md) aliran integrasi. Rantai Pasokan AWS](https://github.com/aws-samples/sample-automate-aws-supply-chain-deployment/blob/main/ASC-Integration-Flows/README.md) | 
| Alur Rantai Pasokan AWS integrasi tidak mengambil file data baru yang diunggah untuk kumpulan data. Rantai Pasokan AWS  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/automate-the-deployment-of-aws-supply-chain-data-lakes.html) | 

## Sumber daya terkait
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes-resources"></a>

**AWS dokumentasi**
+ [Rantai Pasokan AWS](https://docs.aws.amazon.com/aws-supply-chain/latest/adminguide/getting-started.html)

**Sumber daya lainnya**
+ [Memahami alur kerja GitHub Tindakan](https://docs.github.com/en/actions/get-started/understand-github-actions) (GitHub dokumentasi)

## Informasi tambahan
<a name="automate-the-deployment-of-aws-supply-chain-data-lakes-additional"></a>

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](https://docs.aws.amazon.com/aws-supply-chain/latest/userguide/setting_analytics.html) di Rantai Pasokan AWS dokumentasi.

Pola ini menunjukkan pembuatan kumpulan data **Kalender** dan **Outbound\$1Order\$1Line**. 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](https://docs.aws.amazon.com/aws-supply-chain/latest/userguide/prebuilt_dashboards.html) dalam dokumentasi. Rantai Pasokan AWS 

1. 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](https://docs.aws.amazon.com/aws-supply-chain/latest/userguide/qinasc.html) 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](https://docs.aws.amazon.com/aws-supply-chain/latest/userguide/enabling_QinASC.html) dan [Menggunakan Amazon Q Rantai Pasokan AWS dalam](https://docs.aws.amazon.com/aws-supply-chain/latest/userguide/using_QinASC.html) Rantai Pasokan AWS dokumentasi.