

Amazon CodeCatalyst ist nicht mehr offen für Neukunden. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Wie migriert man von CodeCatalyst](migration.md).

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
<a name="compute-sharing"></a>

Standardmäßig werden Aktionen in einem Workflow auf separaten Instanzen in einer [Flotte](workflows-working-compute.md#compute.fleets) 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.

**Topics**
+ [Mehrere Aktionen auf gemeinsam genutztem Computer ausführen](#how-to-compute-share)
+ [Überlegungen zur gemeinsamen Nutzung von Rechenleistung](#compare-compute-sharing)
+ [Compute Sharing einschalten](#compute-sharing-steps)
+ [Beispiele](#compute-sharing-examples)

## Mehrere Aktionen auf gemeinsam genutztem Computer ausführen
<a name="how-to-compute-share"></a>

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 CodeCatalyst konfigurieren. Um eine Flotte anzugeben, legen Sie den Namen einer vorhandenen Flotte fest, legen Sie den Berechnungstyp auf **EC2**fest und aktivieren Sie die gemeinsame Nutzung von Rechenressourcen.

**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 unter[Konfiguration von Compute- und Runtime-Images](workflows-working-compute.md).

**Anmerkung**  
Wenn Sie das kostenlose Kontingent nutzen und die `Linux.x86-64.2XLarge` Flotte `Linux.x86-64.XLarge` oder manuell in der Workflow-Definition YAML angeben, 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](https://codecatalyst.aws/explore/pricing). 

Wenn Compute Sharing aktiviert ist, wird der Ordner, der die Workflow-Quelle enthält, automatisch in alle Aktionen kopiert. Sie müssen keine Ausgabeartefakte konfigurieren und sie in einer Workflow-Definition (YAML-Datei) nicht als Eingabeartefakte referenzieren. Als Workflow-Autor müssen Sie Umgebungsvariablen mithilfe von Eingaben und Ausgaben verknüpfen, genau 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](workflows-working-artifacts.md) und [Zwischenspeichern von Dateien zwischen Workflow-Läufen](workflows-caching.md).

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](workflows-sources-reference-files.md).

**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
<a name="compare-compute-sharing"></a>

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  |  Amazon EC2, 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  |  `$CATALYST_SOURCE_DIR_WorkflowSource`, `/sources/WorkflowSource/`  |  `$CATALYST_SOURCE_DIR_WorkflowSource`, `/sources/WorkflowSource/`  | 
|  Workflow-Struktur  |  Aktionen können nur sequentiell ausgeführt werden  |  Aktionen können parallel ausgeführt werden  | 
|  Zugreifen auf Daten über Workflow-Aktionen hinweg  |  Greifen Sie auf die zwischengespeicherte Workflow-Quelle zu () `WorkflowSource`  |  Greifen Sie auf Ausgaben gemeinsam genutzter Artefakte zu (erfordert zusätzliche Konfiguration)  | 

## Compute Sharing einschalten
<a name="compute-sharing-steps"></a>

Gehen Sie wie folgt vor, um Compute Sharing für einen Workflow zu aktivieren.

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

**Um Compute Sharing mit dem Visual Editor zu aktivieren**

1. Öffnen Sie die CodeCatalyst Konsole unter [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Wählen Sie Ihr Projekt.

1. **Wählen Sie im Navigationsbereich **CI/CD** und dann Workflows aus.**

1. Wählen Sie den Namen Ihres Workflows.

1. Wählen Sie **Edit** (Bearbeiten) aus.

1. Wählen Sie **Visual**.

1. Wählen Sie **Workflow-Eigenschaften**.

1. Wählen Sie aus dem Dropdownmenü **Berechnungstyp** die Option **EC2**.

1. (Optional) Wählen Sie im Dropdownmenü **Compute fleet — optional** eine Flotte aus, die Sie für die Ausführung von Workflow-Aktionen verwenden möchten. Sie können eine On-Demand-Flotte wählen oder eine bereitgestellte Flotte erstellen und auswählen. Weitere Informationen finden Sie unter [Eine bereitgestellte Flotte erstellen](projects-create-compute-resource.md) und [Zuweisen einer Flotte oder Rechenleistung zu einer Aktion](workflows-assign-compute-resource.md) 

1. Schalten Sie den Schalter um, um Compute Sharing zu aktivieren und die Aktionen im Workflow auf derselben Flotte ausführen zu lassen.

1. (Optional) Wählen Sie den Ausführungsmodus für den Workflow. Weitere Informationen finden Sie unter [Konfiguration des Warteschlangenverhaltens von Läufen](workflows-configure-runs.md).

1. Wählen Sie **Commit**, geben Sie eine Commit-Nachricht ein und wählen Sie erneut **Commit** aus.

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

**Um Compute Sharing mit dem YAML-Editor zu aktivieren**

1. Öffnen Sie die CodeCatalyst Konsole unter [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Wählen Sie Ihr Projekt.

1. **Wählen Sie im Navigationsbereich **CI/CD** und dann Workflows aus.**

1. Wählen Sie den Namen Ihres Workflows.

1. Wählen Sie **Edit** (Bearbeiten) aus.

1. Wählen Sie **YAML.**

1. Aktivieren Sie Compute Sharing und setzen Sie das `SharedInstance` Feld auf `TRUE` und `Type` bis`EC2`. Stellen `Fleet` Sie eine Rechenflotte ein, die Sie zum Ausführen von Workflow-Aktionen verwenden möchten. Sie können eine On-Demand-Flotte wählen oder eine bereitgestellte Flotte erstellen und auswählen. Weitere Informationen finden Sie unter [Eine bereitgestellte Flotte erstellen](projects-create-compute-resource.md) und [Zuweisen einer Flotte oder Rechenleistung zu einer Aktion](workflows-assign-compute-resource.md)

   Fügen Sie in einem Workflow-YAML Code hinzu, der dem folgenden ähnelt:

   ```
     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. (Optional) Wählen Sie „**Validieren**“, um den YAML-Code des Workflows vor dem Festschreiben zu überprüfen.

1. Wählen Sie **Commit**, geben Sie eine Commit-Nachricht ein und wählen Sie erneut **Commit** aus.

------

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

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

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

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 verwenden`TRUE`, 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
  ```