

Amazon non CodeCatalyst è più aperta a nuovi clienti. I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Come migrare da CodeCatalyst](migration.md).

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Condivisione dell'elaborazione tra le azioni
<a name="compute-sharing"></a>

Per impostazione predefinita, le azioni in un flusso di lavoro vengono eseguite su istanze separate in un parco veicoli[.](workflows-working-compute.md#compute.fleets) Questo comportamento fornisce azioni con isolamento e prevedibilità sullo stato degli input. Il comportamento predefinito richiede una configurazione esplicita per condividere il contesto, ad esempio file e variabili, tra le azioni. 

La condivisione del calcolo è una funzionalità che consente di eseguire tutte le azioni in un flusso di lavoro sulla stessa istanza. L'utilizzo della condivisione del calcolo può fornire tempi di esecuzione del flusso di lavoro più rapidi perché viene dedicato meno tempo al provisioning delle istanze. È inoltre possibile condividere file (artefatti) tra azioni senza ulteriori configurazioni del flusso di lavoro.

Quando un flusso di lavoro viene eseguito utilizzando la condivisione del calcolo, un'istanza del parco dati predefinito o specificato è riservata per la durata di tutte le azioni in quel flusso di lavoro. Al termine dell'esecuzione del flusso di lavoro, la prenotazione dell'istanza viene rilasciata.

**Topics**
+ [Esecuzione di più azioni su elaborazione condivisa](#how-to-compute-share)
+ [Considerazioni sulla condivisione del calcolo](#compare-compute-sharing)
+ [Attivazione della condivisione del calcolo](#compute-sharing-steps)
+ [Esempi](#compute-sharing-examples)

## Esecuzione di più azioni su elaborazione condivisa
<a name="how-to-compute-share"></a>

È possibile utilizzare l'`Compute`attributo nella definizione YAML a livello di flusso di lavoro per specificare sia la flotta che le proprietà di condivisione del calcolo delle azioni. Puoi anche configurare le proprietà di calcolo utilizzando l'editor visivo in. CodeCatalyst Per specificare una flotta, imposta il nome di una flotta esistente, imposta il tipo di elaborazione su e attiva la **EC2**condivisione delle risorse di calcolo.

**Nota**  
La condivisione del calcolo è supportata solo se il tipo di calcolo è impostato su e non è supportata per il sistema operativo Windows Server 2022. **EC2** Per ulteriori informazioni sulle flotte di elaborazione, i tipi di calcolo e le proprietà, consulta. [Configurazione delle immagini di calcolo e di runtime](workflows-working-compute.md)

**Nota**  
Se utilizzi il livello Free e specifichi manualmente il `Linux.x86-64.XLarge` o `Linux.x86-64.2XLarge` fleet nella definizione del flusso di lavoro YAML, l'azione verrà comunque eseguita sulla flotta predefinita (). `Linux.x86-64.Large` Per ulteriori informazioni sulla disponibilità e sui prezzi di elaborazione, consulta la [tabella delle opzioni relative ai livelli](https://codecatalyst.aws/explore/pricing). 

Quando la condivisione dell'elaborazione è attivata, la cartella contenente l'origine del flusso di lavoro viene copiata automaticamente tra le azioni. Non è necessario configurare gli artefatti di output e farvi riferimento come artefatti di input in una definizione del flusso di lavoro (file YAML). In qualità di autore di flussi di lavoro, devi collegare le variabili di ambiente utilizzando input e output, proprio come faresti senza utilizzare la condivisione del calcolo. Se desideri condividere cartelle tra azioni esterne all'origine del flusso di lavoro, prendi in considerazione la memorizzazione nella cache dei file. Per ulteriori informazioni, consulta [Condivisione di artefatti e file tra azioni](workflows-working-artifacts.md) e [Memorizzazione nella cache dei file tra le esecuzioni del workflow](workflows-caching.md).

L'archivio di origine in cui si trova il file di definizione del flusso di lavoro è identificato dall'etichetta. `WorkflowSource` Durante l'utilizzo della condivisione di calcolo, l'origine del flusso di lavoro viene scaricata nella prima azione che vi fa riferimento e resa automaticamente disponibile per le azioni successive del flusso di lavoro da utilizzare. Qualsiasi modifica apportata alla cartella contenente l'origine del flusso di lavoro mediante un'azione, come l'aggiunta, la modifica o la rimozione di file, è visibile anche nelle azioni successive del flusso di lavoro. Puoi fare riferimento ai file che si trovano nella cartella di origine del flusso di lavoro in qualsiasi azione del flusso di lavoro, proprio come puoi fare senza utilizzare la condivisione del calcolo. Per ulteriori informazioni, consulta [Riferimento ai file del repository di origine](workflows-sources-reference-files.md).

**Nota**  
I flussi di lavoro di condivisione del calcolo devono specificare una sequenza rigorosa di azioni, quindi non è possibile impostare azioni parallele. Sebbene gli artefatti di output possano essere configurati in qualsiasi azione della sequenza, gli artefatti di input non sono supportati.

## Considerazioni sulla condivisione del calcolo
<a name="compare-compute-sharing"></a>

Puoi eseguire flussi di lavoro con condivisione dell'elaborazione per accelerare l'esecuzione del flusso di lavoro e condividere il contesto tra le azioni in un flusso di lavoro che utilizzano la stessa istanza. Considera quanto segue per determinare se l'utilizzo della condivisione del calcolo è appropriato per il tuo scenario:


|   | Condivisione del calcolo | Senza condivisione del calcolo | 
| --- | --- | --- | 
|  Tipo di calcolo  |  Amazon EC2  |  Amazon EC2, AWS Lambda  | 
|  Fornitura di istanze  |  Le azioni vengono eseguite sulla stessa istanza  |  Le azioni vengono eseguite su istanze separate  | 
|  Sistema operativo  |  Amazon Linux 2  |  Amazon Linux 2, Windows Server 2022 (solo azioni di compilazione)  | 
|  File di riferimento  |  `$CATALYST_SOURCE_DIR_WorkflowSource`, `/sources/WorkflowSource/`  |  `$CATALYST_SOURCE_DIR_WorkflowSource`, `/sources/WorkflowSource/`  | 
|  Struttura flusso di lavoro  |  Le azioni possono essere eseguite solo in sequenza  |  Le azioni possono essere eseguite in parallelo  | 
|  Accesso ai dati attraverso le azioni del flusso di lavoro  |  Accedi alla fonte del flusso di lavoro memorizzata nella cache () `WorkflowSource`  |  Accedi agli output degli artefatti condivisi (richiede una configurazione aggiuntiva)  | 

## Attivazione della condivisione del calcolo
<a name="compute-sharing-steps"></a>

Utilizza le seguenti istruzioni per attivare la condivisione del calcolo per un flusso di lavoro.

------
#### [ Visual ]

**Per attivare la condivisione del calcolo utilizzando l'editor visivo**

1. Apri la CodeCatalyst console all'indirizzo [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Scegliere il progetto.

1. **Nel riquadro di navigazione, scegli **CI/CD**, quindi scegli Flussi di lavoro.**

1. Scegli il nome del tuo flusso di lavoro.

1. Scegli **Modifica**.

1. Scegli **Visual**.

1. Scegli le **proprietà del flusso** di lavoro.

1. Dal menu a discesa **Tipo di calcolo**, scegli. **EC2**

1. (Facoltativo) Dal menu a discesa **Compute fleet, opzionale**, scegli una flotta che desideri utilizzare per eseguire le azioni del flusso di lavoro. Puoi scegliere una flotta on-demand o creare e scegliere una flotta predisposta. Per ulteriori informazioni, consulta [Creazione di una flotta predisposta](projects-create-compute-resource.md) e [Assegnazione di una flotta o di un calcolo a un'azione](workflows-assign-compute-resource.md). 

1. Attiva l'interruttore per attivare la condivisione del calcolo e far sì che le azioni nel flusso di lavoro vengano eseguite sullo stesso parco macchine.

1. (Facoltativo) Scegli la modalità di esecuzione per il flusso di lavoro. Per ulteriori informazioni, consulta [Configurazione del comportamento di accodamento delle esecuzioni](workflows-configure-runs.md).

1. Scegliete **Commit**, inserite un messaggio di commit e scegliete nuovamente **Commit**.

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

**Per attivare la condivisione del calcolo utilizzando l'editor YAML**

1. [Apri la CodeCatalyst console all'indirizzo https://codecatalyst.aws/.](https://codecatalyst.aws/)

1. Scegliere il progetto.

1. **Nel riquadro di navigazione, scegli **CI/CD**, quindi scegli Flussi di lavoro.**

1. Scegli il nome del tuo flusso di lavoro.

1. Scegli **Modifica**.

1. Scegli **YAML**.

1. Attiva la condivisione del calcolo impostando il `SharedInstance` campo su e su`TRUE`. `Type` `EC2` Imposta `Fleet` una flotta di elaborazione che desideri utilizzare per eseguire azioni sul flusso di lavoro. Puoi scegliere una flotta su richiesta o creare e scegliere una flotta predisposta. Per ulteriori informazioni, consulta [Creazione di una flotta predisposta](projects-create-compute-resource.md) e [Assegnazione di una flotta o di un calcolo a un'azione](workflows-assign-compute-resource.md).

   In un flusso di lavoro YAML, aggiungi un codice simile al seguente:

   ```
     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. (Facoltativo) Scegliete **Convalida per convalidare** il codice YAML del flusso di lavoro prima di eseguire il commit.

1. **Scegliete **Commit**, inserite un messaggio di commit e scegliete nuovamente Commit.**

------

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

**Topics**
+ [Esempio: Amazon S3 Publish](#compute-share-s3)

### Esempio: Amazon S3 Publish
<a name="compute-share-s3"></a>

I seguenti esempi di flussi di lavoro mostrano come eseguire l'azione Amazon Amazon S3 Publish in due modi: prima utilizzando artefatti di input e poi utilizzando la condivisione di calcolo. Con la condivisione del calcolo, gli artefatti di input non sono necessari poiché puoi accedere alla cache. `WorkflowSource` Inoltre, l'artefatto di output nell'azione Crea non è più necessario. L'azione S3 Publish è configurata per utilizzare la `DependsOn` proprietà esplicita per mantenere azioni sequenziali; l'azione Build deve essere eseguita correttamente per poter eseguire l'azione S3 Publish.
+ Senza la condivisione del calcolo, è necessario utilizzare artefatti di input e condividere gli output con azioni successive:

  ```
  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
  ```
+ Quando si utilizza la condivisione del calcolo `SharedInstance` impostando su`TRUE`, è possibile eseguire più azioni sulla stessa istanza e condividere artefatti specificando un'unica origine del flusso di lavoro. Gli artefatti di input non sono obbligatori e non possono essere specificati:

  ```
  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
  ```