Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Partage du calcul entre les actions
Par défaut, les actions d'un flux de travail sont exécutées sur des instances distinctes d'une flotte. Ce comportement permet aux actions d'isoler et de prévoir l'état des entrées. Le comportement par défaut nécessite une configuration explicite pour partager le contexte tel que les fichiers et les variables entre les actions.
Le partage de calcul est une fonctionnalité qui vous permet d'exécuter toutes les actions d'un flux de travail sur la même instance. L'utilisation du partage de calcul peut accélérer les temps d'exécution des flux de travail, car moins de temps est consacré au provisionnement des instances. Vous pouvez également partager des fichiers (artefacts) entre des actions sans configuration supplémentaire du flux de travail.
Lorsqu'un flux de travail est exécuté à l'aide du partage de calcul, une instance de la flotte par défaut ou spécifiée est réservée pour la durée de toutes les actions de ce flux de travail. Lorsque l'exécution du flux de travail est terminée, la réservation d'instance est publiée.
Rubriques
Exécution de plusieurs actions sur un ordinateur partagé
Vous pouvez utiliser l'Compute
attribut dans la définition YAML au niveau du flux de travail pour spécifier à la fois la flotte et les propriétés de partage des calculs des actions. Vous pouvez également configurer les propriétés de calcul à l'aide de l'éditeur visuel dans CodeCatalyst. Pour spécifier un parc, définissez le nom d'un parc existant, définissez le type de EC2calcul sur et activez le partage de calcul.
Note
Le partage de calcul n'est pris en charge que si le type de calcul est défini sur EC2, et il n'est pas pris en charge pour le système d'exploitation Windows Server 2022. Pour plus d'informations sur les flottes de calcul, les types de calcul et les propriétés, consultezConfiguration des images de calcul et d'exécution.
Note
Si vous êtes au niveau Gratuit et que vous spécifiez la Linux.x86-64.2XLarge
flotte Linux.x86-64.XLarge
ou manuellement dans la définition du flux de travailYAML, l'action sera toujours exécutée sur la flotte par défaut (Linux.x86-64.Large
). Pour plus d'informations sur la disponibilité et la tarification du calcul, consultez le tableau des options de niveaux
Lorsque le partage de calcul est activé, le dossier contenant la source du flux de travail est automatiquement copié d'une action à l'autre. Il n'est pas nécessaire de configurer les artefacts de sortie et de les référencer en tant qu'artefacts d'entrée dans une définition de flux de travail (YAMLfichier). En tant qu'auteur de flux de travail, vous devez câbler les variables d'environnement à l'aide d'entrées et de sorties, comme vous le feriez sans utiliser le partage de calcul. Si vous souhaitez partager des dossiers entre des actions extérieures à la source du flux de travail, envisagez la mise en cache de fichiers. Pour plus d’informations, consultez Partage d'artefacts et de fichiers entre les actions et Mise en cache des fichiers entre les exécutions du flux de travail.
Le référentiel source dans lequel réside le fichier de définition de votre flux de travail est identifié par l'étiquetteWorkflowSource
. Lors de l'utilisation du partage de calcul, la source du flux de travail est téléchargée lors de la première action qui la référence et est automatiquement mise à disposition pour les actions suivantes de l'exécution du flux de travail. Toutes les modifications apportées au dossier contenant la source du flux de travail par une action, telle que l'ajout, la modification ou la suppression de fichiers, sont également visibles dans les actions suivantes du flux de travail. Vous pouvez référencer les fichiers qui se trouvent dans le dossier source du flux de travail dans n'importe laquelle de vos actions de flux de travail, comme vous le pouvez sans utiliser le partage de calcul. Pour de plus amples informations, veuillez consulter Référencement des fichiers du référentiel source.
Note
Les flux de travail de partage de calcul doivent spécifier une séquence d'actions stricte, de sorte que les actions parallèles ne peuvent pas être définies. Bien que les artefacts de sortie puissent être configurés à n'importe quelle action de la séquence, les artefacts d'entrée ne sont pas pris en charge.
Considérations relatives au partage du calcul
Vous pouvez exécuter des flux de travail avec le partage de calcul afin d'accélérer les exécutions de flux de travail et de partager le contexte entre les actions d'un flux de travail utilisant la même instance. Tenez compte des points suivants pour déterminer si l'utilisation du partage de calcul convient à votre scénario :
Partage de données informatiques | Sans partage de calcul | |
---|---|---|
Type de calcul |
Amazon EC2 |
AmazonEC2, AWS Lambda |
Provisionnement d'instances |
Actions exécutées sur la même instance |
Actions exécutées sur des instances distinctes |
Système d’exploitation |
Amazon Linux 2 |
Amazon Linux 2, Windows Server 2022 (action de génération uniquement) |
Référencement de fichiers |
|
|
Structure de flux de travail |
Les actions ne peuvent être exécutées que de manière séquentielle |
Les actions peuvent être exécutées en parallèle |
Accès aux données via les actions du flux de travail |
Accéder à la source de flux de travail mise en cache () |
Accès aux sorties des artefacts partagés (nécessite une configuration supplémentaire) |
Activer le partage informatique
Suivez les instructions ci-dessous pour activer le partage de calcul pour un flux de travail.
Exemples
Rubriques
Exemple : Amazon S3 Publish
Les exemples de flux de travail suivants montrent comment exécuter l'action Amazon Amazon S3 Publish de deux manières : d'abord en utilisant des artefacts d'entrée, puis en utilisant le partage de calcul. Avec le partage de calcul, les artefacts d'entrée ne sont pas nécessaires puisque vous pouvez accéder au cacheWorkflowSource
. De plus, l'artefact de sortie de l'action Build n'est plus nécessaire. L'action S3 Publish est configurée pour utiliser la DependsOn
propriété explicite afin de maintenir des actions séquentielles ; l'action Build doit être exécutée avec succès pour que l'action S3 Publish puisse s'exécuter.
Sans partage de calcul, vous devez utiliser des artefacts d'entrée et partager les sorties avec les actions suivantes :
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
-
Lorsque vous utilisez le partage de calcul en
SharedInstance
réglant surTRUE
, vous pouvez exécuter plusieurs actions sur la même instance et partager des artefacts en spécifiant une seule source de flux de travail. Les artefacts d'entrée ne sont pas obligatoires et ne peuvent pas être spécifiés :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