

Amazon CodeCatalyst tidak lagi terbuka untuk pelanggan baru. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Lihat informasi yang lebih lengkap di [Cara bermigrasi dari CodeCatalyst](migration.md).

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
<a name="compute-sharing"></a>

[Secara default, tindakan dalam alur kerja berjalan pada instance terpisah dalam sebuah fleet.](workflows-working-compute.md#compute.fleets) 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.

**Topics**
+ [Menjalankan beberapa tindakan pada komputasi bersama](#how-to-compute-share)
+ [Pertimbangan untuk berbagi komputasi](#compare-compute-sharing)
+ [Mengaktifkan berbagi komputasi](#compute-sharing-steps)
+ [Contoh](#compute-sharing-examples)

## Menjalankan beberapa tindakan pada komputasi bersama
<a name="how-to-compute-share"></a>

Anda dapat menggunakan `Compute` atribut dalam definisi YAMAL di tingkat alur kerja untuk menentukan properti tindakan fleet dan compute sharing. 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](workflows-working-compute.md)

**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 kerja YAMAL, tindakan akan tetap berjalan pada armada default ()`Linux.x86-64.Large`. Untuk informasi selengkapnya tentang ketersediaan dan harga komputasi, lihat [tabel untuk opsi tingkatan.](https://codecatalyst.aws/explore/pricing) 

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 YAMAL). 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](workflows-working-artifacts.md) dan [Caching file antara alur kerja berjalan](workflows-caching.md).

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](workflows-sources-reference-files.md).

**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
<a name="compare-compute-sharing"></a>

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  |  Amazon EC2, 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
<a name="compute-sharing-steps"></a>

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/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

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

1. Pilih nama alur kerja Anda.

1. Pilih **Edit**.

1. Pilih **Visual**.

1. Pilih **properti Workflow**.

1. Dari menu tarik-turun **tipe Compute**, pilih. **EC2**

1. (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](projects-create-compute-resource.md) dan [Menetapkan armada atau menghitung untuk suatu tindakan](workflows-assign-compute-resource.md) 

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

1. (Opsional) Pilih mode lari untuk alur kerja. Untuk informasi selengkapnya, lihat [Mengonfigurasi perilaku antrian run](workflows-configure-runs.md).

1. Pilih **Komit**, masukkan pesan komit, dan pilih **Komit** lagi.

------
#### [ YAML ]

**Untuk mengaktifkan berbagi komputasi menggunakan editor YAMAL**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Pilih proyek Anda.

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

1. Pilih nama alur kerja Anda.

1. Pilih **Edit**.

1. Pilih **YAMAL.**

1. Aktifkan berbagi komputasi menyetel `SharedInstance` bidang ke `TRUE` dan `Type` ke`EC2`. 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](projects-create-compute-resource.md) dan [Menetapkan armada atau menghitung untuk suatu tindakan](workflows-assign-compute-resource.md)

   Dalam alur kerja YAMAL, 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: ...
             ...
   ```

1. (Opsional) Pilih **Validasi** untuk memvalidasi kode YAMAL alur kerja sebelum melakukan.

1. Pilih **Komit**, masukkan pesan komit, dan pilih **Komit** lagi.

------

## Contoh
<a name="compute-sharing-examples"></a>

**Topics**
+ [Contoh: Amazon S3 Publikasikan](#compute-share-s3)

### Contoh: Amazon S3 Publikasikan
<a name="compute-share-s3"></a>

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` menyetelnya`TRUE`, 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
  ```