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.
Argomenti
Esecuzione di più azioni su elaborazione condivisa
È 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 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 |
|
|
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 () |
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.
Esempi
Argomenti
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