Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Berbagi komputasi di seluruh tindakan
Secara default, tindakan dalam alur kerja berjalan pada instance terpisah dalam sebuah fleet. Perilaku ini memberikan tindakan dengan isolasi dan prediktabilitas pada keadaan input. Perilaku default memerlukan konfigurasi eksplisit untuk berbagi konteks seperti file dan variabel antar tindakan.
Berbagi komputasi adalah kemampuan yang memungkinkan Anda menjalankan semua tindakan dalam alur kerja pada instance yang sama. Menggunakan berbagi komputasi dapat memberikan runtime alur kerja yang lebih cepat karena lebih sedikit waktu yang dihabiskan untuk menyediakan instance. Anda juga dapat berbagi file (artefak) antar tindakan tanpa konfigurasi alur kerja tambahan.
Saat alur kerja dijalankan menggunakan berbagi komputasi, instance dalam armada default atau yang ditentukan dicadangkan selama durasi semua tindakan dalam alur kerja tersebut. Ketika alur kerja berjalan selesai, reservasi instance dilepaskan.
Topik
Menjalankan beberapa tindakan pada komputasi bersama
Anda dapat menggunakan Compute
atribut dalam definisi YAML di tingkat alur kerja untuk menentukan armada dan properti berbagi komputasi tindakan. Anda juga dapat mengonfigurasi properti komputasi menggunakan editor visual di CodeCatalyst. Untuk menentukan armada, tetapkan nama armada yang ada, atur jenis komputasi ke EC2, dan aktifkan berbagi komputasi.
catatan
Berbagi komputasi hanya didukung jika jenis komputasi disetel ke EC2, dan tidak didukung untuk sistem operasi Windows Server 2022. Untuk informasi selengkapnya tentang armada komputasi, tipe komputasi, dan properti, lihat. Mengkonfigurasi gambar komputasi dan runtime
catatan
Jika Anda berada di tingkat Gratis dan Anda menentukan Linux.x86-64.2XLarge
armada Linux.x86-64.XLarge
atau secara manual dalam definisi alur kerjaYAML, tindakan akan tetap berjalan pada armada default (Linux.x86-64.Large
). Untuk informasi selengkapnya tentang ketersediaan dan harga komputasi, lihat tabel untuk opsi tingkatan.
Saat berbagi komputasi diaktifkan, folder yang berisi sumber alur kerja secara otomatis disalin di seluruh tindakan. Anda tidak perlu mengonfigurasi artefak keluaran dan mereferensikannya sebagai artefak masukan di seluruh definisi alur kerja (file)YAML. Sebagai penulis alur kerja, Anda perlu memasang variabel lingkungan menggunakan input dan output, seperti yang Anda lakukan tanpa menggunakan berbagi komputasi. Jika Anda ingin berbagi folder di antara tindakan di luar sumber alur kerja, pertimbangkan caching file. Untuk informasi selengkapnya, silakan lihat Berbagi artefak dan file antar tindakan dan Caching file antara alur kerja berjalan.
Repositori sumber tempat file definisi alur kerja Anda berada diidentifikasi oleh label. WorkflowSource
Saat menggunakan berbagi komputasi, sumber alur kerja diunduh dalam tindakan pertama yang mereferensikannya dan secara otomatis tersedia untuk tindakan selanjutnya dalam alur kerja yang akan digunakan. Setiap perubahan yang dilakukan pada folder yang berisi sumber alur kerja oleh suatu tindakan, seperti menambahkan, memodifikasi, atau menghapus file, juga terlihat dalam tindakan selanjutnya dalam alur kerja. Anda dapat mereferensikan file yang berada di folder sumber alur kerja di salah satu tindakan alur kerja Anda, seperti yang Anda bisa tanpa menggunakan berbagi komputasi. Untuk informasi selengkapnya, lihat Merujuk file repositori sumber.
catatan
Alur kerja berbagi komputasi perlu menentukan urutan tindakan yang ketat, sehingga tindakan paralel tidak dapat diatur. Meskipun artefak keluaran dapat dikonfigurasi pada tindakan apa pun dalam urutan, artefak input tidak didukung.
Pertimbangan untuk berbagi komputasi
Anda dapat menjalankan alur kerja dengan berbagi komputasi untuk mempercepat alur kerja berjalan dan berbagi konteks antar tindakan dalam alur kerja yang menggunakan instance yang sama. Pertimbangkan hal berikut untuk menentukan apakah menggunakan berbagi komputasi sesuai untuk skenario Anda:
Berbagi komputasi | Tanpa berbagi komputasi | |
---|---|---|
Jenis komputasi |
Amazon EC2 |
AmazonEC2, AWS Lambda |
Penyediaan instans |
Tindakan berjalan pada contoh yang sama |
Tindakan berjalan pada instance terpisah |
Sistem operasi |
Amazon Linux 2 |
Amazon Linux 2, Windows Server 2022 (hanya tindakan build) |
File referensi |
|
|
Struktur alur kerja |
Tindakan hanya dapat berjalan secara berurutan |
Tindakan dapat berjalan paralel |
Mengakses data di seluruh tindakan alur kerja |
Akses sumber alur kerja cache () |
Akses output artefak bersama (memerlukan konfigurasi tambahan) |
Mengaktifkan berbagi komputasi
Gunakan instruksi berikut untuk mengaktifkan berbagi komputasi untuk alur kerja.
Contoh
Contoh: Amazon S3 Publikasikan
Contoh alur kerja berikut menunjukkan cara melakukan tindakan Publikasikan Amazon S3 Amazon S3 dengan dua cara: pertama menggunakan artefak input dan kemudian menggunakan berbagi komputasi. Dengan berbagi komputasi, artefak input tidak diperlukan karena Anda dapat mengakses cache. WorkflowSource
Selain itu, artefak keluaran dalam aksi Build tidak lagi diperlukan. Tindakan S3 Publish dikonfigurasi untuk menggunakan DependsOn
properti eksplisit untuk mempertahankan tindakan berurutan; tindakan Build harus berjalan dengan sukses agar tindakan S3 Publish dapat berjalan.
Tanpa berbagi komputasi, Anda perlu menggunakan artefak input dan berbagi output dengan tindakan selanjutnya:
Name: S3PublishUsingInputArtifact SchemaVersion: "1.0" Actions: Build: Identifier: aws/build@v1 Outputs: Artifacts: - Name: ArtifactToPublish Files: [output.zip] Inputs: Sources: - WorkflowSource Configuration: Steps: - Run: ./build.sh # Build script that generates output.zip PublishToS3: Identifier: aws/s3-publish@v1 Inputs: Artifacts: - ArtifactToPublish Environment: Connections: - Role: codecatalyst-deployment-role Name: dev-deployment-role Name: dev-connection Configuration: SourcePath: output.zip DestinationBucketName: amzn-s3-demo-bucket
-
Saat menggunakan berbagi komputasi dengan
SharedInstance
menyetelnyaTRUE
, Anda dapat menjalankan beberapa tindakan pada instance yang sama dan berbagi artefak dengan menentukan satu sumber alur kerja. Artefak masukan tidak diperlukan dan tidak dapat ditentukan:Name: S3PublishUsingComputeSharing SchemaVersion: "1.0" Compute: Type: EC2 Fleet: dev-fleet SharedInstance: TRUE Actions: Build: Identifier: aws/build@v1 Inputs: Sources: - WorkflowSource Configuration: Steps: - Run: ./build.sh # Build script that generates output.zip PublishToS3: Identifier: aws/s3-publish@v1 DependsOn: - Build Environment: Connections: - Role: codecatalyst-deployment-role Name: dev-deployment-role Name: dev-connection Configuration: SourcePath: output.zip DestinationBucketName: amzn-s3-demo-bucket