Berbagi komputasi di seluruh tindakan - Amazon CodeCatalyst

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.

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, 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)

Referensi file

$CATALYST_SOURCE_DIR_WorkflowSource, /sources/WorkflowSource/

$CATALYST_SOURCE_DIR_WorkflowSource, /sources/WorkflowSource/

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 () WorkflowSource

Akses output artefak bersama (memerlukan konfigurasi tambahan)

Mengaktifkan berbagi komputasi

Gunakan instruksi berikut untuk mengaktifkan berbagi komputasi untuk alur kerja.

Visual
Untuk mengaktifkan berbagi komputasi menggunakan editor visual
  1. Buka CodeCatalyst konsol di https://codecatalyst.aws/.

  2. Pilih proyek Anda.

  3. Di panel navigasi, pilih CI/CD, lalu pilih Alur kerja.

  4. Pilih nama alur kerja Anda.

  5. Pilih Edit.

  6. Pilih Visual.

  7. Pilih properti Workflow.

  8. Dari menu tarik-turun tipe Compute, pilih. EC2

  9. (Opsional) Dari armada Compute - menu tarik-turun opsional, pilih armada yang ingin Anda gunakan untuk menjalankan tindakan alur kerja. Anda dapat memilih armada sesuai permintaan atau membuat dan memilih armada yang disediakan. Untuk informasi selengkapnya, lihat Membuat armada yang disediakan dan Menetapkan armada atau menghitung untuk suatu tindakan

  10. Alihkan sakelar untuk mengaktifkan berbagi komputasi dan menjalankan tindakan dalam alur kerja pada armada yang sama.

  11. (Opsional) Pilih mode lari untuk alur kerja. Untuk informasi selengkapnya, lihat Mengkonfigurasi perilaku antrian run.

  12. Pilih Komit, masukkan pesan komit, dan pilih Komit lagi.

YAML
Untuk mengaktifkan berbagi komputasi menggunakan editor YAML
  1. Buka CodeCatalyst konsol di https://codecatalyst.aws/.

  2. Pilih proyek Anda.

  3. Di panel navigasi, pilih CI/CD, lalu pilih Alur kerja.

  4. Pilih nama alur kerja Anda.

  5. Pilih Edit.

  6. Pilih YAML.

  7. Aktifkan berbagi komputasi menyetel SharedInstance bidang ke TRUE dan Type keEC2. Setel Fleet ke armada komputasi yang ingin Anda gunakan untuk menjalankan tindakan alur kerja. Anda dapat memilih armada sesuai permintaan atau membuat dan memilih armada yang disediakan. Untuk informasi selengkapnya, lihat Membuat armada yang disediakan dan Menetapkan armada atau menghitung untuk suatu tindakan

    Dalam alur kerjaYAML, tambahkan kode yang mirip dengan berikut ini:

    Name: MyWorkflow SchemaVersion: "1.0" Compute: # Define compute configuration. Type: EC2 Fleet: MyFleet # Optionally, choose an on-demand or provisioned fleet. SharedInstance: true # Turn on compute sharing. Default is False. Actions: BuildFirst: Identifier: aws/build@v1 Inputs: Sources: - WorkflowSource Configuration: Steps: - Run: ... ...
  8. (Opsional) Pilih Validasi untuk memvalidasi YAML kode alur kerja sebelum melakukan.

  9. Pilih Komit, masukkan pesan komit, dan pilih Komit lagi.

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: dev-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: dev-bucket