Condivisione dell'elaborazione tra le azioni - Amazon CodeCatalyst

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

Per impostazione predefinita, le azioni in un flusso di lavoro vengono eseguite su istanze separate in un parco veicoli. 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.

Esecuzione di più azioni su elaborazione condivisa

È possibile utilizzare l'Computeattributo 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 EC2condivisione 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

Nota

Se utilizzi il livello Gratuito e specifichi manualmente il Linux.x86-64.2XLarge parco Linux.x86-64.XLarge o nella definizione del flusso di lavoroYAML, 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.

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 all'interno di 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 e Memorizzazione nella cache dei file tra le esecuzioni del workflow.

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.

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

Puoi eseguire flussi di lavoro con la condivisione del calcolo 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

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

Usa 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/.

  2. Scegliere il progetto.

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

  4. Scegli il nome del tuo flusso di lavoro.

  5. Scegli Modifica.

  6. Scegli Visual.

  7. Scegli le proprietà del flusso di lavoro.

  8. Dal menu a discesa Tipo di calcolo, scegli. EC2

  9. (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 e Assegnazione di una flotta o di un calcolo a un'azione.

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

  11. (Facoltativo) Scegli la modalità di esecuzione per il flusso di lavoro. Per ulteriori informazioni, consulta Configurazione del comportamento di accodamento delle esecuzioni.

  12. 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/.

  2. Scegliere il progetto.

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

  4. Scegli il nome del tuo flusso di lavoro.

  5. Scegli Modifica.

  6. Scegli YAML.

  7. Attiva la condivisione del calcolo impostando il SharedInstance campo su TRUE e Type suEC2. 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 e Assegnazione di una flotta o di un calcolo a un'azione.

    In un flusso di lavoroYAML, 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: ... ...
  8. (Facoltativo) Scegliete Convalida per convalidare il YAML codice del flusso di lavoro prima di eseguire il commit.

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

Esempi

Esempio: Amazon S3 Publish

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 Build 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 suTRUE, è possibile eseguire più azioni sulla stessa istanza e condividere gli 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