

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.

# AWS Transfer Family verwaltete Workflows
<a name="transfer-workflows"></a>

 AWS Transfer Family unterstützt verwaltete Workflows für die Dateiverarbeitung. Mit verwalteten Workflows können Sie einen Workflow starten, nachdem eine Datei über SFTP, FTPS oder FTP übertragen wurde. Mit dieser Funktion können Sie Ihre Compliance-Anforderungen für den business-to-business (B2B-) Dateiaustausch sicher und kostengünstig erfüllen, indem Sie alle für die Dateiverarbeitung erforderlichen Schritte koordinieren. Darüber hinaus profitieren Sie von end-to-end Auditing und Transparenz.

![\[Flussdiagramm, das zeigt, wie verwaltete Workflows die Dateiverarbeitung unterstützen.\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/workflows-diagram.png)


Durch die Orchestrierung von Dateiverarbeitungsaufgaben helfen Ihnen verwaltete Workflows dabei, Daten vorzuverarbeiten, bevor sie von Ihren nachgelagerten Anwendungen verwendet werden. Zu diesen Aufgaben zur Dateiverarbeitung können gehören:
+ Dateien in benutzerspezifische Ordner verschieben.
+ Entschlüsseln von Dateien als Teil eines Workflows.
+ Dateien taggen.
+ Durchführung einer benutzerdefinierten Verarbeitung durch Erstellen und Anhängen einer AWS Lambda Funktion an einen Workflow.
+ Senden von Benachrichtigungen, wenn eine Datei erfolgreich übertragen wurde. (Einen Blogbeitrag, in dem dieser Anwendungsfall detailliert beschrieben wird, finden [Sie unter Anpassen von Benachrichtigungen zur Dateizustellung mithilfe AWS Transfer Family verwalteter Workflows](https://aws.amazon.com/blogs/storage/customize-file-delivery-notifications-using-aws-transfer-family-managed-workflows/).)

Um häufig auftretende Aufgaben zur Dateiverarbeitung nach dem Upload, die sich über mehrere Geschäftsbereiche in Ihrem Unternehmen erstrecken, schnell zu replizieren und zu standardisieren, können Sie Workflows mithilfe von Infrastructure as Code (IaC) bereitstellen. Sie können einen verwalteten Workflow angeben, der für vollständig hochgeladene Dateien initiiert wird. Sie können auch einen anderen verwalteten Workflow angeben, der für Dateien initiiert werden soll, die aufgrund einer vorzeitigen Sitzungsunterbrechung nur teilweise hochgeladen wurden. Die integrierte Ausnahmebehandlung hilft Ihnen, schnell auf Ergebnisse der Dateiverarbeitung zu reagieren, und bietet Ihnen gleichzeitig die Kontrolle darüber, wie mit Fehlern umgegangen werden soll. Darüber hinaus erstellt jeder Workflow-Schritt detaillierte Protokolle, die Sie überprüfen können, um die Herkunft der Daten nachzuverfolgen.

Führen Sie zunächst die folgenden Aufgaben aus:

1. Richten Sie Ihren Workflow so ein, dass er je nach Ihren Anforderungen Vorverarbeitungsaktionen wie Kopieren, Markieren und andere Schritte enthält. Details dazu finden Sie unter [Erstellen Sie einen Workflow](create-workflow.md).

1. Konfigurieren Sie eine Ausführungsrolle, die Transfer Family zur Ausführung des Workflows verwendet. Details dazu finden Sie unter [IAM-Richtlinien für Workflows](workflow-execution-role.md).

1. Ordnen Sie den Workflow einem Server zu, sodass die in diesem Workflow angegebenen Aktionen beim Eintreffen der Datei in Echtzeit ausgewertet und initiiert werden. Details dazu finden Sie unter [Konfigurieren Sie einen Workflow und führen Sie ihn aus](create-workflow.md#configure-workflow).

**Ähnliche Informationen**
+ Informationen zur Überwachung Ihrer Workflow-Ausführungen finden Sie unter[Verwenden von CloudWatch Metriken für Transfer Family Family-Server](metrics.md).
+ Ausführliche Ausführungsprotokolle und Informationen zur Fehlerbehebung finden Sie unter[Workflow-bezogene Fehler mithilfe von Amazon beheben CloudWatch](workflow-issues.md#workflows-cloudwatch-errors).
+ Transfer Family bietet einen Blogbeitrag und einen Workshop, die Sie durch den Aufbau einer Dateiübertragungslösung führen. Diese Lösung nutzt AWS Transfer Family für verwaltete SFTP/FTPS Endgeräte sowie Amazon Cognito und DynamoDB für die Benutzerverwaltung. 

  Der Blogbeitrag ist unter [Amazon Cognito als Identitätsanbieter mit AWS Transfer Family Amazon S3 verwenden](https://aws.amazon.com/blogs/storage/using-amazon-cognito-as-an-identity-provider-with-aws-transfer-family-and-amazon-s3/) verfügbar. Die Details zum Workshop finden Sie [hier.](https://catalog.workshops.aws/transfer-family-sftp/en-US) 
+ Das folgende Video bietet eine kurze Einführung in die von Transfer Family verwalteten Workflows.  
[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/t-iNqCRospw/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/t-iNqCRospw)
+ [Der folgende Workshop bietet praktische Übungen zur Erstellung vollautomatischer und ereignisgesteuerter Workflows, die die Übertragung von Dateien zu oder von externen SFTP-Servern zu Amazon S3 sowie die allgemeine Vor- und Nachverarbeitung dieser Dateien beinhalten: Eventgesteuerter MFT-Workshop.](https://catalog.us-east-1.prod.workshops.aws/workshops/e55c90e0-bbb0-47e1-be83-6bafa3a59a8a/en-US)

  Dieses Video bietet einen Überblick über diesen Workshop.  
[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/oojopisG4lA/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/oojopisG4lA)

**Topics**
+ [Erstellen Sie einen Workflow](create-workflow.md)
+ [Verwenden Sie vordefinierte Schritte](nominal-steps-workflow.md)
+ [Verwenden Sie benutzerdefinierte Schritte zur Dateiverarbeitung](custom-step-details.md)
+ [IAM-Richtlinien für Workflows](workflow-execution-role.md)
+ [Ausnahmebehandlung für einen Workflow](#exception-workflow)
+ [Überwachen Sie die Workflow-Ausführung](cloudwatch-workflow.md)
+ [Erstellen Sie einen Workflow aus einer Vorlage](workflow-template.md)
+ [Einen Workflow von einem Transfer Family Family-Server entfernen](#remove-workflow-association)
+ [Einschränkungen und Einschränkungen verwalteter Workflows](#limitations-workflow)

Weitere Hilfe zu den ersten Schritten mit verwalteten Workflows finden Sie in den folgenden Ressourcen: 
+ AWS Transfer Family Demovideo zu [verwalteten Workflows](https://www.youtube.com/watch?v=t-iNqCRospw)
+ Blogbeitrag zum [Aufbau einer Cloud-nativen Dateiübertragungsplattform mithilfe von AWS Transfer Family Workflows](https://aws.amazon.com/blogs/architecture/building-a-cloud-native-file-transfer-platform-using-aws-transfer-family-workflows/)

# Erstellen Sie einen Workflow
<a name="create-workflow"></a>

Sie können einen verwalteten Workflow mithilfe von erstellen AWS-Managementkonsole, wie in diesem Thema beschrieben. Um den Prozess der Workflow-Erstellung so einfach wie möglich zu gestalten, sind für die meisten Abschnitte der Konsole kontextuelle Hilfebereiche verfügbar.

Ein Workflow besteht aus zwei Arten von Schritten:
+ **Nominale Schritte** — Nominale Schritte sind Schritte zur Dateiverarbeitung, die Sie auf eingehende Dateien anwenden möchten. Wenn Sie mehr als einen nominalen Schritt auswählen, wird jeder Schritt in einer linearen Reihenfolge verarbeitet.
+ Schritte zur **Ausnahmebehandlung — Ausnahmehandler sind Schritte zur** Dateiverarbeitung, die AWS Transfer Family ausgeführt werden, falls nominelle Schritte fehlschlagen oder zu Validierungsfehlern führen.

**Erstellen Sie einen Workflow**

1. Öffnen Sie die AWS Transfer Family Konsole unter [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Wählen Sie im linken Navigationsbereich **Workflows** aus.

1. Wählen Sie auf der Seite **Workflows** die Option **Workflow erstellen** aus.

1. Geben Sie auf der Seite **Workflow erstellen** eine Beschreibung ein. Diese Beschreibung wird auf der Seite **Workflows** angezeigt.

1. Wählen Sie im Abschnitt **Nominale Schritte** die Option **Schritt hinzufügen** aus. Fügen Sie einen oder mehrere Schritte hinzu.

   1. Wählen Sie einen Schritttyp aus den verfügbaren Optionen aus. Weitere Informationen zu den verschiedenen Schritttypen finden Sie unter[Verwenden Sie vordefinierte Schritte](nominal-steps-workflow.md).

   1. Wählen Sie **Weiter** und konfigurieren Sie dann die Parameter für den Schritt. 

   1. Wählen Sie **Weiter** und überprüfen Sie dann die Details für den Schritt. 

   1. Wählen Sie **Schritt erstellen**, um den Schritt hinzuzufügen und fortzufahren.

   1. Fügen Sie nach Bedarf weitere Schritte hinzu. Die maximale Anzahl von Schritten in einem Workflow beträgt 8.

   1. Nachdem Sie alle erforderlichen nominalen Schritte hinzugefügt haben, scrollen Sie nach unten zum Abschnitt **Ausnahmebehandler — *optional*** und wählen Sie **Schritt hinzufügen** aus. 
**Anmerkung**  
Damit Sie in Echtzeit über Fehler informiert werden, empfehlen wir Ihnen, Ausnahmebehandlungsroutinen und Schritte einzurichten, die ausgeführt werden, wenn Ihr Workflow fehlschlägt.

1. Um Ausnahmehandler zu konfigurieren, fügen Sie Schritte auf die gleiche Weise wie zuvor beschrieben hinzu. Wenn eine Datei dazu führt, dass ein Schritt eine Ausnahme auslöst, werden Ihre Ausnahmebehandlungsroutinen nacheinander aufgerufen. 

1. (Optional) Scrollen Sie nach unten zum Abschnitt „**Tags**“ und fügen Sie Tags für Ihren Workflow hinzu.

1. Überprüfen Sie die Konfiguration und wählen Sie **Workflow erstellen** aus. 
**Wichtig**  
Nachdem Sie einen Workflow erstellt haben, können Sie ihn nicht mehr bearbeiten. Überprüfen Sie die Konfiguration daher sorgfältig.

## Konfigurieren Sie einen Workflow und führen Sie ihn aus
<a name="configure-workflow"></a>

Bevor Sie einen Workflow ausführen können, müssen Sie ihn einem Transfer Family Family-Server zuordnen.

**So konfigurieren Sie Transfer Family so, dass ein Workflow für hochgeladene Dateien ausgeführt wird**

1. Öffnen Sie die AWS Transfer Family Konsole unter [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Wählen Sie im linken Navigationsbereich **Server** aus. 
   + Um den Workflow zu einem vorhandenen Server hinzuzufügen, wählen Sie den Server aus, den Sie für Ihren Workflow verwenden möchten.
   + Alternativ können Sie einen neuen Server erstellen und den Workflow hinzufügen. Weitere Informationen finden Sie unter [Konfiguration eines SFTP-, FTPS- oder FTP-Serverendpunkts](tf-server-endpoint.md).

1. Scrollen Sie auf der Detailseite für den Server nach unten zum Abschnitt **Zusätzliche Details** und wählen Sie dann **Bearbeiten** aus. 
**Anmerkung**  
 Standardmäßig sind Servern keine Workflows zugeordnet. Sie verwenden den Abschnitt **Zusätzliche Details**, um dem ausgewählten Server einen Workflow zuzuordnen. 

1. Wählen Sie auf der Seite **Zusätzliche Details bearbeiten** im Abschnitt **Verwaltete Workflows** einen Workflow aus, der für alle Uploads ausgeführt werden soll.
**Anmerkung**  
Wenn Sie noch keinen Workflow haben, wählen Sie **Neuen Workflow erstellen aus, um einen** zu erstellen.

   1. Wählen Sie die zu verwendende Workflow-ID aus. 

   1. Wählen Sie eine Ausführungsrolle aus. Dies ist die Rolle, die Transfer Family bei der Ausführung der Workflow-Schritte einnimmt. Weitere Informationen finden Sie unter [IAM-Richtlinien für Workflows](workflow-execution-role.md). Wählen Sie **Save (Speichern)** aus.  
![\[Der Bildschirm Verwaltete Workflows, auf dem Werte für den Workflow und die Ausführungsrolle angezeigt werden.\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/workflows-addtoserver.png)

**Anmerkung**  
Wenn Sie nicht mehr möchten, dass ein Workflow dem Server zugeordnet wird, können Sie die Zuordnung entfernen. Details hierzu finden Sie unter [Einen Workflow von einem Transfer Family Family-Server entfernen](transfer-workflows.md#remove-workflow-association).

**Um einen Workflow auszuführen**

Um einen Workflow auszuführen, laden Sie eine Datei auf einen Transfer Family Family-Server hoch, den Sie mit einem zugehörigen Workflow konfiguriert haben.

**Anmerkung**  
Jedes Mal, wenn Sie einen Workflow von einem Server entfernen und ihn durch einen neuen ersetzen oder die Serverkonfiguration aktualisieren (was sich auf die Ausführungsrolle eines Workflows auswirkt), müssen Sie etwa 10 Minuten warten, bevor Sie den neuen Workflow ausführen. Der Transfer Family Family-Server speichert die Workflow-Details im Cache, und es dauert 10 Minuten, bis der Server seinen Cache aktualisiert hat.  
Darüber hinaus müssen Sie sich von allen aktiven SFTP-Sitzungen abmelden und sich nach Ablauf der 10-minütigen Wartezeit wieder anmelden, um die Änderungen zu sehen.

**Example**  

```
# Execute a workflow
> sftp bob@s-1234567890abcdef0.server.transfer.us-east-1.amazonaws.com

Connected to s-1234567890abcdef0.server.transfer.us-east-1.amazonaws.com.
sftp> put doc1.pdf
Uploading doc1.pdf to /amzn-s3-demo-bucket/home/users/bob/doc1.pdf
doc1.pdf                                                                    100% 5013KB 601.0KB/s   00:08    
sftp> exit
>
```

Nachdem Ihre Datei hochgeladen wurde, wird die definierte Aktion an Ihrer Datei ausgeführt. Wenn Ihr Workflow beispielsweise einen Kopierschritt enthält, wird die Datei an den Speicherort kopiert, den Sie in diesem Schritt definiert haben. Sie können Amazon CloudWatch Logs verwenden, um die ausgeführten Schritte und ihren Ausführungsstatus nachzuverfolgen.

## Workflow-Details anzeigen
<a name="view-details-workflow"></a>

Sie können Details zu zuvor erstellten Workflows oder zu Workflow-Ausführungen anzeigen. Um diese Details anzuzeigen, können Sie die Konsole oder die AWS Command Line Interface (AWS CLI) verwenden. 

------
#### [ Console ]

**Workflow-Details anzeigen**

1. Öffnen Sie die AWS Transfer Family Konsole unter [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Wählen Sie im linken Navigationsbereich **Workflows** aus. 

1. Wählen Sie auf der **Workflow-Seite** einen Workflow aus. 

   Die Seite mit den Workflow-Details wird geöffnet.   
![\[Der Workflow-Detailbildschirm für einen Transfer Family Family-Workflow, auf dem die Beschreibung, die Schritte, die Ausnahmebehandlungsroutinen und die Ausführung während der Übertragung angezeigt werden.\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/workflows-overview.png)

------
#### [ CLI ]

Verwenden Sie den `describe-workflow` CLI-Befehl, um die Workflow-Details anzuzeigen, wie im folgenden Beispiel gezeigt. Ersetzen Sie die Workflow-ID `w-1234567890abcdef0` durch Ihren eigenen Wert. Weitere Informationen finden Sie unter [describe-workflow](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transfer/describe-workflow.html) in der *AWS CLI Befehlsreferenz*.

```
# View Workflow details
> aws transfer describe-workflow --workflow-id w-1234567890abcdef0
{
    "Workflow": {
        "Arn": "arn:aws:transfer:us-east-1:111122223333:workflow/w-1234567890abcdef0",
        "WorkflowId": "w-1234567890abcdef0",
        "Name": "Copy file to shared_files",
        "Steps": [
            {
                "Type": "COPY",
                "CopyStepDetails": {
                "Name": "Copy to shared",
                "FileLocation": {
                    "S3FileLocation": {
                        "Bucket": "amzn-s3-demo-bucket",
                        "Key": "home/shared_files/"
                    }
                }
                }
            }
        ],
        "OnException": {}
    }
}
```

------

Wenn Ihr Workflow als Teil eines AWS CloudFormation Stacks erstellt wurde, können Sie den Workflow mithilfe der CloudFormation Konsole ([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)) verwalten.

![\[Der Bildschirm mit den Workflow-Details für einen Workflow, der Teil eines AWS CloudFormation Stacks ist, zeigt die Meldung an, in der Sie diesen Workflow verwalten. CloudFormation\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/workflows-cloudformation-link.png)


# Verwenden Sie vordefinierte Schritte
<a name="nominal-steps-workflow"></a>

Wenn Sie einen Workflow erstellen, können Sie wählen, ob Sie einen der folgenden vordefinierten Schritte hinzufügen möchten, die in diesem Thema beschrieben werden. Sie können auch Ihre eigenen benutzerdefinierten Dateiverarbeitungsschritte hinzufügen. Weitere Informationen finden Sie unter [Verwenden Sie benutzerdefinierte Schritte zur Dateiverarbeitung](custom-step-details.md).

**Topics**
+ [Datei kopieren](#copy-step-details)
+ [Datei entschlüsseln](#decrypt-step-details)
+ [Datei kennzeichnen](#tag-step-details)
+ [Datei löschen](#delete-step-details)
+ [Benannte Variablen für Workflows](#workflow-named-variables)
+ [Beispiel für einen Workflow zum Markieren und Löschen](#sourcefile-workflow)

## Datei kopieren
<a name="copy-step-details"></a>

Ein Schritt „Datei kopieren“ erstellt eine Kopie der hochgeladenen Datei an einem neuen Amazon S3 S3-Speicherort. Derzeit können Sie den Schritt „Datei kopieren“ nur mit Amazon S3 verwenden.

Der folgende Schritt zum Kopieren von Dateien kopiert Dateien in den `test` Ordner in*amzn-s3-demo-destination-bucket*. 

Wenn der Schritt „Datei kopieren“ nicht der erste Schritt Ihres Workflows ist, können Sie den **Speicherort der Datei** angeben. Durch Angabe des Dateispeicherorts können Sie entweder die Datei, die im vorherigen Schritt verwendet wurde, oder die Originaldatei, die hochgeladen wurde, kopieren. Sie können diese Funktion verwenden, um mehrere Kopien der Originaldatei zu erstellen und gleichzeitig die Quelldatei für die Dateiarchivierung und Aufbewahrung von Aufzeichnungen intakt zu lassen. Ein Beispiel finden Sie unter [Beispiel für einen Workflow zum Markieren und Löschen](#sourcefile-workflow).

![\[Workflow-Bildschirm mit Kopiere die im vorherigen Schritt erstellte Datei... Schaltfläche ausgewählt.\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/workflows-step-copy.png)


### Geben Sie den Bucket und die wichtigsten Details an
<a name="copy-provide-bucket"></a>

Sie müssen den Bucket-Namen und einen Schlüssel für das Ziel des Schritts „Datei kopieren“ angeben. Der Schlüssel kann entweder ein Pfadname oder ein Dateiname sein. Ob der Schlüssel als Pfad- oder Dateiname behandelt wird, hängt davon ab, ob Sie den Schlüssel mit einem Schrägstrich (`/`) beenden.

Wenn das letzte Zeichen ist`/`, wird Ihre Datei in den Ordner kopiert, und ihr Name ändert sich nicht. Wenn das letzte Zeichen alphanumerisch ist, wird Ihre hochgeladene Datei in den Schlüsselwert umbenannt. Wenn in diesem Fall bereits eine Datei mit diesem Namen existiert, hängt das Verhalten von der Einstellung für das Feld **Bestehende überschreiben** ab.
+ Wenn **Bestehende überschreiben** ausgewählt ist, wird die vorhandene Datei durch die Datei ersetzt, die gerade verarbeitet wird.
+ Wenn „**Bestehende überschreiben**“ nicht ausgewählt ist, passiert nichts und die Workflow-Verarbeitung wird gestoppt.
**Tipp**  
Wenn gleichzeitige Schreibvorgänge auf demselben Dateipfad ausgeführt werden, kann dies zu unerwartetem Verhalten beim Überschreiben von Dateien führen.

Wenn Ihr Schlüsselwert beispielsweise lautet`test/`, werden Ihre hochgeladenen Dateien in den `test` Ordner kopiert. Wenn Ihr Schlüsselwert ist (und **Bestehende überschreiben** ausgewählt ist)`test/today`, wird jede Datei, die Sie hochladen, in eine Datei mit dem Namen `today` im `test` Ordner kopiert, und jede nachfolgende Datei überschreibt die vorherige.

**Anmerkung**  
Amazon S3 unterstützt Buckets und Objekt. Es gibt keine Hierarchie in Amazon S3. Sie können jedoch Präfixe und Trennzeichen in Objektschlüsselnamen verwenden, um eine Hierarchie zu implizieren und Ihre Daten ähnlich wie in Ordnern zu organisieren.

### Verwenden Sie eine benannte Variable in einem Schritt zum Kopieren von Dateien
<a name="named-variable-copy"></a>

In einem Schritt zum Kopieren von Dateien können Sie eine Variable verwenden, um Ihre Dateien dynamisch in benutzerspezifische Ordner zu kopieren. Derzeit können Sie `${transfer:UserName}` oder `${transfer:UploadDate}` als Variable verwenden, um Dateien an einen Zielort für den Benutzer zu kopieren, der gerade Dateien hochlädt, oder auf der Grundlage des aktuellen Datums.

Wenn der Benutzer im folgenden Beispiel eine Datei `richard-roe` hochlädt, wird sie in den `amzn-s3-demo-destination-bucket/richard-roe/processed/` Ordner kopiert. Wenn der Benutzer eine Datei `mary-major` hochlädt, wird sie in den `amzn-s3-demo-destination-bucket/mary-major/processed/` Ordner kopiert.

![\[Parameterbildschirm für einen Kopierschritt, auf dem der Bucket und der Schlüssel angezeigt werden, parametrisiert mit. UserName\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/workflows-step-copy-dynamic.png)


In ähnlicher Weise können Sie die Variable `${transfer:UploadDate}` als Variable verwenden, um Dateien an einen Zielort zu kopieren, der nach dem aktuellen Datum benannt ist. Wenn Sie im folgenden Beispiel das Ziel `${transfer:UploadDate}/processed` auf den 1. Februar 2022 festlegen, werden die hochgeladenen Dateien in den `amzn-s3-demo-destination-bucket/2022-02-01/processed/` Ordner kopiert.

![\[Parameterbildschirm für einen Kopierschritt, auf dem der Bucket und der Schlüssel angezeigt werden, parametrisiert mit. UploadDate\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/workflows-step-copy-dynamic-date.png)


Sie können diese beiden Variablen auch zusammen verwenden und so ihre Funktionalität kombinieren. Sie könnten beispielsweise das **Zielschlüsselpräfix** auf festlegen**folder/\$1\$1transfer:UserName\$1/\$1\$1transfer:UploadDate\$1/**, wodurch beispielsweise `folder/marymajor/2023-01-05/` verschachtelte Ordner erstellt würden.

### IAM-Berechtigungen für den Kopierschritt
<a name="copy-step-iam"></a>

Damit ein Kopierschritt erfolgreich ausgeführt werden kann, stellen Sie sicher, dass die Ausführungsrolle für Ihren Workflow die folgenden Berechtigungen enthält.

```
{
    "Sid": "ListBucket",
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": [
        "arn:aws:s3:::amzn-s3-demo-destination-bucket"
    ]
}, {
    "Sid": "HomeDirObjectAccess",
    "Effect": "Allow",
    "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObjectVersion",
        "s3:DeleteObject",
        "s3:GetObjectVersion"
    ],
    "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
}
```

**Anmerkung**  
Die `s3:ListBucket` Berechtigung ist nur erforderlich, wenn Sie **Bestehende überschreiben** nicht auswählen. Mit dieser Berechtigung wird in Ihrem Bucket überprüft, ob bereits eine Datei mit demselben Namen existiert. Wenn Sie **Existierende überschreiben** ausgewählt haben, muss der Workflow nicht nach der Datei suchen, sondern kann sie einfach schreiben.  
Wenn Ihre Amazon S3 S3-Dateien Tags haben, müssen Sie Ihrer IAM-Richtlinie eine oder zwei Berechtigungen hinzufügen.  
`s3:GetObjectTagging`Für eine Amazon S3 S3-Datei hinzufügen, die nicht versioniert ist.
`s3:GetObjectVersionTagging`Für eine Amazon S3 S3-Datei hinzufügen, die versioniert ist.

## Datei entschlüsseln
<a name="decrypt-step-details"></a>

Der AWS Speicher-Blog enthält einen Beitrag, in dem beschrieben wird, wie Dateien mithilfe von Transfer Family Managed Workflows, Verschlüsseln und [Entschlüsseln von Dateien mit PGP und einfach entschlüsselt werden können, ohne Code zu](https://aws.amazon.com/blogs/storage/encrypt-and-decrypt-files-with-pgp-and-aws-transfer-family/) schreiben, beschrieben werden. AWS Transfer Family

### Unterstützte symmetrische Verschlüsselungsalgorithmen
<a name="symmetric-algorithms"></a>

Für die PGP-Entschlüsselung unterstützt Transfer Family symmetrische Verschlüsselungsalgorithmen, mit denen die eigentlichen Dateidaten in PGP-Dateien verschlüsselt werden.
+ Ausführliche Informationen zu den unterstützten symmetrischen Verschlüsselungsalgorithmen finden Sie unter. [Symmetrische PGP-Verschlüsselungsalgorithmen](key-management.md#pgp-symmetric-algorithms)
+ Hinweise zu PGP-Schlüsselpaar-Algorithmen, die mit diesen symmetrischen Algorithmen verwendet werden, finden Sie unter. [PGP-Schlüsselpaar-Algorithmen](key-management.md#pgp-key-algorithms)

### Verwenden Sie die PGP-Entschlüsselung in Ihrem Workflow
<a name="configure-decryption"></a>

Transfer Family bietet integrierte Unterstützung für die Pretty Good Privacy (PGP) -Entschlüsselung. Sie können die PGP-Entschlüsselung für Dateien verwenden, die über SFTP, FTPS oder FTP auf Amazon Simple Storage Service (Amazon S3) oder Amazon Elastic File System (Amazon EFS) hochgeladen werden. 

Um die PGP-Entschlüsselung verwenden zu können, müssen Sie die privaten PGP-Schlüssel erstellen und speichern, die für die Entschlüsselung Ihrer Dateien verwendet werden. Ihre Benutzer können dann Dateien mit den entsprechenden PGP-Verschlüsselungsschlüsseln verschlüsseln, bevor sie die Dateien auf Ihren Transfer Family Family-Server hochladen. Nachdem Sie die verschlüsselten Dateien erhalten haben, können Sie diese Dateien in Ihrem Workflow entschlüsseln. Ein detailliertes Tutorial finden Sie unter [Einen verwalteten Workflow zum Entschlüsseln einer Datei einrichten](workflow-decrypt-tutorial.md).

Informationen zu unterstützten PGP-Algorithmen und Empfehlungen finden Sie unter. [PGP-Verschlüsselungs- und Entschlüsselungsalgorithmen](key-management.md#pgp-encryption-algorithms)

**So verwenden Sie die PGP-Entschlüsselung in Ihrem Workflow**

1. Identifizieren Sie einen Transfer Family Family-Server, auf dem Ihr Workflow gehostet werden soll, oder erstellen Sie einen neuen. Sie benötigen die Server-ID, bevor Sie Ihre PGP-Schlüssel AWS Secrets Manager mit dem richtigen geheimen Namen speichern können.

1. Speichern Sie Ihren PGP-Schlüssel AWS Secrets Manager unter dem erforderlichen geheimen Namen. Details hierzu finden Sie unter [PGP-Schlüssel verwalten](manage-pgp-keys.md). Workflows können anhand des geheimen Namens in Secrets Manager automatisch den richtigen PGP-Schlüssel finden, der für die Entschlüsselung verwendet werden soll.
**Anmerkung**  
Wenn Sie Geheimnisse im Secrets Manager speichern, AWS-Konto fallen Gebühren an. Informationen zu den Preisen erhalten Sie unter [AWS Secrets Manager Preise](https://aws.amazon.com/secrets-manager/pricing).

1. Verschlüsseln Sie eine Datei mit Ihrem PGP-Schlüsselpaar. (Eine Liste der unterstützten Clients finden Sie unter[Unterstützte PGP-Clients](pgp-key-clients.md).) Wenn Sie die Befehlszeile verwenden, führen Sie den folgenden Befehl aus. Um diesen Befehl zu verwenden, ersetzen Sie ihn durch die E-Mail-Adresse, `username@example.com` mit der Sie das PGP-Schlüsselpaar erstellt haben. `testfile.txt`Ersetzen Sie es durch den Namen der Datei, die Sie verschlüsseln möchten. 

   ```
   gpg -e -r username@example.com testfile.txt
   ```
**Wichtig**  
Achten Sie beim Verschlüsseln von Dateien zur Verwendung mit AWS Transfer Family Workflows immer darauf, dass Sie mithilfe des Parameters einen nicht anonymen Empfänger angeben. `-r` Anonyme Verschlüsselung (ohne Angabe eines Empfängers) kann zu Entschlüsselungsfehlern im Workflow führen, da das System nicht erkennen kann, welcher Schlüssel für die Entschlüsselung verwendet werden soll. Informationen zum Debuggen dieses Problems finden Sie unter. [Beheben Sie Probleme mit der Verschlüsselung anonymer Empfänger](workflow-issues.md#workflows-decrypt-anonymous) 

1. Laden Sie die verschlüsselte Datei auf Ihren Transfer Family Family-Server hoch.

1. Konfigurieren Sie einen Entschlüsselungsschritt in Ihrem Workflow. Weitere Informationen finden Sie unter [Fügen Sie einen Entschlüsselungsschritt hinzu](#decrypt-step-procedure).

### Fügen Sie einen Entschlüsselungsschritt hinzu
<a name="decrypt-step-procedure"></a>

Ein Entschlüsselungsschritt entschlüsselt eine verschlüsselte Datei, die als Teil Ihres Workflows auf Amazon S3 oder Amazon EFS hochgeladen wurde. Einzelheiten zur Konfiguration der Entschlüsselung finden Sie unter. [Verwenden Sie die PGP-Entschlüsselung in Ihrem Workflow](#configure-decryption)

Wenn Sie Ihren Entschlüsselungsschritt für einen Workflow erstellen, müssen Sie das Ziel für die entschlüsselten Dateien angeben. Sie müssen auch auswählen, ob vorhandene Dateien überschrieben werden sollen, wenn am Zielspeicherort bereits eine Datei vorhanden ist. Mit Amazon CloudWatch Logs können Sie die Ergebnisse des Entschlüsselungsworkflows überwachen und Prüfprotokolle für jede Datei in Echtzeit abrufen.

Nachdem Sie den **Dateityp Entschlüsseln** für Ihren Schritt ausgewählt haben, wird die Seite „**Parameter konfigurieren**“ angezeigt. Geben Sie die Werte für den Abschnitt **PGP-Entschlüsselungsparameter konfigurieren** ein.

Die verfügbaren Optionen lauten wie folgt:
+ **Schrittname** — Geben Sie einen aussagekräftigen Namen für den Schritt ein.
+ **Dateispeicherort** — Durch Angabe des Dateispeicherorts können Sie entweder die Datei, die im vorherigen Schritt verwendet wurde, oder die Originaldatei, die hochgeladen wurde, entschlüsseln. 
**Anmerkung**  
Dieser Parameter ist nicht verfügbar, wenn dieser Schritt der erste Schritt des Workflows ist.
+ **Ziel für entschlüsselte Dateien** — Wählen Sie einen Amazon S3 S3-Bucket oder ein Amazon EFS-Dateisystem als Ziel für die entschlüsselte Datei.
  + Wenn Sie sich für Amazon S3 entscheiden, müssen Sie einen Ziel-Bucket-Namen und ein Zielschlüsselpräfix angeben. Um das Zielschlüsselpräfix nach Benutzername zu parametrisieren, geben Sie **\$1\$1transfer:UserName\$1** als **Zielschlüsselpräfix** ein. Um das Zielschlüsselpräfix anhand des Upload-Datums zu parametrisieren, geben **\$1\$1Transfer:UploadDate\$1** Sie in ähnlicher Weise das **Zielschlüsselpräfix** ein.
  + Wenn Sie Amazon EFS wählen, müssen Sie ein Zieldateisystem und einen Pfad angeben.
**Anmerkung**  
Die Speicheroption, die Sie hier auswählen, muss mit dem Speichersystem übereinstimmen, das vom Transfer Family Family-Server verwendet wird, mit dem dieser Workflow verknüpft ist. Andernfalls erhalten Sie eine Fehlermeldung, wenn Sie versuchen, diesen Workflow auszuführen.
+ **Bestehende überschreiben** — Wenn Sie eine Datei hochladen und am Ziel bereits eine Datei mit demselben Dateinamen vorhanden ist, hängt das Verhalten von der Einstellung für diesen Parameter ab:
  + Wenn „**Bestehende überschreiben**“ ausgewählt ist, wird die bestehende Datei durch die Datei ersetzt, die gerade verarbeitet wird.
  + Wenn „**Bestehende überschreiben**“ nicht ausgewählt ist, passiert nichts und die Workflow-Verarbeitung wird gestoppt.
**Tipp**  
Wenn gleichzeitige Schreibvorgänge auf demselben Dateipfad ausgeführt werden, kann dies zu unerwartetem Verhalten beim Überschreiben von Dateien führen.

Der folgende Screenshot zeigt ein Beispiel für die Optionen, die Sie für den Schritt „Datei entschlüsseln“ wählen könnten. 

![\[Die AWS Transfer Family Konsole zeigt den Abschnitt PGP-Entschlüsselungsparameter konfigurieren mit Beispielwerten.\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/workflows-step-decrypt-details.png)


### Schritt „IAM-Berechtigungen für die Entschlüsselung“
<a name="decrypt-step-iam"></a>

Damit ein Entschlüsselungsschritt erfolgreich ausgeführt werden kann, stellen Sie sicher, dass die Ausführungsrolle für Ihren Workflow die folgenden Berechtigungen enthält.

```
{
    "Sid": "ListBucket",
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": [
        "arn:aws:s3:::amzn-s3-demo-destination-bucket"
    ]
}, {
    "Sid": "HomeDirObjectAccess",
    "Effect": "Allow",
    "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObjectVersion",
        "s3:DeleteObject",
        "s3:GetObjectVersion"
    ],
    "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
}, {
    "Sid": "Decrypt",
    "Effect": "Allow",
    "Action": [
        "secretsmanager:GetSecretValue",
    ],
    "Resource": "arn:aws:secretsmanager:region:account-id:secret:aws/transfer/*"
}
```

**Anmerkung**  
Die `s3:ListBucket` Berechtigung ist nur erforderlich, wenn Sie Bestehende **überschreiben** nicht auswählen. Mit dieser Berechtigung wird in Ihrem Bucket überprüft, ob bereits eine Datei mit demselben Namen existiert. Wenn Sie **Existierende überschreiben** ausgewählt haben, muss der Workflow nicht nach der Datei suchen, sondern kann sie einfach schreiben.  
Wenn Ihre Amazon S3 S3-Dateien Tags haben, müssen Sie Ihrer IAM-Richtlinie eine oder zwei Berechtigungen hinzufügen.  
`s3:GetObjectTagging`Für eine Amazon S3 S3-Datei hinzufügen, die nicht versioniert ist.
`s3:GetObjectVersionTagging`Für eine Amazon S3 S3-Datei hinzufügen, die versioniert ist.

## Datei kennzeichnen
<a name="tag-step-details"></a>

Verwenden Sie einen Tag-Schritt, um eingehende Dateien für die weitere Verarbeitung zu kennzeichnen. Geben Sie den Wert des Tags ein, das Sie den eingehenden Dateien zuweisen möchten. Derzeit wird der Tag-Vorgang nur unterstützt, wenn Sie Amazon S3 für Ihren Transfer Family Family-Serverspeicher verwenden.

Der folgende Beispiel-Tag-Schritt weist `scan_outcome` und `clean` als Tag-Schlüssel bzw. -Wert zu.

![\[Workflow-Bildschirm mit den Details für einen Tagging-Schritt.\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/workflows-step-tag.png)


Damit ein Tag-Schritt erfolgreich ausgeführt werden kann, stellen Sie sicher, dass die Ausführungsrolle für Ihren Workflow die folgenden Berechtigungen enthält.

```
{
            "Sid": "Tag",
            "Effect": "Allow",
            "Action": [
                "s3:PutObjectTagging",
                "s3:PutObjectVersionTagging"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
}
```

**Anmerkung**  
Wenn Ihr Workflow einen Tag-Schritt enthält, der entweder vor einem Kopier- oder Entschlüsselungsschritt ausgeführt wird, müssen Sie Ihrer IAM-Richtlinie eine oder zwei Berechtigungen hinzufügen.  
`s3:GetObjectTagging`Für eine Amazon S3 S3-Datei hinzufügen, die nicht versioniert ist.
`s3:GetObjectVersionTagging`Für eine Amazon S3 S3-Datei hinzufügen, die versioniert ist.

## Datei löschen
<a name="delete-step-details"></a>

Um eine verarbeitete Datei aus einem vorherigen Workflow-Schritt oder die ursprünglich hochgeladene Datei zu löschen, verwenden Sie einen Schritt „Datei löschen“.

![\[Workflow-Bildschirm mit den Details für einen Löschschritt.\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/workflows-step-delete.png)


Damit ein Löschschritt erfolgreich ausgeführt werden kann, stellen Sie sicher, dass die Ausführungsrolle für Ihren Workflow die folgenden Berechtigungen enthält.

```
{
            "Sid": "Delete",
            "Effect": "Allow",
            "Action": [
                "s3:DeleteObjectVersion",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:secretsmanager:region:account-ID:secret:aws/transfer/*"
        }
```

## Benannte Variablen für Workflows
<a name="workflow-named-variables"></a>

Für Schritte zum Kopieren und Entschlüsseln können Sie eine Variable verwenden, um Aktionen dynamisch auszuführen. AWS Transfer Family Unterstützt derzeit die folgenden benannten Variablen.
+ Wird verwendet`${transfer:UserName}`, um Dateien an ein Ziel zu kopieren oder zu entschlüsseln, das auf dem Benutzer basiert, der die Dateien hochlädt.
+ Wird verwendet`${transfer:UploadDate}`, um Dateien auf der Grundlage des aktuellen Datums an einen Zielort zu kopieren oder zu entschlüsseln.

## Beispiel für einen Workflow zum Markieren und Löschen
<a name="sourcefile-workflow"></a>

Das folgende Beispiel zeigt einen Workflow, der eingehende Dateien kennzeichnet, die von einer nachgelagerten Anwendung, z. B. einer Datenanalyseplattform, verarbeitet werden müssen. Nach dem Markieren der eingehenden Datei löscht der Workflow dann die ursprünglich hochgeladene Datei, um Speicherkosten zu sparen.

------
#### [ Console ]

**Beispiel für einen Workflow zum Markieren und Verschieben**

1. Öffnen Sie die AWS Transfer Family Konsole unter [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Wählen Sie im linken Navigationsbereich **Workflows** aus.

1. Wählen Sie auf der Seite **Workflows** die Option **Workflow erstellen** aus.

1. Geben Sie auf der Seite **Workflow erstellen** eine Beschreibung ein. Diese Beschreibung wird auf der Seite **Workflows** angezeigt.

1. Fügen Sie den ersten Schritt hinzu (Kopie).

   1. Wählen Sie im Abschnitt **Nominale Schritte** die Option **Schritt hinzufügen** aus.

   1. Wählen Sie „**Datei kopieren**“ und anschließend „**Weiter**“.

   1. Geben Sie einen Schrittnamen ein und wählen Sie dann einen Ziel-Bucket und ein key prefix aus.  
![\[Workflow-Bildschirm mit den Details für einen Kopierschritt, mit Ziel-Bucket und key prefix.\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/workflows-step-copy-first-step.png)

   1. Wählen Sie **Weiter** und überprüfen Sie dann die Details für den Schritt. 

   1. Wählen Sie **Schritt erstellen**, um den Schritt hinzuzufügen und fortzufahren.

1. Fügen Sie den zweiten Schritt (Tag) hinzu.

   1. Wählen Sie im Abschnitt **Nominale Schritte** die Option **Schritt hinzufügen** aus.

   1. Wählen Sie „**Datei taggen**“ und anschließend „**Weiter**“.

   1. Geben Sie einen Schrittnamen ein.

   1. Wählen Sie für **Dateispeicherort** **die Option Datei kennzeichnen, die im vorherigen Schritt erstellt wurde**.

   1. Geben Sie einen **Schlüssel** und einen **Wert** ein.  
![\[Der Konfigurationsbildschirm für einen Tagging-Workflow-Schritt, bei dem das Optionsfeld Datei kennzeichnen, die aus dem vorherigen Schritt erstellt wurde, ausgewählt ist.\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/workflows-step-tag.png)

   1. Wählen Sie **Weiter** und überprüfen Sie dann die Details für den Schritt. 

   1. Wählen Sie **Schritt erstellen**, um den Schritt hinzuzufügen und fortzufahren.

1. Fügen Sie den dritten Schritt hinzu (Löschen).

   1. Wählen Sie im Abschnitt **Nominale Schritte** die Option **Schritt hinzufügen** aus.

   1. Wählen Sie „**Datei löschen**“ und anschließend „**Weiter**“.  
![\[Der Konfigurationsbildschirm für einen Workflow-Schritt zum Löschen, bei dem das Optionsfeld Ursprüngliche Quelldatei löschen ausgewählt ist.\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/workflows-step-delete.png)

   1. Geben Sie einen Schrittnamen ein.

   1. Wählen Sie **unter Dateispeicherort** **die Option Ursprüngliche Quelldatei löschen** aus.

   1. Wählen Sie **Weiter** und überprüfen Sie dann die Details für den Schritt. 

   1. Wählen Sie **Schritt erstellen**, um den Schritt hinzuzufügen und fortzufahren.

1. Überprüfen Sie die Workflow-Konfiguration und wählen Sie dann **Workflow erstellen** aus. 

------
#### [ CLI ]

**Beispiel für einen Workflow zum Markieren und Verschieben**

1. Speichern Sie den folgenden Code in einer Datei, `tagAndMoveWorkflow.json` z. B. Ersetzen Sie jeden `user input placeholder` durch Ihre Informationen. 

   ```
   [
      {
          "Type": "COPY",
          "CopyStepDetails": {
             "Name": "CopyStep",
             "DestinationFileLocation": {
                "S3FileLocation": {
                   "Bucket": "amzn-s3-demo-bucket",
                   "Key": "test/"
                }
             }
          }
      },
      {
          "Type": "TAG",
          "TagStepDetails": {
             "Name": "TagStep",
             "Tags": [
                {
                   "Key": "name",
                   "Value": "demo"
                }
             ],
             "SourceFileLocation": "${previous.file}"
          }
      },
      {
         "Type": "DELETE",
         "DeleteStepDetails":{
            "Name":"DeleteStep",
            "SourceFileLocation": "${original.file}"
         }
     }
   ]
   ```

   Im ersten Schritt wird die hochgeladene Datei an einen neuen Amazon S3 S3-Speicherort kopiert. Im zweiten Schritt wird der Datei (), die an den neuen Speicherort kopiert wurde, ein Tag (Schlüssel-Wert-Paar`previous.file`) hinzugefügt. Und schließlich löscht der dritte Schritt die Originaldatei (). `original.file`

1. Erstellen Sie einen Workflow aus der gespeicherten Datei. Ersetzen Sie jeden `user input placeholder` durch Ihre Informationen.

   ```
   aws transfer create-workflow --description "short-description" --steps file://path-to-file --region region-ID
   ```

   Beispiel: 

   ```
   aws transfer create-workflow --description "copy-tag-delete workflow" --steps file://tagAndMoveWorkflow.json --region us-east-1
   ```
**Anmerkung**  
Weitere Informationen zur Verwendung von Dateien zum Laden von Parametern finden Sie unter [So laden Sie Parameter aus einer Datei](https://docs.aws.amazon.com//cli/latest/userguide/cli-usage-parameters-file.html).

1. Aktualisieren Sie einen vorhandenen Server.
**Anmerkung**  
In diesem Schritt wird davon ausgegangen, dass Sie bereits über einen Transfer Family Family-Server verfügen und diesem einen Workflow zuordnen möchten. Falls nicht, siehe [Konfiguration eines SFTP-, FTPS- oder FTP-Serverendpunkts](tf-server-endpoint.md). Ersetzen Sie jeden `user input placeholder` durch Ihre Informationen.

   ```
   aws transfer update-server --server-id server-ID --region region-ID 
     --workflow-details '{"OnUpload":[{ "WorkflowId": "workflow-ID","ExecutionRole": "execution-role-ARN"}]}'
   ```

   Beispiel:

   ```
   aws transfer update-server --server-id s-1234567890abcdef0 --region us-east-2 
     --workflow-details '{"OnUpload":[{ "WorkflowId": "w-abcdef01234567890","ExecutionRole": "arn:aws:iam::111111111111:role/nikki-wolf-execution-role"}]}'
   ```

------

# Verwenden Sie benutzerdefinierte Schritte zur Dateiverarbeitung
<a name="custom-step-details"></a>

Mithilfe eines benutzerdefinierten Dateiverarbeitungsschritts können Sie Ihre eigene Dateiverarbeitungslogik verwenden. AWS Lambda Beim Eintreffen einer Datei ruft ein Transfer Family Family-Server eine Lambda-Funktion auf, die benutzerdefinierte Dateiverarbeitungslogik enthält, z. B. das Verschlüsseln von Dateien, das Scannen nach Malware oder das Überprüfen auf falsche Dateitypen. Im folgenden Beispiel wird die AWS Lambda Zielfunktion verwendet, um die Ausgabedatei aus dem vorherigen Schritt zu verarbeiten.

![\[Der Bildschirm für benutzerdefinierte Schritte, bei dem das Optionsfeld Benutzerdefinierte Verarbeitung auf die aus dem vorherigen Schritt erstellte Datei anwenden ausgewählt ist und im Feld Ziel eine Lambda-Funktion angezeigt wird.\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/workflows-step-custom.png)


**Anmerkung**  
Eine Beispielfunktion für Lambda finden Sie unter [Beispiel für eine Lambda-Funktion für einen benutzerdefinierten Workflow-Schritt](#example-workflow-lambda). Beispiele für Ereignisse (einschließlich des Speicherorts für Dateien, die an das Lambda übergeben wurden) finden Sie unter[Beispiele für Ereignisse, an die AWS Lambda beim Hochladen einer Datei gesendet werden](#example-workflow-lambdas).

Bei einem benutzerdefinierten Workflow-Schritt müssen Sie die Lambda-Funktion so konfigurieren, dass sie den [SendWorkflowStepState](https://docs.aws.amazon.com/transfer/latest/APIReference/API_SendWorkflowStepState.html)API-Vorgang aufruft. `SendWorkflowStepState`benachrichtigt die Workflow-Ausführung darüber, dass der Schritt entweder mit einem Erfolgs- oder einem Fehlerstatus abgeschlossen wurde. Der Status der `SendWorkflowStepState` API-Operation ruft einen Exception-Handler-Schritt oder einen nominalen Schritt in der linearen Sequenz auf, basierend auf dem Ergebnis der Lambda-Funktion. 

Wenn die Lambda-Funktion ausfällt oder das Zeitlimit überschritten wird, schlägt der Schritt fehl, und das sehen Sie `StepErrored` in Ihren CloudWatch Protokollen. Wenn die Lambda-Funktion Teil des nominalen Schritts ist und die Funktion `SendWorkflowStepState` mit einem Timeout `Status="FAILURE"` oder einem Timeout reagiert, wird der Ablauf mit den Exception-Handler-Schritten fortgesetzt. In diesem Fall setzt der Workflow die Ausführung der verbleibenden (falls vorhanden) nominalen Schritte nicht fort. Weitere Details finden Sie unter [Ausnahmebehandlung für einen Workflow](transfer-workflows.md#exception-workflow).

Wenn Sie den `SendWorkflowStepState` API-Vorgang aufrufen, müssen Sie die folgenden Parameter senden:

```
{
    "ExecutionId": "string",
    "Status": "string",
    "Token": "string",
    "WorkflowId": "string"
}
```

Sie können das `ExecutionId``Token`, und `WorkflowId` aus dem Eingabeereignis extrahieren, das bei der Ausführung der Lambda-Funktion übergeben wird (Beispiele werden in den folgenden Abschnitten gezeigt). Der `Status` Wert kann entweder oder `SUCCESS` sein. `FAILURE` 

Um den `SendWorkflowStepState` API-Vorgang von Ihrer Lambda-Funktion aus aufrufen zu können, müssen Sie eine Version des AWS SDK verwenden, die nach der [Einführung von Managed Workflows](doc-history.md#workflows-introduced) veröffentlicht wurde.

## Mehrere Lambda-Funktionen nacheinander verwenden
<a name="multiple-lambdas"></a>

Wenn Sie mehrere benutzerdefinierte Schritte nacheinander verwenden, funktioniert die Option **Dateispeicherort** anders als wenn Sie nur einen einzigen benutzerdefinierten Schritt verwenden. Transfer Family unterstützt nicht die Rückgabe der mit Lambda verarbeiteten Datei, um sie als Eingabe für den nächsten Schritt zu verwenden. Wenn Sie also mehrere benutzerdefinierte Schritte haben, die alle für die Verwendung dieser `previous.file` Option konfiguriert sind, verwenden sie alle denselben Dateispeicherort (den Speicherort der Eingabedatei für den ersten benutzerdefinierten Schritt).

**Anmerkung**  
Die `previous.file` Einstellung funktioniert auch anders, wenn Sie nach einem benutzerdefinierten Schritt einen vordefinierten Schritt (kennzeichnen, kopieren, entschlüsseln oder löschen) haben. Wenn der vordefinierte Schritt so konfiguriert ist, dass er die `previous.file` Einstellung verwendet, verwendet der vordefinierte Schritt dieselbe Eingabedatei wie der benutzerdefinierte Schritt. Die verarbeitete Datei aus dem benutzerdefinierten Schritt wird nicht an den vordefinierten Schritt übergeben. 

## Zugreifen auf eine Datei nach der benutzerdefinierten Verarbeitung
<a name="process-uploaded-file"></a>

Wenn Sie Amazon S3 als Speicher verwenden und Ihr Workflow einen benutzerdefinierten Schritt umfasst, der Aktionen an der ursprünglich hochgeladenen Datei ausführt, können nachfolgende Schritte nicht auf diese verarbeitete Datei zugreifen. Das heißt, jeder Schritt nach dem benutzerdefinierten Schritt kann nicht auf die aktualisierte Datei aus der Ausgabe des benutzerdefinierten Schritts verweisen. 

Nehmen wir zum Beispiel an, dass Sie die folgenden drei Schritte in Ihrem Workflow haben. 
+ **Schritt 1** — Laden Sie eine Datei mit dem Namen hoch`example-file.txt`.
+ **Schritt 2** — Rufen Sie eine Lambda-Funktion auf, die sich `example-file.txt` in irgendeiner Weise ändert.
+ **Schritt 3** — Versuchen Sie, die aktualisierte Version von weiter zu verarbeiten. `example-file.txt`

Wenn Sie das `sourceFileLocation` für Schritt 3 so konfigurieren`${original.file}`, verwendet Schritt 3 den ursprünglichen Speicherort der Datei aus dem Zeitpunkt, zu dem der Server die Datei in Schritt 1 in den Speicher hochgeladen hat. Wenn Sie `${previous.file}` für Schritt 3 verwenden, wird in Schritt 3 der Speicherort wiederverwendet, den Schritt 2 als Eingabe verwendet hat.

Daher verursacht Schritt 3 einen Fehler. Wenn in Schritt 3 beispielsweise versucht wird, das Update zu kopieren`example-file.txt`, wird die folgende Fehlermeldung angezeigt:

```
{
    "type": "StepErrored",
    "details": {
        "errorType": "NOT_FOUND",
        "errorMessage": "ETag constraint not met (Service: null; Status Code: 412; Error Code: null; Request ID: null; S3 Extended Request ID: null; Proxy: null)",
        "stepType": "COPY",
        "stepName": "CopyFile"
    },
```

Dieser Fehler tritt auf, weil der benutzerdefinierte Schritt das Entitäts-Tag (ETag) für `example-file.txt` so ändert, dass es nicht mit der Originaldatei übereinstimmt.

**Anmerkung**  
Dieses Verhalten tritt nicht auf, wenn Sie Amazon EFS verwenden, da Amazon EFS keine Entitäts-Tags zur Identifizierung von Dateien verwendet.

## Beispiele für Ereignisse, an die AWS Lambda beim Hochladen einer Datei gesendet werden
<a name="example-workflow-lambdas"></a>

Die folgenden Beispiele zeigen die Ereignisse, an die gesendet werden, AWS Lambda wenn ein Datei-Upload abgeschlossen ist. Ein Beispiel verwendet einen Transfer Family Family-Server, auf dem die Domain mit Amazon S3 konfiguriert ist. Das andere Beispiel verwendet einen Transfer Family Family-Server, auf dem die Domain Amazon EFS verwendet. 

------
#### [ Custom step that uses an Amazon S3 domain ]

```
{
    "token": "MzI0Nzc4ZDktMGRmMi00MjFhLTgxMjUtYWZmZmRmODNkYjc0",
    "serviceMetadata": {
        "executionDetails": {
            "workflowId": "w-1234567890example",
            "executionId": "abcd1234-aa11-bb22-cc33-abcdef123456"
        },
        "transferDetails": {
            "sessionId": "36688ff5d2deda8c",
            "userName": "myuser",
            "serverId": "s-example1234567890"
        }
    },
    "fileLocation": {
        "domain": "S3",
        "bucket": "amzn-s3-demo-bucket",
        "key": "path/to/mykey",
        "eTag": "d8e8fca2dc0f896fd7cb4cb0031ba249",
        "versionId": null
    }
}
```

------
#### [ Custom step that uses an Amazon EFS domain ]

```
{
    "token": "MTg0N2Y3N2UtNWI5Ny00ZmZlLTk5YTgtZTU3YzViYjllNmZm",
    "serviceMetadata": {
        "executionDetails": {
            "workflowId": "w-1234567890example",
            "executionId": "abcd1234-aa11-bb22-cc33-abcdef123456"
        },
        "transferDetails": {
            "sessionId": "36688ff5d2deda8c",
            "userName": "myuser",
            "serverId": "s-example1234567890"
        }
    },
    "fileLocation": {
        "domain": "EFS",
        "fileSystemId": "fs-1234567",
        "path": "/path/to/myfile"
    }
}
```

------

## Beispiel für eine Lambda-Funktion für einen benutzerdefinierten Workflow-Schritt
<a name="example-workflow-lambda"></a>

Die folgende Lambda-Funktion extrahiert die Informationen zum Ausführungsstatus und ruft dann den [SendWorkflowStepState](https://docs.aws.amazon.com/transfer/latest/APIReference/API_SendWorkflowStepState.html)API-Vorgang auf, um den Status für den Schritt an den Workflow zurückzugeben — `SUCCESS` entweder oder. `FAILURE` Bevor Ihre Funktion den `SendWorkflowStepState` API-Vorgang aufruft, können Sie Lambda so konfigurieren, dass eine Aktion auf der Grundlage Ihrer Workflow-Logik ausgeführt wird. 

```
import json
import boto3

transfer = boto3.client('transfer')

def lambda_handler(event, context):
    print(json.dumps(event))

    # call the SendWorkflowStepState API to notify the workflow about the step's SUCCESS or FAILURE status
    response = transfer.send_workflow_step_state(
        WorkflowId=event['serviceMetadata']['executionDetails']['workflowId'],
        ExecutionId=event['serviceMetadata']['executionDetails']['executionId'],
        Token=event['token'],
        Status='SUCCESS|FAILURE'
    )

    print(json.dumps(response))

    return {
      'statusCode': 200,
      'body': json.dumps(response)
    }
```

## IAM-Berechtigungen für einen benutzerdefinierten Schritt
<a name="custom-step-iam"></a>

Damit ein Schritt, der ein Lambda aufruft, erfolgreich sein kann, stellen Sie sicher, dass die Ausführungsrolle für Ihren Workflow die folgenden Berechtigungen enthält.

```
{
    "Sid": "Custom",
    "Effect": "Allow",
    "Action": [
        "lambda:InvokeFunction"
    ],
    "Resource": [
        "arn:aws:lambda:region:account-id:function:function-name"
    ]
}
```

# IAM-Richtlinien für Workflows
<a name="workflow-execution-role"></a>

Wenn Sie einem Server einen Workflow hinzufügen, müssen Sie eine Ausführungsrolle auswählen. Der Server verwendet diese Rolle, wenn er den Workflow ausführt. Wenn die Rolle nicht über die richtigen Berechtigungen verfügt, AWS Transfer Family kann der Workflow nicht ausgeführt werden. 

In diesem Abschnitt wird ein möglicher Satz von AWS Identity and Access Management (IAM-) Berechtigungen beschrieben, mit denen Sie einen Workflow ausführen können. Weitere Beispiele werden später in diesem Thema beschrieben. 

**Anmerkung**  
Wenn Ihre Amazon S3 S3-Dateien Tags haben, müssen Sie Ihrer IAM-Richtlinie eine oder zwei Berechtigungen hinzufügen.  
`s3:GetObjectTagging`Für eine Amazon S3 S3-Datei hinzufügen, die nicht versioniert ist.
`s3:GetObjectVersionTagging`Für eine Amazon S3 S3-Datei hinzufügen, die versioniert ist.

**Um eine Ausführungsrolle für Ihren Workflow zu erstellen**

1. Erstellen Sie eine neue IAM-Rolle und fügen Sie der Rolle die AWS verwaltete Richtlinie `AWSTransferFullAccess` hinzu. Weitere Informationen zum Erstellen einer neuen IAM-Rolle finden Sie unter. [Erstellen Sie eine IAM-Rolle und -Richtlinie](requirements-roles.md)

1. Erstellen Sie eine weitere Richtlinie mit den folgenden Berechtigungen und fügen Sie sie Ihrer Rolle hinzu. Ersetzen Sie jeden `user input placeholder` durch Ihre Informationen.  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "ConsoleAccess",
               "Effect": "Allow",
               "Action": "s3:GetBucketLocation",
               "Resource": "*"
           },
           {
               "Sid": "ListObjectsInBucket",
               "Effect": "Allow",
               "Action": "s3:ListBucket",
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket"
               ]
           },
           {
               "Sid": "AllObjectActions",
               "Effect": "Allow",
               "Action": "s3:*Object",
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           },
           {
               "Sid": "GetObjectVersion",
               "Effect": "Allow",
               "Action": "s3:GetObjectVersion",
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           },
           {
               "Sid": "Custom",
               "Effect": "Allow",
               "Action": [
                   "lambda:InvokeFunction"
               ],
               "Resource": [
                   "arn:aws:lambda:us-east-1:123456789012:function:function-name"
               ]
           },
           {
               "Sid": "Tag",
               "Effect": "Allow",
               "Action": [
                   "s3:PutObjectTagging",
                   "s3:PutObjectVersionTagging"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           }
       ]
   }
   ```

1. Speichern Sie diese Rolle und geben Sie sie als Ausführungsrolle an, wenn Sie einem Server einen Workflow hinzufügen.
**Anmerkung**  
 AWS empfiehlt, bei der Erstellung von IAM-Rollen den Zugriff auf Ihre Ressourcen so weit wie möglich für Ihren Workflow einzuschränken.

## Vertrauensbeziehungen im Arbeitsablauf
<a name="workflows-trust"></a>

Rollen für die Workflow-Ausführung erfordern auch eine Vertrauensbeziehung mit`transfer.amazonaws.com`. Informationen zum Einrichten einer Vertrauensbeziehung für AWS Transfer Family finden Sie unter[So stellen Sie eine Vertrauensbeziehung her](requirements-roles.md#establish-trust-transfer).

Während Sie Ihr Vertrauensverhältnis aufbauen, können Sie auch Maßnahmen ergreifen, um das Problem des *verwirrten Stellvertreters* zu vermeiden. Eine Beschreibung dieses Problems sowie Beispiele, wie es vermieden werden kann, finden Sie unter[Serviceübergreifende Confused-Deputy-Prävention](confused-deputy.md).

## Beispiel für eine Ausführungsrolle: Entschlüsseln, Kopieren und Markieren
<a name="example-workflow-role-copy-tag"></a>

Wenn Sie Workflows haben, die Schritte zum Markieren, Kopieren und Entschlüsseln beinhalten, können Sie die folgende IAM-Richtlinie verwenden. Ersetzen Sie jeden `user input placeholder` durch Ihre Informationen. 

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CopyRead",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectTagging",
                "s3:GetObjectVersionTagging"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-source-bucket/*"
        },
        {
            "Sid": "CopyWrite",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectTagging"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
        },
        {
            "Sid": "CopyList",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-source-bucket",
                "arn:aws:s3:::amzn-s3-demo-destination-bucket"
            ]
        },
        {
            "Sid": "Tag",
            "Effect": "Allow",
            "Action": [
                "s3:PutObjectTagging",
                "s3:PutObjectVersionTagging"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*",
            "Condition": {
                "StringEquals": {
                    "s3:RequestObjectTag/Archive": "yes"
                }
            }
        },
        {
            "Sid": "ListBucket",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-destination-bucket"
            ]
        },
        {
            "Sid": "HomeDirObjectAccess",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObjectVersion",
                "s3:DeleteObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
        },
        {
            "Sid": "Decrypt",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:aws/transfer/*"
        }
    ]
}
```

## Beispiel für eine Ausführungsrolle: Funktion ausführen und löschen
<a name="example-workflow-role-custom-delete"></a>

In diesem Beispiel haben Sie einen Workflow, der eine AWS Lambda Funktion aufruft. Wenn der Workflow die hochgeladene Datei löscht und über einen Exception-Handler-Schritt verfügt, der auf eine fehlgeschlagene Workflow-Ausführung im vorherigen Schritt reagiert, verwenden Sie die folgende IAM-Richtlinie. Ersetzen Sie jeden `user input placeholder` durch Ihre Informationen. 

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Delete",
            "Effect": "Allow",
            "Action": [
                "s3:DeleteObject",
                "s3:DeleteObjectVersion"
            ],
            "Resource": "arn:aws:s3:::bucket-name"
        },
        {
            "Sid": "Custom",
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:us-east-1:123456789012:function:function-name"
            ]
        }
    ]
}
```

## Ausnahmebehandlung für einen Workflow
<a name="exception-workflow"></a>

Wenn während der Ausführung eines Workflows Fehler auftreten, werden die von Ihnen angegebenen Schritte zur Ausnahmebehandlung ausgeführt. Sie geben die Schritte zur Fehlerbehandlung für einen Workflow auf die gleiche Weise an, wie Sie die nominalen Schritte für den Workflow angeben. Nehmen wir beispielsweise an, Sie haben die benutzerdefinierte Verarbeitung in nominalen Schritten konfiguriert, um eingehende Dateien zu überprüfen. Wenn die Dateiüberprüfung fehlschlägt, kann in einem Schritt zur Ausnahmebehandlung eine E-Mail an den Administrator gesendet werden.

Der folgende Beispiel-Workflow umfasst zwei Schritte: 
+ Ein nominaler Schritt, der überprüft, ob die hochgeladene Datei im CSV-Format vorliegt
+ Ein Schritt zur Ausnahmebehandlung, bei dem eine E-Mail gesendet wird, falls die hochgeladene Datei nicht im CSV-Format vorliegt und der nominelle Schritt fehlschlägt

Um den Schritt zur Ausnahmebehandlung einzuleiten, muss die AWS Lambda Funktion im nominalen Schritt mit antworten. `Status="FAILURE"` Weitere Informationen zur Fehlerbehandlung in Workflows finden Sie unter. [Verwenden Sie benutzerdefinierte Schritte zur Dateiverarbeitung](custom-step-details.md)

![\[\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/workflow-exception-sample.png)


# Überwachen Sie die Workflow-Ausführung
<a name="cloudwatch-workflow"></a>

Amazon CloudWatch überwacht Ihre AWS Ressourcen und die Anwendungen, die Sie ausführen, AWS Cloud in Echtzeit. Sie können Amazon verwenden, CloudWatch um Metriken zu sammeln und zu verfolgen. Dabei handelt es sich um Variablen, die Sie für Ihre Workflows messen können. Sie können Workflow-Metriken und konsolidierte Protokolle mithilfe von Amazon anzeigen CloudWatch.

## CloudWatch Protokollierung für einen Workflow
<a name="cloudwatch-workflow-logs"></a>

CloudWatch bietet eine konsolidierte Prüfung und Protokollierung des Fortschritts und der Ergebnisse von Workflows.

**CloudWatch Amazon-Protokolle für Workflows anzeigen**

1. Öffnen Sie die CloudWatch Amazon-Konsole unter [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Wählen Sie im linken Navigationsbereich **Logs** und anschließend **Log-Gruppen** aus.

1. Wählen Sie auf der Seite **Protokollgruppen** in der Navigationsleiste die richtige Region für Ihren AWS Transfer Family Server aus.

1. Wählen Sie die Protokollgruppe aus, die Ihrem Server entspricht.

   Wenn Ihre Server-ID beispielsweise lautet`s-1234567890abcdef0`, ist Ihre Protokollgruppe`/aws/transfer/s-1234567890abcdef0`.

1. Auf der Seite mit den Protokollgruppendetails für Ihren Server werden die neuesten Protokollstreams angezeigt. Es gibt zwei Protokollstreams für den Benutzer, den Sie untersuchen: 
   + Einer für jede Secure Shell (SSH) File Transfer Protocol (SFTP) -Sitzung.
   + Eine für den Workflow, der für Ihren Server ausgeführt wird. Das Format für den Protokollstream für den Workflow ist`username.workflowID.uniqueStreamSuffix`.

   Wenn Ihr Benutzer beispielsweise ist`mary-major`, haben Sie die folgenden Protokollstreams:

   ```
   mary-major-east.1234567890abcdef0
   mary.w-abcdef01234567890.021345abcdef6789
   ```
**Anmerkung**  
 Die in diesem Beispiel aufgeführten 16-stelligen alphanumerischen Identifikatoren sind fiktiv. Die Werte, die Sie bei Amazon sehen, CloudWatch sind unterschiedlich. 

Auf der Seite **Ereignisse protokollieren** für `mary-major-usa-east.1234567890abcdef0` werden die Details für jede Benutzersitzung angezeigt, und der `mary.w-abcdef01234567890.021345abcdef6789` Protokollstream enthält die Details für den Workflow. 

 Im Folgenden finden Sie ein Beispiel für einen Protokollstream für`mary.w-abcdef01234567890.021345abcdef6789`, der auf einem Workflow (`w-abcdef01234567890`) basiert, der einen Kopierschritt enthält. 

```
{
    "type": "ExecutionStarted",
    "details": {
        "input": {
            "initialFileLocation": {
                "bucket": "amzn-s3-demo-bucket",
                "key": "mary/workflowSteps2.json",
                "versionId": "version-id",
                "etag": "etag-id"
            }
        }
    },
    "workflowId":"w-abcdef01234567890",
    "executionId":"execution-id",
    "transferDetails": {
        "serverId":"s-server-id",
        "username":"mary",
        "sessionId":"session-id"
    }
},
{
    "type":"StepStarted",
    "details": {
        "input": {
            "fileLocation": {
                "backingStore":"S3",
                "bucket":"amzn-s3-demo-bucket",
                "key":"mary/workflowSteps2.json",
                "versionId":"version-id",
                "etag":"etag-id"
            }
        },
        "stepType":"COPY",
        "stepName":"copyToShared"
    },
    "workflowId":"w-abcdef01234567890",
    "executionId":"execution-id",
    "transferDetails": {
        "serverId":"s-server-id",
        "username":"mary",
        "sessionId":"session-id"
    }
},
{
    "type":"StepCompleted",
    "details":{
        "output":{},
        "stepType":"COPY",
        "stepName":"copyToShared"
    },
    "workflowId":"w-abcdef01234567890",
    "executionId":"execution-id",
    "transferDetails":{
        "serverId":"server-id",
        "username":"mary",
        "sessionId":"session-id"
    }
},
{
    "type":"ExecutionCompleted",
    "details": {},
    "workflowId":"w-abcdef01234567890",
    "executionId":"execution-id",
    "transferDetails":{
        "serverId":"s-server-id",
        "username":"mary",
        "sessionId":"session-id"
    }
}
```

## CloudWatch Metriken für Workflows
<a name="cloudwatch-workflows-metrics"></a>

AWS Transfer Family bietet mehrere Metriken für Workflows. Sie können Messwerte darüber anzeigen, wie viele Workflow-Ausführungen in der letzten Minute gestartet, erfolgreich abgeschlossen und fehlgeschlagen sind. Alle CloudWatch Metriken für Transfer Family werden unter beschrieben[Verwenden von CloudWatch Metriken für Transfer Family Family-Server](metrics.md).

# Erstellen Sie einen Workflow aus einer Vorlage
<a name="workflow-template"></a>

Sie können einen CloudFormation Stapel bereitstellen, der aus einer Vorlage einen Workflow und einen Server erstellt. Dieses Verfahren enthält ein Beispiel, mit dem Sie schnell einen Workflow bereitstellen können.

**Um einen CloudFormation Stack zu erstellen, der einen AWS Transfer Family Workflow und einen Server erstellt**

1. Öffnen Sie die CloudFormation Konsole unter [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Speichern Sie den folgenden Code in einer Datei.

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

   ```
   AWSTemplateFormatVersion: 2010-09-09
   Resources:
     SFTPServer:
       Type: 'AWS::Transfer::Server'
       Properties:
         WorkflowDetails:
           OnUpload:
             - ExecutionRole: workflow-execution-role-arn
               WorkflowId: !GetAtt
                 - TransferWorkflow
                 - WorkflowId
     TransferWorkflow:
       Type: AWS::Transfer::Workflow
       Properties:
         Description: Transfer Family Workflows Blog
         Steps:
           - Type: COPY
             CopyStepDetails:
               Name: copyToUserKey
               DestinationFileLocation:
                 S3FileLocation:
                   Bucket: archived-records
                   Key: ${transfer:UserName}/
               OverwriteExisting: 'TRUE'
           - Type: TAG
             TagStepDetails:
               Name: tagFileForArchive
               Tags:
                 - Key: Archive
                   Value: yes
           - Type: CUSTOM
             CustomStepDetails:
               Name: transferExtract
               Target: arn:aws:lambda:region:account-id:function:function-name
               TimeoutSeconds: 60
           - Type: DELETE
             DeleteStepDetails:
               Name: DeleteInputFile
               SourceFileLocation: '${original.file}'
         Tags:
           - Key: Name
             Value: TransferFamilyWorkflows
   ```

------
#### [ JSON ]

   ```
   {
       "AWSTemplateFormatVersion": "2010-09-09",
       "Resources": {
           "SFTPServer": {
               "Type": "AWS::Transfer::Server",
               "Properties": {
                   "WorkflowDetails": {
                       "OnUpload": [
                           {
                               "ExecutionRole": "workflow-execution-role-arn",
                               "WorkflowId": {
                                   "Fn::GetAtt": [
                                       "TransferWorkflow",
                                       "WorkflowId"
                                   ]
                               }
                           }
                       ]
                   }
               }
           },
           "TransferWorkflow": {
               "Type": "AWS::Transfer::Workflow",
               "Properties": {
                   "Description": "Transfer Family Workflows Blog",
                   "Steps": [
                       {
                           "Type": "COPY",
                           "CopyStepDetails": {
                               "Name": "copyToUserKey",
                               "DestinationFileLocation": {
                                   "S3FileLocation": {
                                       "Bucket": "archived-records",
                                       "Key": "${transfer:UserName}/"
                                   }
                               },
                               "OverwriteExisting": "TRUE"
                           }
                       },
                       {
                           "Type": "TAG",
                           "TagStepDetails": {
                               "Name": "tagFileForArchive",
                               "Tags": [
                                   {
                                       "Key": "Archive",
                                       "Value": "yes"
                                   }
                               ]
                           }
                       },
                       {
                           "Type": "CUSTOM",
                           "CustomStepDetails": {
                               "Name": "transferExtract",
                               "Target": "arn:aws:lambda:region:account-id:function:function-name",
                               "TimeoutSeconds": 60
                           }
                       },
                       {
                           "Type": "DELETE",
                           "DeleteStepDetails": {
                               "Name": "DeleteInputFile",
                               "SourceFileLocation": "${original.file}"
                           }
                       }
                   ],
                   "Tags": [
                       {
                           "Key": "Name",
                           "Value": "TransferFamilyWorkflows"
                       }
                   ]
               }
           }
       }
   }
   ```

------

1. Ersetzen Sie die folgenden Elemente durch Ihre tatsächlichen Werte.
   + Ersetzen Sie *`workflow-execution-role-arn`* mit dem ARN für eine tatsächliche Workflow-Ausführungsrolle. Beispiel: `arn:aws:transfer:us-east-2:111122223333:workflow/w-1234567890abcdef0`
   + `arn:aws:lambda:region:account-id:function:function-name`Ersetzen Sie es durch den ARN für Ihre Lambda-Funktion. Beispiel, `arn:aws:lambda:us-east-2:123456789012:function:example-lambda-idp`.

1. Folgen Sie den Anweisungen zum Bereitstellen eines CloudFormation Stacks anhand einer vorhandenen Vorlage unter [Auswahl einer Stack-Vorlage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-console-create-stack-template.html) im *AWS CloudFormation Benutzerhandbuch*.

Nachdem der Stack bereitgestellt wurde, können Sie Details dazu auf der Registerkarte **Ausgaben** in der CloudFormation Konsole einsehen. Die Vorlage erstellt einen neuen AWS Transfer Family SFTP-Server, der vom Service verwaltete Benutzer verwendet, und einen neuen Workflow und ordnet den Workflow dem neuen Server zu.

## Einen Workflow von einem Transfer Family Family-Server entfernen
<a name="remove-workflow-association"></a>

Wenn Sie einem Transfer Family Family-Server einen Workflow zugeordnet haben und diese Zuordnung nun entfernen möchten, können Sie dies mithilfe der Konsole oder programmgesteuert tun.

------
#### [ Console ]

**So entfernen Sie einen Workflow von einem Transfer Family Family-Server**

1. Öffnen Sie die AWS Transfer Family Konsole unter [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Wählen Sie im linken Navigationsbereich **Server** aus.

1. Wählen Sie den Bezeichner für den Server in der Spalte **Server-ID** aus.

1. Scrollen Sie auf der Detailseite für den Server nach unten zum Abschnitt **Zusätzliche Details** und wählen Sie dann **Bearbeiten** aus. 

1. Löschen Sie auf der Seite **Zusätzliche Details bearbeiten** im Abschnitt **Verwaltete Workflows** die Informationen für alle Einstellungen:
   + Wählen Sie den Bindestrich (-) aus der Liste der Workflows für den **Workflow für vollständige Datei-Uploads** aus.
   + Falls nicht bereits deaktiviert, wählen Sie den Bindestrich (-) aus der Liste der Workflows für den **Workflow für unvollständige Datei-Uploads** aus.
   +  Wählen Sie den Bindestrich (-) aus der Rollenliste für die **Ausführungsrolle Verwaltete Workflows** aus.

   Wenn Sie den Gedankenstrich nicht sehen, scrollen Sie nach oben, bis Sie ihn sehen, da er der erste Wert in jedem Menü ist.

   Der Bildschirm sollte wie folgt aussehen.  
![\[Der Bereich Verwaltete Workflows, in dem alle gelöschten Parameter angezeigt werden.\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/workflows-remove-from-server.png)

1. Scrollen Sie nach unten und wählen Sie **Speichern**, um Ihre Änderungen zu speichern.

------
#### [ CLI ]

Sie verwenden den Aufruf `update-server` (oder `UpdateServer` für API) und geben leere Argumente für die `OnPartialUpload` Parameter `OnUpload` und an.

Führen Sie von der AWS CLI aus den folgenden Befehl aus:

```
aws transfer update-server --server-id your-server-id --workflow-details '{"OnPartialUpload":[],"OnUpload":[]}'
```

`your-server-id`Ersetzen Sie es durch die ID für Ihren Server. Wenn Ihre Server-ID beispielsweise`s-01234567890abcdef`, lautet der Befehl wie folgt:

```
aws transfer update-server --server-id s-01234567890abcdef --workflow-details '{"OnPartialUpload":[],"OnUpload":[]}'
```

------

## Einschränkungen und Einschränkungen verwalteter Workflows
<a name="limitations-workflow"></a>

**Einschränkungen**

Die folgenden Einschränkungen gelten derzeit für Workflows zur Verarbeitung nach dem Upload für AWS Transfer Family. 
+ Konto- und regionsübergreifende AWS Lambda Funktionen werden nicht unterstützt. Sie können jedoch kontenübergreifend kopieren, sofern Ihre AWS Identity and Access Management (IAM-) Richtlinien korrekt konfiguriert sind.
+ Für alle Workflow-Schritte müssen sich alle Amazon S3 S3-Buckets, auf die der Workflow zugreift, in derselben Region wie der Workflow selbst befinden.
+ Für einen Entschlüsselungsschritt muss das Entschlüsselungsziel mit der Quelle für Region und Backing-Store übereinstimmen (wenn die zu entschlüsselnde Datei beispielsweise in Amazon S3 gespeichert ist, muss sich das angegebene Ziel auch in Amazon S3 befinden).
+ Nur asynchrone benutzerdefinierte Schritte werden unterstützt.
+ Die Timeouts für benutzerdefinierte Schritte sind ungefähre Angaben. Das heißt, das Timeout kann etwas länger dauern als angegeben. Darüber hinaus ist der Workflow von der Lambda-Funktion abhängig. Wenn die Funktion während der Ausführung verzögert wird, ist sich der Workflow der Verzögerung daher nicht bewusst.
+ Wenn Sie Ihr Drosselungslimit überschreiten, fügt Transfer Family der Warteschlange keine Workflow-Operationen hinzu.
+ Workflows werden für Dateien mit einer Größe von 0 nicht initiiert. Dateien mit einer Größe von mehr als 0 initiieren den zugehörigen Workflow.
+ Sie können einen Dateiverarbeitungs-Workflow an einen Transfer Family Family-Server anhängen, der das AS2 Protokoll verwendet. AS2 Nachrichten führen jedoch keine Workflows aus, die an den Server angehängt sind. 

**Einschränkungen**

 Darüber hinaus gelten die folgenden Funktionseinschränkungen für Workflows für Transfer Family: 
+ Die Anzahl der Workflows pro Region und Konto ist auf 10 begrenzt.
+ Das maximale Timeout für benutzerdefinierte Schritte beträgt 30 Minuten.
+ Die maximale Anzahl von Schritten in einem Workflow beträgt 8.
+ Die maximale Anzahl von Tags pro Workflow beträgt 50.
+ Die maximale Anzahl gleichzeitiger Ausführungen, die einen Entschlüsselungsschritt enthalten, beträgt 250 pro Workflow.
+ Sie können maximal 3 private PGP-Schlüssel pro Transfer Family Family-Server pro Benutzer speichern.
+ Die maximale Größe für eine entschlüsselte Datei beträgt 10 GB.
+ Wir drosseln die neue Ausführungsrate mithilfe eines [Token-Bucket-Systems](https://en.wikipedia.org/wiki/Token_bucket) mit einer Burst-Kapazität von 100 und einer Nachfüllrate von 1.
+ Jedes Mal, wenn Sie einen Workflow von einem Server entfernen und ihn durch einen neuen ersetzen oder die Serverkonfiguration aktualisieren (was sich auf die Ausführungsrolle eines Workflows auswirkt), müssen Sie etwa 10 Minuten warten, bevor Sie den neuen Workflow ausführen. Der Transfer Family Family-Server speichert die Workflow-Details im Cache, und es dauert 10 Minuten, bis der Server seinen Cache aktualisiert hat.

  Darüber hinaus müssen Sie sich von allen aktiven SFTP-Sitzungen abmelden und sich nach Ablauf der 10-minütigen Wartezeit wieder anmelden, um die Änderungen zu sehen.