

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# AWS Transfer Family flux de travail gérés
<a name="transfer-workflows"></a>

 AWS Transfer Family prend en charge les flux de travail gérés pour le traitement des fichiers. Avec les flux de travail gérés, vous pouvez démarrer un flux de travail après le transfert d'un fichier via SFTP, FTPS ou FTP. Grâce à cette fonctionnalité, vous pouvez répondre de manière sûre et rentable à vos exigences de conformité pour les échanges de fichiers business-to-business (B2B) en coordonnant toutes les étapes nécessaires au traitement des fichiers. En outre, vous bénéficiez de l' end-to-endaudit et de la visibilité.

![\[Organigramme montrant comment les flux de travail gérés facilitent le traitement des fichiers.\]](http://docs.aws.amazon.com/fr_fr/transfer/latest/userguide/images/workflows-diagram.png)


En orchestrant les tâches de traitement de fichiers, les flux de travail gérés vous aident à prétraiter les données avant qu'elles ne soient consommées par vos applications en aval. Ces tâches de traitement de fichiers peuvent inclure :
+ Déplacement de fichiers vers des dossiers spécifiques à l'utilisateur
+ Décryptage de fichiers dans le cadre d'un flux de travail.
+ Balisage de fichiers.
+ Exécution d'un traitement personnalisé en créant et en associant une AWS Lambda fonction à un flux de travail.
+ Envoi de notifications lorsqu'un fichier a été transféré avec succès. (Pour un article de blog détaillant ce cas d'utilisation, voir [Personnaliser les notifications de livraison de fichiers à l'aide de flux de travail AWS Transfer Family gérés](https://aws.amazon.com/blogs/storage/customize-file-delivery-notifications-using-aws-transfer-family-managed-workflows/).)

Pour répliquer et standardiser rapidement les tâches courantes de traitement des fichiers après le téléchargement dans plusieurs unités commerciales de votre organisation, vous pouvez déployer des flux de travail en utilisant l'infrastructure en tant que code (iAc). Vous pouvez spécifier un flux de travail géré à lancer sur les fichiers téléchargés dans leur intégralité. Vous pouvez également spécifier un flux de travail géré différent à lancer sur les fichiers qui ne sont que partiellement téléchargés en raison d'une déconnexion prématurée de session. La gestion intégrée des exceptions vous permet de réagir rapidement aux résultats du traitement des fichiers, tout en vous permettant de contrôler la manière de gérer les défaillances. En outre, chaque étape du flux de travail produit des journaux détaillés, que vous pouvez auditer pour tracer le lignage des données.

Pour commencer, effectuez les tâches suivantes :

1. Configurez votre flux de travail pour qu'il contienne des actions de prétraitement, telles que la copie, le balisage et d'autres étapes en fonction de vos besoins. Consultez [Création d'un flux de travail](create-workflow.md) pour plus de détails.

1. Configurez un rôle d'exécution que Transfer Family utilise pour exécuter le flux de travail. Consultez [Politiques IAM pour les flux de travail](workflow-execution-role.md) pour plus de détails.

1. Associez le flux de travail à un serveur, de sorte qu'à l'arrivée du fichier, les actions spécifiées dans ce flux de travail soient évaluées et initiées en temps réel. Consultez [Configuration et exécution d'un flux de travail](create-workflow.md#configure-workflow) pour plus de détails.

**Informations connexes**
+ Pour surveiller l'exécution de vos flux de travail, consultez[Utilisation de CloudWatch métriques pour les serveurs Transfer Family](metrics.md).
+ Pour obtenir des journaux d'exécution détaillés et des informations de dépannage, consultez[Résoudre les erreurs liées au flux de travail à l'aide d'Amazon CloudWatch](workflow-issues.md#workflows-cloudwatch-errors).
+ Transfer Family propose un article de blog et un atelier qui vous guideront dans la création d'une solution de transfert de fichiers. Cette solution s'appuie sur les SFTP/FTPS points de terminaison gérés et sur Amazon Cognito et DynamoDB AWS Transfer Family pour la gestion des utilisateurs. 

  Le billet de blog est disponible sur [Utilisation d'Amazon Cognito en tant que fournisseur d'identité avec Amazon AWS Transfer Family S3](https://aws.amazon.com/blogs/storage/using-amazon-cognito-as-an-identity-provider-with-aws-transfer-family-and-amazon-s3/). Vous pouvez consulter les détails de l'atelier [ici](https://catalog.workshops.aws/transfer-family-sftp/en-US). 
+ La vidéo suivante fournit une brève introduction aux flux de travail gérés par Transfer Family.  
[![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)
+ [L'atelier suivant propose des ateliers pratiques pour créer des flux de travail entièrement automatisés et axés sur les événements impliquant le transfert de fichiers vers ou depuis des serveurs SFTP externes vers Amazon S3, ainsi que le prétraitement et le post-traitement courants de ces fichiers : atelier MFT piloté par les événements.](https://catalog.us-east-1.prod.workshops.aws/workshops/e55c90e0-bbb0-47e1-be83-6bafa3a59a8a/en-US)

  Cette vidéo présente un aperçu de cet atelier.  
[![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**
+ [Création d'un flux de travail](create-workflow.md)
+ [Utiliser des étapes prédéfinies](nominal-steps-workflow.md)
+ [Utiliser des étapes de traitement de fichiers personnalisées](custom-step-details.md)
+ [Politiques IAM pour les flux de travail](workflow-execution-role.md)
+ [Gestion des exceptions pour un flux de travail](#exception-workflow)
+ [Surveiller l'exécution du flux de](cloudwatch-workflow.md)
+ [Création d'un flux de travail à partir d'un modèle](workflow-template.md)
+ [Supprimer un flux de travail d'un serveur Transfer Family](#remove-workflow-association)
+ [Restrictions et limites des flux de travail gérés](#limitations-workflow)

Pour obtenir de l'aide supplémentaire pour démarrer avec les flux de travail gérés, consultez les ressources suivantes : 
+ AWS Transfer Family vidéo de démonstration [des flux de travail gérés](https://www.youtube.com/watch?v=t-iNqCRospw)
+ Article de blog sur la [création d'une plateforme de transfert de fichiers native pour le cloud à l'aide AWS Transfer Family de workflows](https://aws.amazon.com/blogs/architecture/building-a-cloud-native-file-transfer-platform-using-aws-transfer-family-workflows/)

# Création d'un flux de travail
<a name="create-workflow"></a>

Vous pouvez créer un flux de travail géré à l'aide du AWS Management Console, comme décrit dans cette rubrique. Pour faciliter au maximum le processus de création du flux de travail, des panneaux d'aide contextuels sont disponibles pour la plupart des sections de la console.

Un flux de travail comporte deux types d'étapes :
+ **Étapes nominales** — Les étapes nominales sont des étapes de traitement de fichiers que vous souhaitez appliquer aux fichiers entrants. Si vous sélectionnez plusieurs étapes nominales, chaque étape est traitée selon une séquence linéaire.
+ **Étapes de gestion des exceptions** — Les gestionnaires d'exceptions sont des étapes de traitement de fichiers qui AWS Transfer Family s'exécutent en cas d'échec d'une étape nominale ou d'erreur de validation.

**Création d'un flux de travail**

1. Ouvrez la AWS Transfer Family console à l'adresse [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Dans le volet de navigation de gauche, sélectionnez **Workflows**.

1. Sur la page **Flux de travail**, choisissez **Créer un flux de travail**.

1. Sur la page **Créer un flux** de travail, entrez une description. Cette description apparaît sur la page **Workflows**.

1. Dans la section **Étapes nominales**, choisissez **Ajouter une étape**. Ajoutez une ou plusieurs étapes.

   1. Choisissez un type d'étape parmi les options disponibles. Pour plus d'informations sur les différents types d'étapes, consultez[Utiliser des étapes prédéfinies](nominal-steps-workflow.md).

   1. Choisissez **Next**, puis configurez les paramètres de l'étape. 

   1. Choisissez **Next**, puis passez en revue les détails de l'étape. 

   1. Choisissez **Créer une étape** pour ajouter l'étape et continuer.

   1. Continuez à ajouter des étapes selon vos besoins. Le nombre maximal d'étapes d'un flux de travail est de 8.

   1. Après avoir ajouté toutes les étapes nominales nécessaires, faites défiler la page vers le bas jusqu'à la section **Gestionnaires d'exceptions — *facultatif***, puis choisissez **Ajouter une étape**. 
**Note**  
Pour être informé des défaillances en temps réel, nous vous recommandons de configurer des gestionnaires d'exceptions et des étapes à exécuter en cas d'échec de votre flux de travail.

1. Pour configurer les gestionnaires d'exceptions, ajoutez des étapes de la même manière que celle décrite précédemment. Si un fichier entraîne le lancement d'une exception par une étape, vos gestionnaires d'exceptions sont invoqués un par un. 

1. (Facultatif) Faites défiler la page jusqu'à la section **Balises** et ajoutez des balises pour votre flux de travail.

1. Passez en revue la configuration, puis choisissez **Créer un flux de travail**. 
**Important**  
Une fois que vous avez créé un flux de travail, vous ne pouvez pas le modifier. Veillez donc à examiner attentivement la configuration.

## Configuration et exécution d'un flux de travail
<a name="configure-workflow"></a>

Avant de pouvoir exécuter un flux de travail, vous devez l'associer à un serveur Transfer Family.

**Pour configurer Transfer Family afin d'exécuter un flux de travail sur les fichiers téléchargés**

1. Ouvrez la AWS Transfer Family console à l'adresse [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Dans le volet de navigation de gauche, choisissez **Servers**. 
   + Pour ajouter le flux de travail à un serveur existant, choisissez le serveur que vous souhaitez utiliser pour votre flux de travail.
   + Vous pouvez également créer un nouveau serveur et y ajouter le flux de travail. Pour de plus amples informations, veuillez consulter [Configuration d'un point de terminaison de serveur SFTP, FTPS ou FTP](tf-server-endpoint.md).

1. Sur la page de détails du serveur, faites défiler la page jusqu'à la section **Détails supplémentaires**, puis choisissez **Modifier**. 
**Note**  
 Par défaut, aucun flux de travail n'est associé aux serveurs. Vous utilisez la section **Détails supplémentaires** pour associer un flux de travail au serveur sélectionné. 

1. Sur la page **Modifier les informations supplémentaires**, dans la section **Flux de travail gérés**, sélectionnez un flux de travail à exécuter sur tous les téléchargements.
**Note**  
Si vous n'avez pas encore de flux de travail, choisissez **Créer un nouveau flux de travail** pour en créer un.

   1. Choisissez l'ID de flux de travail à utiliser. 

   1. Choisissez un rôle d'exécution. C'est le rôle que Transfer Family assume lors de l'exécution des étapes du flux de travail. Pour de plus amples informations, veuillez consulter [Politiques IAM pour les flux de travail](workflow-execution-role.md). Choisissez **Enregistrer**.  
![\[L'écran Workflows gérés, qui affiche les valeurs du flux de travail et du rôle d'exécution.\]](http://docs.aws.amazon.com/fr_fr/transfer/latest/userguide/images/workflows-addtoserver.png)

**Note**  
Si vous ne souhaitez plus qu'un flux de travail soit associé au serveur, vous pouvez supprimer l'association. Pour en savoir plus, consultez [Supprimer un flux de travail d'un serveur Transfer Family](transfer-workflows.md#remove-workflow-association).

**Pour exécuter un flux de travail**

Pour exécuter un flux de travail, vous devez télécharger un fichier sur un serveur Transfer Family que vous avez configuré avec un flux de travail associé.

**Note**  
Chaque fois que vous supprimez un flux de travail d'un serveur et que vous le remplacez par un nouveau, ou que vous mettez à jour la configuration du serveur (ce qui a un impact sur le rôle d'exécution d'un flux de travail), vous devez attendre environ 10 minutes avant d'exécuter le nouveau flux de travail. Le serveur Transfer Family met en cache les détails du flux de travail et met 10 minutes au serveur pour actualiser son cache.  
En outre, vous devez vous déconnecter de toutes les sessions SFTP actives, puis vous reconnecter après la période d'attente de 10 minutes pour voir les modifications.

**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
>
```

Une fois que votre fichier a été chargé, l'action définie est exécutée sur votre fichier. Par exemple, si votre flux de travail contient une étape de copie, le fichier est copié à l'emplacement que vous avez défini à cette étape. Vous pouvez utiliser Amazon CloudWatch Logs pour suivre les étapes exécutées et leur statut d'exécution.

## Afficher les détails du flux de travail
<a name="view-details-workflow"></a>

Vous pouvez consulter les détails relatifs aux flux de travail créés précédemment ou aux exécutions de flux de travail. Pour afficher ces informations, vous pouvez utiliser la console ou le AWS Command Line Interface (AWS CLI). 

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

**Afficher les détails du flux de travail**

1. Ouvrez la AWS Transfer Family console à l'adresse [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Dans le volet de navigation de gauche, sélectionnez **Workflows**. 

1. Sur la page **Flux de travail**, choisissez un flux de travail. 

   La page des détails du flux de travail s'ouvre.   
![\[L'écran détaillé des flux de travail d'un flux de travail Transfer Family, présentant la description, les étapes, les gestionnaires d'exceptions et les exécutions en cours.\]](http://docs.aws.amazon.com/fr_fr/transfer/latest/userguide/images/workflows-overview.png)

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

Pour afficher les détails du flux de travail, utilisez la commande `describe-workflow` CLI, comme indiqué dans l'exemple suivant. Remplacez l'ID du flux `w-1234567890abcdef0` de travail par votre propre valeur. Pour plus d'informations, voir [describe-workflow](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transfer/describe-workflow.html) dans la référence des *AWS CLI commandes*.

```
# 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": {}
    }
}
```

------

Si votre flux de travail a été créé dans le cadre d'une AWS CloudFormation pile, vous pouvez le gérer à l'aide de la CloudFormation console ([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)).

![\[L'écran des détails des flux de travail d'un flux de travail faisant partie d'une AWS CloudFormation pile, affiche le message dans lequel vous gérez ce flux de travail CloudFormation.\]](http://docs.aws.amazon.com/fr_fr/transfer/latest/userguide/images/workflows-cloudformation-link.png)


# Utiliser des étapes prédéfinies
<a name="nominal-steps-workflow"></a>

Lorsque vous créez un flux de travail, vous pouvez choisir d'ajouter l'une des étapes prédéfinies suivantes décrites dans cette rubrique. Vous pouvez également choisir d'ajouter vos propres étapes de traitement de fichiers personnalisées. Pour de plus amples informations, veuillez consulter [Utiliser des étapes de traitement de fichiers personnalisées](custom-step-details.md).

**Topics**
+ [Copier le fichier](#copy-step-details)
+ [Déchiffrer le fichier](#decrypt-step-details)
+ [Fichier de balises](#tag-step-details)
+ [Supprimer le fichier](#delete-step-details)
+ [Variables nommées pour les flux de travail](#workflow-named-variables)
+ [Exemple de balise et de flux de travail de suppression](#sourcefile-workflow)

## Copier le fichier
<a name="copy-step-details"></a>

Une étape de copie de fichier crée une copie du fichier chargé dans un nouvel emplacement Amazon S3. Actuellement, vous ne pouvez utiliser une étape de copie de fichier qu'avec Amazon S3.

L'étape de copie de fichier suivante permet de copier les fichiers dans le `test` dossier de*amzn-s3-demo-destination-bucket*. 

Si l'étape de copie du fichier n'est pas la première étape de votre flux de travail, vous pouvez spécifier l'**emplacement du fichier**. En spécifiant l'emplacement du fichier, vous pouvez copier soit le fichier utilisé à l'étape précédente, soit le fichier d'origine qui a été chargé. Vous pouvez utiliser cette fonctionnalité pour créer plusieurs copies du fichier original tout en conservant le fichier source intact pour l'archivage des fichiers et la conservation des dossiers. Pour obtenir un exemple, consultez [Exemple de balise et de flux de travail de suppression](#sourcefile-workflow).

![\[Écran de flux de travail avec Copier le fichier créé à l'étape précédente... bouton sélectionné.\]](http://docs.aws.amazon.com/fr_fr/transfer/latest/userguide/images/workflows-step-copy.png)


### Fournissez le compartiment et les informations clés
<a name="copy-provide-bucket"></a>

Vous devez fournir le nom du compartiment et une clé pour la destination de l'étape de copie du fichier. La clé peut être un nom de chemin ou un nom de fichier. Le fait que la clé soit traitée comme un nom de chemin ou comme un nom de fichier dépend de la fin de la clé par la barre oblique (`/`).

Si le dernier caractère est`/`, votre fichier est copié dans le dossier et son nom ne change pas. Si le dernier caractère est alphanumérique, le fichier que vous avez chargé est renommé avec la valeur clé. Dans ce cas, si un fichier portant ce nom existe déjà, le comportement dépend du paramètre du champ **Remplacer existant**.
+ Si l'option **Remplacer l'existant** est sélectionnée, le fichier existant est remplacé par le fichier en cours de traitement.
+ Si l'option **Remplacer l'existant** n'est pas sélectionnée, rien ne se passe et le traitement du flux de travail s'arrête.
**Astuce**  
Si des écritures simultanées sont exécutées sur le même chemin de fichier, cela peut entraîner un comportement inattendu lors du remplacement de fichiers.

Par exemple, si votre valeur clé est`test/`, les fichiers que vous avez téléchargés sont copiés `test` dans le dossier. Si votre valeur clé est`test/today`, (et que l'option **Remplacer les fichiers existants** est sélectionnée), chaque fichier que vous téléchargez est copié `today` dans un fichier nommé dans le `test` dossier, et chaque fichier suivant remplace le précédent.

**Note**  
Amazon S3 prend en charge les compartiments et les objets. Il n’y a aucune hiérarchie. Cependant, vous pouvez utiliser des préfixes et des délimiteurs dans les noms de clés d'objets pour indiquer une hiérarchie et organiser vos données de la même manière que les dossiers.

### Utiliser une variable nommée dans une étape de copie de fichier
<a name="named-variable-copy"></a>

Lors d'une étape de copie de fichier, vous pouvez utiliser une variable pour copier dynamiquement vos fichiers dans des dossiers spécifiques à l'utilisateur. Actuellement, vous pouvez utiliser `${transfer:UserName}` ou `${transfer:UploadDate}` en tant que variable pour copier des fichiers vers un emplacement de destination pour l'utilisateur donné qui télécharge les fichiers, ou en fonction de la date actuelle.

Dans l'exemple suivant, si l'utilisateur `richard-roe` télécharge un fichier, celui-ci est copié dans le `amzn-s3-demo-destination-bucket/richard-roe/processed/` dossier. Si l'utilisateur `mary-major` télécharge un fichier, celui-ci est copié dans le `amzn-s3-demo-destination-bucket/mary-major/processed/` dossier.

![\[Écran de paramètres pour une étape de copie, montrant le compartiment et la clé, paramétrés à l'aide de. UserName\]](http://docs.aws.amazon.com/fr_fr/transfer/latest/userguide/images/workflows-step-copy-dynamic.png)


De même, vous pouvez l'utiliser `${transfer:UploadDate}` comme variable pour copier des fichiers vers un emplacement de destination nommé d'après la date actuelle. Dans l'exemple suivant, si vous définissez la destination `${transfer:UploadDate}/processed` sur le 1er février 2022, les fichiers téléchargés sont copiés dans le `amzn-s3-demo-destination-bucket/2022-02-01/processed/` dossier.

![\[Écran de paramètres pour une étape de copie, montrant le compartiment et la clé, paramétrés à l'aide de. UploadDate\]](http://docs.aws.amazon.com/fr_fr/transfer/latest/userguide/images/workflows-step-copy-dynamic-date.png)


Vous pouvez également utiliser ces deux variables ensemble, en combinant leurs fonctionnalités. Par exemple, vous pouvez définir le **préfixe de la clé de destination** sur**folder/\$1\$1transfer:UserName\$1/\$1\$1transfer:UploadDate\$1/**, ce qui créerait des dossiers imbriqués, par exemple. `folder/marymajor/2023-01-05/`

### Autorisations IAM pour l'étape de copie
<a name="copy-step-iam"></a>

Pour qu'une étape de copie réussisse, assurez-vous que le rôle d'exécution de votre flux de travail contient les autorisations suivantes.

```
{
    "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/*"
}
```

**Note**  
L'`s3:ListBucket`autorisation n'est nécessaire que si vous ne sélectionnez pas **Remplacer l'existant**. Cette autorisation vérifie dans votre compartiment si un fichier portant le même nom existe déjà. Si vous avez sélectionné **Remplacer l'existant**, le flux de travail n'a pas besoin de vérifier la présence du fichier et peut simplement l'écrire.  
Si vos fichiers Amazon S3 comportent des balises, vous devez ajouter une ou deux autorisations à votre politique IAM.  
Ajoutez `s3:GetObjectTagging` un fichier Amazon S3 qui n'est pas versionné.
Ajoutez `s3:GetObjectVersionTagging` un fichier Amazon S3 versionné.

## Déchiffrer le fichier
<a name="decrypt-step-details"></a>

Le blog sur le AWS stockage contient un article qui décrit comment simplement déchiffrer des fichiers sans écrire de code à l'aide des flux de travail Transfer Family Managed, [crypter et déchiffrer des fichiers avec](https://aws.amazon.com/blogs/storage/encrypt-and-decrypt-files-with-pgp-and-aws-transfer-family/) PGP et. AWS Transfer Family

### Algorithmes de chiffrement symétriques pris en charge
<a name="symmetric-algorithms"></a>

Pour le déchiffrement PGP, Transfer Family prend en charge les algorithmes de chiffrement symétriques utilisés pour chiffrer les données réelles contenues dans les fichiers PGP.
+ Pour des informations détaillées sur les algorithmes de chiffrement symétrique pris en charge, consultez[Algorithmes de chiffrement symétrique PGP](key-management.md#pgp-symmetric-algorithms).
+ Pour plus d'informations sur les algorithmes de paires de clés PGP utilisés avec ces algorithmes symétriques, consultez. [Algorithmes de paires de clés PGP](key-management.md#pgp-key-algorithms)

### Utilisez le déchiffrement PGP dans votre flux de travail
<a name="configure-decryption"></a>

Transfer Family dispose d'un support intégré pour le déchiffrement de Pretty Good Privacy (PGP). Vous pouvez utiliser le déchiffrement PGP sur les fichiers chargés via SFTP, FTPS ou FTP vers Amazon Simple Storage Service (Amazon S3) ou Amazon Elastic File System (Amazon EFS). 

Pour utiliser le déchiffrement PGP, vous devez créer et stocker les clés privées PGP qui seront utilisées pour le déchiffrement de vos fichiers. Vos utilisateurs peuvent ensuite chiffrer les fichiers à l'aide des clés de chiffrement PGP correspondantes avant de les télécharger sur votre serveur Transfer Family. Après avoir reçu les fichiers chiffrés, vous pouvez les déchiffrer dans votre flux de travail. Pour voir un didacticiel détaillé, consultez [Configuration d'un flux de travail géré pour le déchiffrement d'un fichier](workflow-decrypt-tutorial.md).

Pour plus d'informations sur les algorithmes PGP pris en charge et les recommandations, consultez[Algorithmes de chiffrement et de déchiffrement PGP](key-management.md#pgp-encryption-algorithms).

**Pour utiliser le déchiffrement PGP dans votre flux de travail**

1. Identifiez un serveur Transfer Family pour héberger votre flux de travail ou créez-en un nouveau. Vous devez avoir l'ID du serveur avant de pouvoir stocker vos clés PGP AWS Secrets Manager avec le nom secret correct.

1. Enregistrez votre clé PGP AWS Secrets Manager sous le nom secret requis. Pour en savoir plus, consultez [Gérer les clés PGP](manage-pgp-keys.md). Les flux de travail peuvent localiser automatiquement la clé PGP appropriée à utiliser pour le déchiffrement en fonction du nom du secret dans Secrets Manager.
**Note**  
Lorsque vous stockez des secrets dans Secrets Manager, des frais Compte AWS vous sont facturés. Pour plus d’informations sur la tarification, consultez la section [AWS Secrets Manager Tarification](https://aws.amazon.com/secrets-manager/pricing).

1. Chiffrez un fichier à l'aide de votre paire de clés PGP. (Pour obtenir la liste des clients pris en charge, voir[Clients PGP pris en charge](pgp-key-clients.md).) Si vous utilisez la ligne de commande, exécutez la commande suivante. Pour utiliser cette commande, remplacez-la `username@example.com` par l'adresse e-mail que vous avez utilisée pour créer la paire de clés PGP. `testfile.txt`Remplacez-le par le nom du fichier que vous souhaitez chiffrer. 

   ```
   gpg -e -r username@example.com testfile.txt
   ```
**Important**  
Lorsque vous chiffrez des fichiers destinés à être utilisés avec AWS Transfer Family des flux de travail, assurez-vous toujours de spécifier un destinataire non anonyme à l'aide du `-r` paramètre. Le chiffrement anonyme (sans indication de destinataire) peut entraîner des échecs de déchiffrement dans le flux de travail, car le système ne sera pas en mesure d'identifier la clé à utiliser pour le déchiffrement. Les informations de débogage relatives à ce problème sont disponibles à l'adresse[Résoudre les problèmes de chiffrement des destinataires anonymes](workflow-issues.md#workflows-decrypt-anonymous). 

1. Téléchargez le fichier crypté sur votre serveur Transfer Family.

1. Configurez une étape de déchiffrement dans votre flux de travail. Pour de plus amples informations, veuillez consulter [Ajouter une étape de déchiffrement](#decrypt-step-procedure).

### Ajouter une étape de déchiffrement
<a name="decrypt-step-procedure"></a>

Une étape de déchiffrement déchiffre un fichier chiffré qui a été chargé sur Amazon S3 ou Amazon EFS dans le cadre de votre flux de travail. Pour plus de détails sur la configuration du déchiffrement, consultez[Utilisez le déchiffrement PGP dans votre flux de travail](#configure-decryption).

Lorsque vous créez votre étape de déchiffrement pour un flux de travail, vous devez spécifier la destination des fichiers déchiffrés. Vous devez également indiquer si vous souhaitez remplacer les fichiers existants si un fichier existe déjà à l'emplacement de destination. Vous pouvez surveiller les résultats du flux de déchiffrement et obtenir des journaux d'audit pour chaque fichier en temps réel à l'aide d'Amazon CloudWatch Logs.

Une fois que vous avez choisi le type de **fichier de déchiffrement** pour votre étape, la page **Configurer les paramètres** apparaît. Renseignez les valeurs de la section **Configurer les paramètres de déchiffrement PGP**.

Les options disponibles sont les suivantes :
+ **Nom de l'étape** : entrez un nom descriptif pour l'étape.
+ **Emplacement du fichier** — En spécifiant l'emplacement du fichier, vous pouvez déchiffrer soit le fichier utilisé à l'étape précédente, soit le fichier d'origine qui a été chargé. 
**Note**  
Ce paramètre n'est pas disponible s'il s'agit de la première étape du flux de travail.
+ **Destination des fichiers déchiffrés** : choisissez un compartiment Amazon S3 ou un système de fichiers Amazon EFS comme destination du fichier déchiffré.
  + Si vous choisissez Amazon S3, vous devez fournir un nom de compartiment de destination et un préfixe de clé de destination. Pour paramétrer le préfixe de clé de destination par nom d'utilisateur, **\$1\$1transfer:UserName\$1** entrez le préfixe de **clé** de destination. De même, pour paramétrer le préfixe de clé de destination par date de téléchargement, **\$1\$1Transfer:UploadDate\$1** entrez le préfixe de **clé** de destination.
  + Si vous choisissez Amazon EFS, vous devez fournir un système de fichiers et un chemin de destination.
**Note**  
L'option de stockage que vous choisissez ici doit correspondre au système de stockage utilisé par le serveur Transfer Family auquel ce flux de travail est associé. Dans le cas contraire, vous recevrez un message d'erreur lorsque vous tenterez d'exécuter ce flux de travail.
+ **Remplacer un fichier existant** : si vous chargez un fichier et qu'un fichier portant le même nom de fichier existe déjà à destination, le comportement dépend de la définition de ce paramètre :
  + Si l'option **Remplacer l'existant** est sélectionnée, le fichier existant est remplacé par le fichier en cours de traitement.
  + Si l'option **Remplacer l'existant** n'est pas sélectionnée, rien ne se passe et le traitement du flux de travail s'arrête.
**Astuce**  
Si des écritures simultanées sont exécutées sur le même chemin de fichier, cela peut entraîner un comportement inattendu lors du remplacement de fichiers.

La capture d'écran suivante montre un exemple des options que vous pouvez choisir pour l'étape de déchiffrement du fichier. 

![\[La AWS Transfer Family console, qui affiche la section Configurer les paramètres de déchiffrement PGP avec des exemples de valeurs.\]](http://docs.aws.amazon.com/fr_fr/transfer/latest/userguide/images/workflows-step-decrypt-details.png)


### Autorisations IAM pour l'étape de déchiffrement
<a name="decrypt-step-iam"></a>

Pour qu'une étape de déchiffrement réussisse, assurez-vous que le rôle d'exécution de votre flux de travail contient les autorisations suivantes.

```
{
    "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/*"
}
```

**Note**  
L'`s3:ListBucket`autorisation n'est nécessaire que si vous ne sélectionnez pas **Remplacer l'existant**. Cette autorisation vérifie dans votre compartiment si un fichier portant le même nom existe déjà. Si vous avez sélectionné **Remplacer l'existant**, le flux de travail n'a pas besoin de vérifier la présence du fichier et peut simplement l'écrire.  
Si vos fichiers Amazon S3 comportent des balises, vous devez ajouter une ou deux autorisations à votre politique IAM.  
Ajoutez `s3:GetObjectTagging` un fichier Amazon S3 qui n'est pas versionné.
Ajoutez `s3:GetObjectVersionTagging` un fichier Amazon S3 versionné.

## Fichier de balises
<a name="tag-step-details"></a>

Pour étiqueter les fichiers entrants en vue d'un traitement ultérieur, utilisez une étape de balise. Entrez la valeur de la balise que vous souhaitez attribuer aux fichiers entrants. Actuellement, l'opération de balise n'est prise en charge que si vous utilisez Amazon S3 pour le stockage de votre serveur Transfer Family.

L'exemple d'étape de balise suivant affecte `scan_outcome` et `clean` en tant que clé et valeur de balise, respectivement.

![\[Écran des flux de travail présentant les détails d'une étape de balisage.\]](http://docs.aws.amazon.com/fr_fr/transfer/latest/userguide/images/workflows-step-tag.png)


Pour qu'une étape de balise réussisse, assurez-vous que le rôle d'exécution de votre flux de travail contient les autorisations suivantes.

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

**Note**  
Si votre flux de travail contient une étape de balise qui s'exécute avant une étape de copie ou de déchiffrement, vous devez ajouter une ou deux autorisations à votre politique IAM.  
Ajoutez `s3:GetObjectTagging` un fichier Amazon S3 qui n'est pas versionné.
Ajoutez `s3:GetObjectVersionTagging` un fichier Amazon S3 versionné.

## Supprimer le fichier
<a name="delete-step-details"></a>

Pour supprimer un fichier traité d'une étape précédente du flux de travail ou pour supprimer le fichier initialement chargé, utilisez une étape de suppression de fichier.

![\[Écran des flux de travail présentant les détails d'une étape de suppression.\]](http://docs.aws.amazon.com/fr_fr/transfer/latest/userguide/images/workflows-step-delete.png)


Pour qu'une étape de suppression réussisse, assurez-vous que le rôle d'exécution de votre flux de travail contient les autorisations suivantes.

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

## Variables nommées pour les flux de travail
<a name="workflow-named-variables"></a>

Pour les étapes de copie et de déchiffrement, vous pouvez utiliser une variable pour effectuer des actions de manière dynamique. Actuellement, AWS Transfer Family prend en charge les variables nommées suivantes.
+ `${transfer:UserName}`À utiliser pour copier ou déchiffrer des fichiers vers une destination en fonction de l'utilisateur qui télécharge les fichiers.
+ `${transfer:UploadDate}`À utiliser pour copier ou déchiffrer des fichiers vers un emplacement de destination en fonction de la date actuelle.

## Exemple de balise et de flux de travail de suppression
<a name="sourcefile-workflow"></a>

L'exemple suivant illustre un flux de travail qui balise les fichiers entrants devant être traités par une application en aval, telle qu'une plateforme d'analyse de données. Après avoir balisé le fichier entrant, le flux de travail supprime le fichier initialement chargé pour économiser sur les coûts de stockage.

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

**Exemple de processus de balisage et de déplacement**

1. Ouvrez la AWS Transfer Family console à l'adresse [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Dans le volet de navigation de gauche, sélectionnez **Workflows**.

1. Sur la page **Flux de travail**, choisissez **Créer un flux de travail**.

1. Sur la page **Créer un flux** de travail, entrez une description. Cette description apparaît sur la page **Workflows**.

1. Ajoutez la première étape (copie).

   1. Dans la section **Étapes nominales**, choisissez **Ajouter une étape**.

   1. Choisissez **Copier le fichier**, puis cliquez sur **Suivant**.

   1. Entrez le nom de l'étape, puis sélectionnez un compartiment de destination et un préfixe de clé.  
![\[Écran des flux de travail présentant les détails d'une étape de copie, avec le compartiment de destination et le préfixe de clé.\]](http://docs.aws.amazon.com/fr_fr/transfer/latest/userguide/images/workflows-step-copy-first-step.png)

   1. Choisissez **Next**, puis passez en revue les détails de l'étape. 

   1. Choisissez **Créer une étape** pour ajouter l'étape et continuer.

1. Ajoutez la deuxième étape (tag).

   1. Dans la section **Étapes nominales**, choisissez **Ajouter une étape**.

   1. Choisissez **Tag file**, puis **Next**.

   1. Entrez le nom de l'étape.

   1. Pour **Emplacement du fichier**, sélectionnez **Marquer le fichier créé à l'étape précédente**.

   1. Saisissez une **Key** (Clé) et une **Value** (Valeur).  
![\[L'écran de configuration d'une étape du flux de travail de balisage, avec le bouton radio Marquer le fichier créé à partir de l'étape précédente sélectionné.\]](http://docs.aws.amazon.com/fr_fr/transfer/latest/userguide/images/workflows-step-tag.png)

   1. Choisissez **Next**, puis passez en revue les détails de l'étape. 

   1. Choisissez **Créer une étape** pour ajouter l'étape et continuer.

1. Ajoutez la troisième étape (supprimer).

   1. Dans la section **Étapes nominales**, choisissez **Ajouter une étape**.

   1. Choisissez **Supprimer le fichier**, puis **Suivant**.  
![\[L'écran de configuration d'une étape de suppression du flux de travail, avec le bouton radio Supprimer le fichier source d'origine sélectionné.\]](http://docs.aws.amazon.com/fr_fr/transfer/latest/userguide/images/workflows-step-delete.png)

   1. Entrez le nom de l'étape.

   1. Pour **Emplacement du fichier**, sélectionnez **Supprimer le fichier source d'origine**.

   1. Choisissez **Next**, puis passez en revue les détails de l'étape. 

   1. Choisissez **Créer une étape** pour ajouter l'étape et continuer.

1. Vérifiez la configuration du flux de travail, puis choisissez **Créer un flux de travail**. 

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

**Exemple de processus de balisage et de déplacement**

1. Enregistrez le code suivant dans un fichier ; par exemple,`tagAndMoveWorkflow.json`. Remplacez chaque `user input placeholder` par vos propres informations. 

   ```
   [
      {
          "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}"
         }
     }
   ]
   ```

   La première étape consiste à copier le fichier chargé vers un nouvel emplacement Amazon S3. La deuxième étape ajoute une balise (paire clé-valeur) au fichier (`previous.file`) qui a été copié vers le nouvel emplacement. Enfin, la troisième étape supprime le fichier d'origine (`original.file`).

1. Créez un flux de travail à partir du fichier enregistré. Remplacez chaque `user input placeholder` par vos propres informations.

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

   Par exemple : 

   ```
   aws transfer create-workflow --description "copy-tag-delete workflow" --steps file://tagAndMoveWorkflow.json --region us-east-1
   ```
**Note**  
Pour plus de détails sur l'utilisation de fichiers pour charger des paramètres, consultez [Comment charger des paramètres à partir d'un fichier](https://docs.aws.amazon.com//cli/latest/userguide/cli-usage-parameters-file.html).

1. Mettez à jour un serveur existant.
**Note**  
Cette étape suppose que vous possédez déjà un serveur Transfer Family et que vous souhaitez y associer un flux de travail. Si ce n’est pas le cas, voyez [Configuration d'un point de terminaison de serveur SFTP, FTPS ou FTP](tf-server-endpoint.md). Remplacez chaque `user input placeholder` par vos propres informations.

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

   Par exemple :

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

------

# Utiliser des étapes de traitement de fichiers personnalisées
<a name="custom-step-details"></a>

En utilisant une étape de traitement de fichiers personnalisée, vous pouvez apporter votre propre logique de traitement de fichiers en utilisant. AWS LambdaÀ l'arrivée du fichier, un serveur Transfer Family invoque une fonction Lambda qui contient une logique de traitement de fichiers personnalisée, telle que le chiffrement de fichiers, la recherche de logiciels malveillants ou la recherche de types de fichiers incorrects. Dans l'exemple suivant, la AWS Lambda fonction cible est utilisée pour traiter le fichier de sortie de l'étape précédente.

![\[L'écran d'étape personnalisée, avec le bouton radio Appliquer un traitement personnalisé au fichier créé à partir de l'étape précédente sélectionné, et une fonction Lambda affichée dans le champ Cible.\]](http://docs.aws.amazon.com/fr_fr/transfer/latest/userguide/images/workflows-step-custom.png)


**Note**  
Pour obtenir un exemple de fonction Lambda, consultez [Exemple de fonction Lambda pour une étape de flux de travail personnalisée](#example-workflow-lambda). Pour des exemples d'événements (y compris l'emplacement des fichiers transmis au Lambda), voir. [Exemples d'événements envoyés à une adresse AWS Lambda lors du chargement d'un fichier](#example-workflow-lambdas)

Avec une étape de flux de travail personnalisée, vous devez configurer la fonction Lambda pour appeler l'opération d'[SendWorkflowStepState](https://docs.aws.amazon.com/transfer/latest/APIReference/API_SendWorkflowStepState.html)API. `SendWorkflowStepState`indique à l'exécution du flux de travail que l'étape s'est terminée avec un statut de réussite ou d'échec. L'état de l'opération d'`SendWorkflowStepState`API appelle une étape du gestionnaire d'exceptions ou une étape nominale dans la séquence linéaire, en fonction du résultat de la fonction Lambda. 

Si la fonction Lambda échoue ou expire, l'étape échoue et cela apparaît `StepErrored` dans vos CloudWatch journaux. Si la fonction Lambda fait partie de l'étape nominale et que la fonction répond `SendWorkflowStepState` avec `Status="FAILURE"` ou expire, le flux continue avec les étapes du gestionnaire d'exceptions. Dans ce cas, le flux de travail ne continue pas à exécuter les étapes nominales restantes (le cas échéant). Pour en savoir plus, consultez [Gestion des exceptions pour un flux de travail](transfer-workflows.md#exception-workflow).

Lorsque vous appelez l'opération `SendWorkflowStepState` API, vous devez envoyer les paramètres suivants :

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

Vous pouvez extraire le `ExecutionId``Token`, et `WorkflowId` de l'événement d'entrée transmis lors de l'exécution de la fonction Lambda (des exemples sont présentés dans les sections suivantes). La `Status` valeur peut être `SUCCESS` soit`FAILURE`. 

Pour pouvoir appeler l'opération d'`SendWorkflowStepState`API depuis votre fonction Lambda, vous devez utiliser une version du AWS SDK publiée après l'introduction de [Managed Workflows](doc-history.md#workflows-introduced).

## Utilisation consécutive de plusieurs fonctions Lambda
<a name="multiple-lambdas"></a>

Lorsque vous utilisez plusieurs étapes personnalisées l'une après l'autre, l'option **Emplacement du fichier** fonctionne différemment que si vous n'utilisez qu'une seule étape personnalisée. Transfer Family ne prend pas en charge le transfert du fichier traité par Lambda pour qu'il soit réutilisé comme entrée de l'étape suivante. Ainsi, si plusieurs étapes personnalisées sont toutes configurées pour utiliser l'`previous.file`option, elles utilisent toutes le même emplacement de fichier (l'emplacement du fichier d'entrée pour la première étape personnalisée).

**Note**  
Le `previous.file` paramètre fonctionne également différemment si vous avez une étape prédéfinie (marquer, copier, déchiffrer ou supprimer) après une étape personnalisée. Si l'étape prédéfinie est configurée pour utiliser le `previous.file` paramètre, elle utilise le même fichier d'entrée que celui utilisé par l'étape personnalisée. Le fichier traité à partir de l'étape personnalisée n'est pas transmis à l'étape prédéfinie. 

## Accès à un fichier après un traitement personnalisé
<a name="process-uploaded-file"></a>

Si vous utilisez Amazon S3 comme espace de stockage, et si votre flux de travail inclut une étape personnalisée qui exécute des actions sur le fichier initialement chargé, les étapes suivantes ne peuvent pas accéder à ce fichier traité. En d'autres termes, aucune étape postérieure à l'étape personnalisée ne peut faire référence au fichier mis à jour à partir de la sortie de l'étape personnalisée. 

Supposons, par exemple, que votre flux de travail comporte les trois étapes suivantes. 
+ **Étape 1** — Téléchargez un fichier nommé`example-file.txt`.
+ **Étape 2** — Invoquez une fonction Lambda qui change d'une manière ou d'une `example-file.txt` autre.
+ **Étape 3** — Essayez d'effectuer un traitement supplémentaire sur la version mise à jour de`example-file.txt`.

Si vous configurez l'`sourceFileLocation`étape 3`${original.file}`, l'étape 3 utilise l'emplacement du fichier d'origine à partir du moment où le serveur a chargé le fichier vers le stockage à l'étape 1. Si vous utilisez `${previous.file}` pour l'étape 3, l'étape 3 réutilise l'emplacement du fichier que l'étape 2 a utilisé comme entrée.

Par conséquent, l'étape 3 provoque une erreur. Par exemple, si l'étape 3 tente de copier la mise à jour`example-file.txt`, le message d'erreur suivant s'affiche :

```
{
    "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"
    },
```

Cette erreur se produit car l'étape personnalisée modifie la balise d'entité (ETag) pour `example-file.txt` qu'elle ne corresponde pas au fichier d'origine.

**Note**  
Ce comportement ne se produit pas si vous utilisez Amazon EFS, car Amazon EFS n'utilise pas de balises d'entité pour identifier les fichiers.

## Exemples d'événements envoyés à une adresse AWS Lambda lors du chargement d'un fichier
<a name="example-workflow-lambdas"></a>

Les exemples suivants montrent les événements qui sont envoyés AWS Lambda lorsque le téléchargement d'un fichier est terminé. Un exemple utilise un serveur Transfer Family où le domaine est configuré avec Amazon S3. L'autre exemple utilise un serveur Transfer Family où le domaine utilise Amazon EFS. 

------
#### [ 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"
    }
}
```

------

## Exemple de fonction Lambda pour une étape de flux de travail personnalisée
<a name="example-workflow-lambda"></a>

La fonction Lambda suivante extrait les informations concernant l'état d'exécution, puis appelle l'opération d'[SendWorkflowStepState](https://docs.aws.amazon.com/transfer/latest/APIReference/API_SendWorkflowStepState.html)API pour renvoyer le statut au flux de travail de l'étape`SUCCESS`, soit. `FAILURE` Avant que votre fonction n'appelle l'opération `SendWorkflowStepState` API, vous pouvez configurer Lambda pour qu'il exécute une action en fonction de votre logique de flux de travail. 

```
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)
    }
```

## Autorisations IAM pour une étape personnalisée
<a name="custom-step-iam"></a>

Pour permettre à une étape qui appelle un Lambda de réussir, assurez-vous que le rôle d'exécution de votre flux de travail contient les autorisations suivantes.

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

# Politiques IAM pour les flux de travail
<a name="workflow-execution-role"></a>

Lorsque vous ajoutez un flux de travail à un serveur, vous devez sélectionner un rôle d'exécution. Le serveur utilise ce rôle lorsqu'il exécute le flux de travail. Si le rôle ne dispose pas des autorisations appropriées, il AWS Transfer Family ne peut pas exécuter le flux de travail. 

Cette section décrit un ensemble possible d'autorisations Gestion des identités et des accès AWS (IAM) que vous pouvez utiliser pour exécuter un flux de travail. D'autres exemples sont décrits plus loin dans cette rubrique. 

**Note**  
Si vos fichiers Amazon S3 comportent des balises, vous devez ajouter une ou deux autorisations à votre politique IAM.  
Ajoutez `s3:GetObjectTagging` un fichier Amazon S3 qui n'est pas versionné.
Ajoutez `s3:GetObjectVersionTagging` un fichier Amazon S3 versionné.

**Pour créer un rôle d'exécution pour votre flux de travail**

1. Créez un nouveau rôle IAM et ajoutez-y la politique AWS `AWSTransferFullAccess` gérée. Pour plus d'informations sur la création d'un nouveau rôle IAM, consultez[Création d'un rôle et d'une politique IAM](requirements-roles.md).

1. Créez une autre politique avec les autorisations suivantes et associez-la à votre rôle. Remplacez chaque `user input placeholder` par vos propres informations.  
****  

   ```
   {
       "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. Enregistrez ce rôle et spécifiez-le comme rôle d'exécution lorsque vous ajoutez un flux de travail à un serveur.
**Note**  
Lorsque vous créez des rôles IAM, il est AWS recommandé de restreindre l'accès à vos ressources autant que possible pour votre flux de travail.

## Relations de confiance en matière de flux
<a name="workflows-trust"></a>

Les rôles d'exécution du flux de travail nécessitent également une relation de confiance avec`transfer.amazonaws.com`. Pour établir une relation de confiance pour AWS Transfer Family, voir[Étape 1 : Établir une relation d'approbation](requirements-roles.md#establish-trust-transfer).

Pendant que vous établissez votre relation de confiance, vous pouvez également prendre des mesures pour éviter le problème de *confusion des adjoints*. Pour obtenir une description de ce problème, ainsi que des exemples permettant de l'éviter, reportez-vous à[Prévention du problème de l’adjoint confus entre services](confused-deputy.md).

## Exemple de rôle d'exécution : déchiffrer, copier et étiqueter
<a name="example-workflow-role-copy-tag"></a>

Si vos flux de travail incluent des étapes de balisage, de copie et de déchiffrement, vous pouvez utiliser la politique IAM suivante. Remplacez chaque `user input placeholder` par vos propres informations. 

****  

```
{
    "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/*"
        }
    ]
}
```

## Exemple de rôle d'exécution : exécuter la fonction et supprimer
<a name="example-workflow-role-custom-delete"></a>

Dans cet exemple, vous avez un flux de travail qui appelle une AWS Lambda fonction. Si le flux de travail supprime le fichier chargé et comporte une étape de gestion des exceptions pour agir en cas d'échec de l'exécution du flux de travail à l'étape précédente, appliquez la politique IAM suivante. Remplacez chaque `user input placeholder` par vos propres informations. 

****  

```
{
    "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"
            ]
        }
    ]
}
```

## Gestion des exceptions pour un flux de travail
<a name="exception-workflow"></a>

Si des erreurs se produisent lors de l'exécution d'un flux de travail, les étapes de gestion des exceptions que vous avez spécifiées sont exécutées. Vous spécifiez les étapes de gestion des erreurs pour un flux de travail de la même manière que vous spécifiez les étapes nominales pour le flux de travail. Supposons, par exemple, que vous ayez configuré un traitement personnalisé par étapes nominales pour valider les fichiers entrants. Si la validation du fichier échoue, une étape de gestion des exceptions peut envoyer un e-mail à l'administrateur.

L'exemple de flux de travail suivant contient deux étapes : 
+ Une étape nominale qui vérifie si le fichier téléchargé est au format CSV
+ Une étape de gestion des exceptions qui envoie un e-mail au cas où le fichier téléchargé n'est pas au format CSV et que l'étape nominale échoue

Pour lancer l'étape de gestion des exceptions, la AWS Lambda fonction de l'étape nominale doit répondre par. `Status="FAILURE"` Pour plus d'informations sur la gestion des erreurs dans les flux de travail, consultez[Utiliser des étapes de traitement de fichiers personnalisées](custom-step-details.md).

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


# Surveiller l'exécution du flux de
<a name="cloudwatch-workflow"></a>

Amazon CloudWatch surveille vos AWS ressources et les applications que vous exécutez AWS Cloud en temps réel. Vous pouvez utiliser Amazon CloudWatch pour collecter et suivre les métriques, qui sont des variables que vous pouvez mesurer pour vos flux de travail. Vous pouvez consulter les statistiques du flux de travail et les journaux consolidés à l'aide d'Amazon CloudWatch.

## CloudWatch journalisation pour un flux de travail
<a name="cloudwatch-workflow-logs"></a>

CloudWatch fournit un audit et une journalisation consolidés de la progression et des résultats du flux de travail.

**Afficher les CloudWatch journaux Amazon pour les flux de travail**

1. Ouvrez la CloudWatch console Amazon à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le volet de navigation de gauche, choisissez **Logs**, puis **Log groups**.

1. Sur la page **Groupes de journaux**, dans la barre de navigation, choisissez la région appropriée pour votre AWS Transfer Family serveur.

1. Choisissez le groupe de journaux correspondant à votre serveur.

   Par exemple, si l'ID de votre serveur est`s-1234567890abcdef0`, votre groupe de journaux l'est`/aws/transfer/s-1234567890abcdef0`.

1. Sur la page des détails du groupe de journaux de votre serveur, les flux de journaux les plus récents sont affichés. Il existe deux flux de log pour l'utilisateur que vous explorez : 
   + Un pour chaque session du protocole de transfert de fichiers (SFTP) Secure Shell (SSH).
   + Un pour le flux de travail en cours d'exécution pour votre serveur. Le format du flux de journal pour le flux de travail est`username.workflowID.uniqueStreamSuffix`.

   Par exemple, si votre utilisateur l'est`mary-major`, vous disposez des flux de journaux suivants :

   ```
   mary-major-east.1234567890abcdef0
   mary.w-abcdef01234567890.021345abcdef6789
   ```
**Note**  
 Les identifiants alphanumériques à 16 chiffres répertoriés dans cet exemple sont fictifs. Les valeurs que vous voyez sur Amazon CloudWatch sont différentes. 

La page **Enregistrer les événements** de `mary-major-usa-east.1234567890abcdef0` affiche les détails de chaque session utilisateur, et le flux de `mary.w-abcdef01234567890.021345abcdef6789` journal contient les détails du flux de travail. 

 Voici un exemple de flux de journal pour`mary.w-abcdef01234567890.021345abcdef6789`, basé sur un flux de travail (`w-abcdef01234567890`) contenant une étape de copie. 

```
{
    "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 métriques pour les flux de travail
<a name="cloudwatch-workflows-metrics"></a>

AWS Transfer Family fournit plusieurs mesures pour les flux de travail. Vous pouvez consulter les statistiques indiquant le nombre d'exécutions de flux de travail démarrées, terminées avec succès et échouées au cours de la minute précédente. Toutes les CloudWatch mesures relatives à Transfer Family sont décrites dans[Utilisation de CloudWatch métriques pour les serveurs Transfer Family](metrics.md).

# Création d'un flux de travail à partir d'un modèle
<a name="workflow-template"></a>

Vous pouvez déployer une CloudFormation pile qui crée un flux de travail et un serveur à partir d'un modèle. Cette procédure contient un exemple que vous pouvez utiliser pour déployer rapidement un flux de travail.

**Pour créer une CloudFormation pile qui crée un AWS Transfer Family flux de travail et un serveur**

1. Ouvrez la CloudFormation console à l'adresse [https://console.aws.amazon.com/cloudformation.](https://console.aws.amazon.com/cloudformation/)

1. Enregistrez le code suivant dans un fichier.

------
#### [ 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. Remplacez les éléments suivants par vos valeurs réelles.
   + Remplacez *`workflow-execution-role-arn`* par l'ARN d'un rôle d'exécution de flux de travail réel. Par exemple, `arn:aws:transfer:us-east-2:111122223333:workflow/w-1234567890abcdef0`
   + `arn:aws:lambda:region:account-id:function:function-name`Remplacez-le par l'ARN de votre fonction Lambda. Par exemple, `arn:aws:lambda:us-east-2:123456789012:function:example-lambda-idp`.

1. Suivez les instructions pour déployer une CloudFormation pile à partir d'un modèle existant dans la section [Sélection d'un modèle de pile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-console-create-stack-template.html) dans le *guide de AWS CloudFormation l'utilisateur*.

Une fois la pile déployée, vous pouvez consulter les détails la concernant dans l'onglet **Sorties** de la CloudFormation console. Le modèle crée un nouveau serveur AWS Transfer Family SFTP qui utilise des utilisateurs gérés par le service, ainsi qu'un nouveau flux de travail, et associe le flux de travail au nouveau serveur.

## Supprimer un flux de travail d'un serveur Transfer Family
<a name="remove-workflow-association"></a>

Si vous avez associé un flux de travail à un serveur Transfer Family et que vous souhaitez à présent supprimer cette association, vous pouvez le faire à l'aide de la console ou par programmation.

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

**Pour supprimer un flux de travail d'un serveur Transfer Family**

1. Ouvrez la AWS Transfer Family console à l'adresse [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Dans le volet de navigation de gauche, choisissez **Servers**.

1. Choisissez l'identifiant du serveur dans la colonne **ID du serveur**.

1. Sur la page de détails du serveur, faites défiler la page jusqu'à la section **Détails supplémentaires**, puis choisissez **Modifier**. 

1. Sur la page **Modifier les informations supplémentaires**, dans la section **Flux de travail gérés**, effacez les informations relatives à tous les paramètres :
   + Sélectionnez le tiret (-) dans la liste des flux de travail pour le **flux de travail pour les téléchargements complets de fichiers**.
   + Si ce n'est pas déjà fait, sélectionnez le tiret (-) dans la liste des flux de travail pour le **flux de travail pour les téléchargements partiels de fichiers**.
   +  Sélectionnez le tiret (-) dans la liste des rôles pour le **rôle d'exécution des flux de travail gérés**.

   Si vous ne voyez pas le tiret, faites défiler l'écran vers le haut jusqu'à ce qu'il apparaisse, car il s'agit de la première valeur de chaque menu.

   L'écran doit ressembler à ce qui suit.  
![\[Le volet des flux de travail gérés, qui affiche tous les paramètres effacés.\]](http://docs.aws.amazon.com/fr_fr/transfer/latest/userguide/images/workflows-remove-from-server.png)

1. Faites défiler l'écran vers le bas et choisissez **Enregistrer** pour enregistrer vos modifications.

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

Vous utilisez l'appel `update-server` (ou `UpdateServer` pour l'API) et vous fournissez des arguments vides pour les `OnPartialUpload` paramètres `OnUpload` et.

À partir de AWS CLI, exécutez la commande suivante :

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

Remplacez `your-server-id` par l'ID de votre serveur. Par exemple, si l'ID de votre serveur est`s-01234567890abcdef`, la commande est la suivante :

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

------

## Restrictions et limites des flux de travail gérés
<a name="limitations-workflow"></a>

**Restrictions**

Les restrictions suivantes s'appliquent actuellement aux flux de travail de traitement après le téléchargement pour AWS Transfer Family. 
+ Les AWS Lambda fonctions entre comptes et entre régions ne sont pas prises en charge. Vous pouvez toutefois effectuer des copies entre comptes, à condition que vos politiques Gestion des identités et des accès AWS (IAM) soient correctement configurées.
+ Pour toutes les étapes du flux de travail, tous les compartiments Amazon S3 auxquels le flux de travail accède doivent se trouver dans la même région que le flux de travail lui-même.
+ Pour une étape de déchiffrement, la destination de déchiffrement doit correspondre à la source pour la région et le magasin de sauvegarde (par exemple, si le fichier à déchiffrer est stocké dans Amazon S3, la destination spécifiée doit également se trouver dans Amazon S3).
+ Seules les étapes personnalisées asynchrones sont prises en charge.
+ Les délais d'expiration des étapes personnalisés sont approximatifs. En d'autres termes, le délai d'expiration peut prendre un peu plus de temps que ce qui est spécifié. De plus, le flux de travail dépend de la fonction Lambda. Par conséquent, si la fonction est retardée pendant son exécution, le flux de travail n'en est pas conscient.
+ Si vous dépassez votre limite de limitation, Transfer Family n'ajoute aucune opération de flux de travail à la file d'attente.
+ Les flux de travail ne sont pas initiés pour les fichiers dont la taille est égale à 0. Les fichiers dont la taille est supérieure à 0 initient le flux de travail associé.
+ Vous pouvez associer un flux de traitement de fichiers à un serveur Transfer Family qui utilise le AS2 protocole : toutefois, les AS2 messages n'exécutent pas les flux de travail attachés au serveur. 

**Limites**

 En outre, les limites fonctionnelles suivantes s'appliquent aux flux de travail de Transfer Family : 
+ Le nombre de flux de travail par région, par compte, est limité à 10.
+ Le délai maximum pour les étapes personnalisées est de 30 minutes.
+ Le nombre maximal d'étapes d'un flux de travail est de 8.
+ Le nombre maximum de balises par flux de travail est de 50.
+ Le nombre maximum d'exécutions simultanées contenant une étape de déchiffrement est de 250 par flux de travail.
+ Vous pouvez stocker un maximum de 3 clés privées PGP, par serveur Transfer Family, par utilisateur.
+ La taille maximale d'un fichier déchiffré est de 10 Go.
+ Nous limitons le nouveau taux d'exécution à l'aide d'un système de [bucket à jetons](https://en.wikipedia.org/wiki/Token_bucket) d'une capacité en rafale de 100 et d'un taux de recharge de 1.
+ Chaque fois que vous supprimez un flux de travail d'un serveur et que vous le remplacez par un nouveau, ou que vous mettez à jour la configuration du serveur (ce qui a un impact sur le rôle d'exécution d'un flux de travail), vous devez attendre environ 10 minutes avant d'exécuter le nouveau flux de travail. Le serveur Transfer Family met en cache les détails du flux de travail et met 10 minutes au serveur pour actualiser son cache.

  En outre, vous devez vous déconnecter de toutes les sessions SFTP actives, puis vous reconnecter après la période d'attente de 10 minutes pour voir les modifications.