Verwenden Sie vordefinierte Schritte - AWS Transfer Family

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.

Verwenden Sie vordefinierte Schritte

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 Schritte zur Dateiverarbeitung hinzufügen. Weitere Informationen finden Sie unter Verwenden Sie benutzerdefinierte Schritte zur Dateiverarbeitung.

Datei kopieren

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 im file-test Ziel-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.

Der Konfigurationsbildschirm „Schritt kopieren“ für einen Workflow, bei dem das Optionsfeld Die im vorherigen Schritt erstellte Datei an einen neuen Speicherort kopieren aktiviert ist.

Geben Sie den Bucket und die wichtigsten Details an

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 lautettest/, 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

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 file-test2/richard-roe/processed/ Ordner kopiert. Wenn der Benutzer eine Datei mary-major hochlädt, wird sie in den file-test2/mary-major/processed/ Ordner kopiert.

Der Bildschirm „Parameter konfigurieren“ für einen Kopierschritt, in dem der Ziel-Bucket-Name und das Zielschlüsselpräfix angezeigt werden. Das key prefix wird mithilfe des Parameters parametrisiert. UserName

Ebenso können Sie es ${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 file-test2/2022-02-01/processed/ Ordner kopiert.

Der Bildschirm „Parameter konfigurieren“ für einen Kopierschritt, in dem der Ziel-Bucket-Name und das Zielschlüsselpräfix angezeigt werden. Das key prefix wird mithilfe des Parameters parametrisiert. UploadDate

Sie können diese beiden Variablen auch zusammen verwenden und so ihre Funktionalität kombinieren. Beispielsweise:

  • Sie könnten das Zielschlüsselpräfix auf festlegenfolder/${transfer:UserName}/${transfer:UploadDate}/, wodurch beispielsweise folder/marymajor/2023-01-05/ verschachtelte Ordner erstellt würden.

  • Sie könnten das Zielschlüsselpräfix auf setzenfolder/${transfer:UserName}-${transfer:UploadDate}/, um beispielsweise die beiden Variablen zu verketten. folder/marymajor-2023-01-05/

IAM-Berechtigungen für den Kopierschritt

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:::destination-bucket-name" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::destination-bucket-name/*" }
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:GetObjectTaggingFür eine Amazon S3 S3-Datei hinzufügen, die nicht versioniert ist.

  • s3:GetObjectVersionTaggingFür eine Amazon S3 S3-Datei hinzufügen, die versioniert ist.

Datei entschlüsseln

Der AWS Speicher-Blog enthält einen Beitrag, in dem beschrieben wird, wie Dateien ver- und entschlüsselt werden, Dateien mit PGP verschlüsseln und entschlüsseln und. AWS Transfer Family

Verwenden Sie die PGP-Entschlüsselung in Ihrem Workflow

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 Einrichten eines verwalteten Workflows zum Entschlüsseln einer Datei.

Um die PGP-Entschlüsselung in Ihrem Workflow zu verwenden
  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.

  2. Speichern Sie Ihren PGP-Schlüssel AWS Secrets Manager unter dem erforderlichen geheimen Namen. Details hierzu finden Sie unter PGP-Schlüssel verwalten. 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 Preisen erhalten Sie unter AWS Secrets Manager -Preise.

  3. Verschlüsseln Sie eine Datei mit Ihrem PGP-Schlüsselpaar. (Eine Liste der unterstützten Clients finden Sie unterUnterstützte PGP-Clients.) 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.txtErsetzen Sie es durch den Namen der Datei, die Sie verschlüsseln möchten.

    gpg -e -r username@example.com testfile.txt
  4. Laden Sie die verschlüsselte Datei auf Ihren Transfer Family Family-Server hoch.

  5. Konfigurieren Sie einen Entschlüsselungsschritt in Ihrem Workflow. Weitere Informationen finden Sie unter Fügen Sie einen Entschlüsselungsschritt hinzu.

Fügen Sie einen Entschlüsselungsschritt hinzu

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

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. Mithilfe von 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 ${transfer:UserName} als Zielschlüsselpräfix ein. Um das Zielschlüsselpräfix anhand des Upload-Datums zu parametrisieren, geben ${Transfer:UploadDate} 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.

Schritt „IAM-Berechtigungen für die Entschlüsselung“

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:::destination-bucket-name" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::destination-bucket-name/*" }, { "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:GetObjectTaggingFür eine Amazon S3 S3-Datei hinzufügen, die nicht versioniert ist.

  • s3:GetObjectVersionTaggingFür eine Amazon S3 S3-Datei hinzufügen, die versioniert ist.

Datei kennzeichnen

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.

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:::DOC-EXAMPLE-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:GetObjectTaggingFür eine Amazon S3 S3-Datei hinzufügen, die nicht versioniert ist.

  • s3:GetObjectVersionTaggingFür eine Amazon S3 S3-Datei hinzufügen, die versioniert ist.

Datei löschen

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“.

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

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

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 Arbeitsablauf zum Markieren und Verschieben
  1. Öffnen Sie die AWS Transfer Family Konsole unter https://console.aws.amazon.com/transfer/.

  2. Wählen Sie im linken Navigationsbereich Workflows aus.

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

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

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

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

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

    3. Geben Sie einen Schrittnamen ein und wählen Sie dann einen Ziel-Bucket und ein key prefix aus.

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

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

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

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

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

    3. Geben Sie einen Schrittnamen ein.

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

    5. Geben Sie einen Schlüssel und einen Wert ein.

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

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

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

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

    2. Wählen Sie „Datei löschen“ und anschließend „Weiter“.

    3. Geben Sie einen Schrittnamen ein.

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

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

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

  8. Ü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": "DOC-EXAMPLE-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-Paarprevious.file) hinzugefügt. Und schließlich löscht der dritte Schritt die Originaldatei (). original.file

  2. 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

    Beispielsweise:

    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.

  3. 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. 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"}]}'

    Beispielsweise:

    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"}]}'