Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Rechenleistung für mehrere Aktionen gemeinsam nutzen
Standardmäßig werden Aktionen in einem Workflow auf separaten Instanzen in einer Flotte ausgeführt. Dieses Verhalten sorgt für isolierte und vorhersehbare Aktionen in Bezug auf den Status der Eingaben. Das Standardverhalten erfordert eine explizite Konfiguration, um Kontext wie Dateien und Variablen zwischen Aktionen gemeinsam zu nutzen.
Compute Sharing ist eine Funktion, mit der Sie alle Aktionen in einem Workflow auf derselben Instanz ausführen können. Die Nutzung von Compute Sharing kann zu schnelleren Workflow-Laufzeiten führen, da weniger Zeit für die Bereitstellung von Instanzen aufgewendet wird. Sie können Dateien (Artefakte) auch ohne zusätzliche Workflow-Konfiguration zwischen Aktionen gemeinsam nutzen.
Wenn ein Workflow mithilfe von Compute Sharing ausgeführt wird, ist eine Instanz in der Standardflotte oder in der angegebenen Flotte für die Dauer aller Aktionen in diesem Workflow reserviert. Wenn der Workflow-Lauf abgeschlossen ist, wird die Instanzreservierung freigegeben.
Themen
Mehrere Aktionen auf gemeinsam genutztem Computer ausführen
Sie können das Compute
Attribut in der Definition YAML auf Workflow-Ebene verwenden, um sowohl die Flotten- als auch die Compute-Sharing-Eigenschaften von Aktionen anzugeben. Sie können Computing-Eigenschaften auch mit dem Visual Editor in konfigurieren CodeCatalyst. Um eine Flotte anzugeben, legen Sie den Namen einer vorhandenen Flotte fest, legen Sie den Berechnungstyp auf EC2fest und aktivieren Sie die gemeinsame Nutzung von Computern.
Anmerkung
Compute Sharing wird nur unterstützt, wenn der Compute-Typ auf eingestellt ist EC2, und sie wird für das Betriebssystem Windows Server 2022 nicht unterstützt. Weitere Informationen zu Rechenflotten, Compute-Typen und Eigenschaften finden Sie unterKonfiguration von Compute- und Runtime-Images.
Anmerkung
Wenn Sie das kostenlose Kontingent nutzen und die Linux.x86-64.2XLarge
Flotte Linux.x86-64.XLarge
oder manuell in der Workflow-Definition angebenYAML, wird die Aktion trotzdem auf der Standardflotte (Linux.x86-64.Large
) ausgeführt. Weitere Informationen zur Verfügbarkeit von Rechenleistung und zu den Preisen finden Sie in der Tabelle mit den Tarifoptionen
Wenn Compute Sharing aktiviert ist, wird der Ordner, der die Workflow-Quelle enthält, automatisch in alle Aktionen kopiert. Sie müssen Ausgabeartefakte nicht konfigurieren und sie in einer Workflow-Definition (YAMLDatei) nicht als Eingabeartefakte referenzieren. Als Workflow-Autor müssen Sie Umgebungsvariablen mithilfe von Eingaben und Ausgaben verknüpfen, genauso wie Sie es ohne Compute Sharing tun würden. Wenn Sie Ordner für Aktionen außerhalb der Workflow-Quelle gemeinsam nutzen möchten, sollten Sie das Zwischenspeichern von Dateien in Betracht ziehen. Weitere Informationen erhalten Sie unter Artefakte und Dateien zwischen Aktionen teilen und Zwischenspeichern von Dateien zwischen Workflow-Läufen.
Das Quell-Repository, in dem sich Ihre Workflow-Definitionsdatei befindet, ist anhand der Bezeichnung gekennzeichnet. WorkflowSource
Wenn Sie Compute Sharing verwenden, wird die Workflow-Quelle in der ersten Aktion heruntergeladen, die darauf verweist, und automatisch für nachfolgende Aktionen im Workflow-Lauf zur Verfügung gestellt. Alle Änderungen, die durch eine Aktion an dem Ordner, der die Workflow-Quelle enthält, vorgenommen werden, z. B. durch Hinzufügen, Ändern oder Entfernen von Dateien, sind auch in den nachfolgenden Aktionen im Workflow sichtbar. Sie können in jeder Ihrer Workflow-Aktionen auf Dateien verweisen, die sich im Workflow-Quellordner befinden, genauso wie Sie es ohne Compute Sharing tun können. Weitere Informationen finden Sie unter Quell-Repository-Dateien referenzieren.
Anmerkung
Compute-Sharing-Workflows müssen eine strikte Reihenfolge von Aktionen angeben, sodass parallel Aktionen nicht festgelegt werden können. Ausgabeartefakte können zwar bei jeder Aktion in der Sequenz konfiguriert werden, Eingabeartefakte werden jedoch nicht unterstützt.
Überlegungen zur gemeinsamen Nutzung von Rechenleistung
Sie können Workflows mit Compute Sharing ausführen, um Workflow-Ausführungen zu beschleunigen und den Kontext zwischen Aktionen in einem Workflow, die dieselbe Instanz verwenden, gemeinsam zu nutzen. Beachten Sie Folgendes, um festzustellen, ob die Nutzung von Compute Sharing für Ihr Szenario geeignet ist:
Compute-Sharing | Ohne gemeinsame Nutzung von Rechenleistung | |
---|---|---|
Datenverarbeitung |
Amazon EC2 |
AmazonEC2, AWS Lambda |
Bereitstellung von Instanzen |
Aktionen werden auf derselben Instanz ausgeführt |
Aktionen werden auf separaten Instanzen ausgeführt |
Betriebssystem |
Amazon Linux 2 |
Amazon Linux 2, Windows Server 2022 (nur Build-Aktion) |
Dateien referenzieren |
|
|
Workflow-Struktur |
Aktionen können nur sequentiell ausgeführt werden |
Aktionen können parallel ausgeführt werden |
Zugriff auf Daten über Workflow-Aktionen hinweg |
Greifen Sie auf die zwischengespeicherte Workflow-Quelle zu () |
Greifen Sie auf Ausgaben gemeinsam genutzter Artefakte zu (erfordert zusätzliche Konfiguration) |
Compute Sharing einschalten
Gehen Sie wie folgt vor, um Compute Sharing für einen Workflow zu aktivieren.
Beispiele
Beispiel: Amazon S3 Publish
Die folgenden Workflow-Beispiele zeigen, wie Sie die Amazon Amazon S3 S3-Aktion „Veröffentlichen“ auf zwei Arten ausführen können: zuerst mithilfe von Eingabeartefakten und dann mithilfe von Compute Sharing. Bei Compute Sharing werden die Eingabeartefakte nicht benötigt, da Sie auf die zwischengespeicherten WorkflowSource
zugreifen können. Darüber hinaus wird das Ausgabeartefakt in der Build-Aktion nicht mehr benötigt. Die S3-Aktion „Veröffentlichen“ ist so konfiguriert, dass sie die explizite DependsOn
Eigenschaft zur Verwaltung sequentieller Aktionen verwendet. Die Build-Aktion muss erfolgreich ausgeführt werden, damit die S3-Aktion „Veröffentlichen“ ausgeführt werden kann.
Ohne Compute-Sharing müssen Sie Eingabeartefakte verwenden und die Ausgaben mit nachfolgenden Aktionen teilen:
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
-
Wenn Sie Compute Sharing mit der Einstellung
SharedInstance
auf verwendenTRUE
, können Sie mehrere Aktionen auf derselben Instanz ausführen und Artefakte gemeinsam nutzen, indem Sie eine einzige Workflow-Quelle angeben. Eingabeartefakte sind nicht erforderlich und können nicht angegeben werden: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