

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# AWS Transfer Family flussi di lavoro gestiti
<a name="transfer-workflows"></a>

 AWS Transfer Family supporta flussi di lavoro gestiti per l'elaborazione dei file. Con i flussi di lavoro gestiti, è possibile avviare un flusso di lavoro dopo che un file è stato trasferito tramite SFTP, FTPS o FTP. Utilizzando questa funzionalità, è possibile soddisfare in modo sicuro ed economico i requisiti di conformità per gli scambi di file business-to-business (B2B) coordinando tutti i passaggi necessari per l'elaborazione dei file. Inoltre, beneficiate del end-to-end controllo e della visibilità.

![\[Diagramma di flusso che mostra in che modo i flussi di lavoro gestiti facilitano l'elaborazione dei file.\]](http://docs.aws.amazon.com/it_it/transfer/latest/userguide/images/workflows-diagram.png)


Orchestrando le attività di elaborazione dei file, i flussi di lavoro gestiti consentono di preelaborare i dati prima che vengano utilizzati dalle applicazioni downstream. Tali attività di elaborazione dei file potrebbero includere:
+ Spostamento di file in cartelle specifiche dell'utente.
+ Decrittografia dei file come parte di un flusso di lavoro.
+ Etichettatura dei file.
+ Esecuzione di un'elaborazione personalizzata creando e associando una AWS Lambda funzione a un flusso di lavoro.
+ Invio di notifiche quando un file è stato trasferito con successo. (Per un post sul blog che descrive in dettaglio questo caso d'uso, consulta [Personalizzare le notifiche di consegna dei file utilizzando flussi di lavoro AWS Transfer Family gestiti](https://aws.amazon.com/blogs/storage/customize-file-delivery-notifications-using-aws-transfer-family-managed-workflows/).)

Per replicare e standardizzare rapidamente le comuni attività di elaborazione dei file post-caricamento che coinvolgono più unità aziendali dell'organizzazione, è possibile implementare flussi di lavoro utilizzando l'infrastruttura come codice (IaC). È possibile specificare un flusso di lavoro gestito da avviare sui file caricati per intero. È inoltre possibile specificare un flusso di lavoro gestito diverso da avviare sui file caricati solo parzialmente a causa di una disconnessione prematura della sessione. La gestione integrata delle eccezioni consente di reagire rapidamente ai risultati dell'elaborazione dei file, offrendo al contempo il controllo sulla gestione degli errori. Inoltre, ogni fase del flusso di lavoro produce registri dettagliati, che è possibile controllare per tracciare la derivazione dei dati.

Per iniziare, esegui le seguenti attività:

1. Configura il flusso di lavoro in modo che contenga azioni di preelaborazione, come copia, etichettatura e altri passaggi in base alle tue esigenze. Per informazioni dettagliate, vedi [Crea un flusso di lavoro](create-workflow.md).

1. Configura un ruolo di esecuzione, che Transfer Family utilizza per eseguire il flusso di lavoro. Per informazioni dettagliate, vedi [Politiche IAM per i flussi di lavoro](workflow-execution-role.md).

1. Mappa il flusso di lavoro su un server, in modo che all'arrivo del file, le azioni specificate in questo flusso di lavoro vengano valutate e avviate in tempo reale. Per informazioni dettagliate, vedi [Configura ed esegui un flusso di lavoro](create-workflow.md#configure-workflow).

**Informazioni correlate**
+ Per monitorare le esecuzioni del flusso di lavoro, consulta. [Utilizzo CloudWatch delle metriche per i server Transfer Family](metrics.md)
+ Per i registri di esecuzione dettagliati e le informazioni sulla risoluzione dei problemi, vedere. [Risolvi gli errori relativi al flusso di lavoro utilizzando Amazon CloudWatch](workflow-issues.md#workflows-cloudwatch-errors)
+ Transfer Family offre un post sul blog e un workshop che ti guidano nella creazione di una soluzione per il trasferimento di file. Questa soluzione sfrutta gli SFTP/FTPS endpoint gestiti e Amazon Cognito e DynamoDB AWS Transfer Family per la gestione degli utenti. 

  Il post del blog è disponibile in [Utilizzo di Amazon Cognito come provider di identità con AWS Transfer Family Amazon S3](https://aws.amazon.com/blogs/storage/using-amazon-cognito-as-an-identity-provider-with-aws-transfer-family-and-amazon-s3/). [Puoi visualizzare i dettagli del workshop qui.](https://catalog.workshops.aws/transfer-family-sftp/en-US) 
+ Il video seguente fornisce una breve introduzione ai flussi di lavoro gestiti da 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)
+ [Il seguente workshop offre laboratori pratici per creare flussi di lavoro completamente automatizzati e basati sugli eventi che prevedono il trasferimento di file da o verso server SFTP esterni ad Amazon S3 e la comune pre- e post-elaborazione di tali file: workshop MFT basato sugli eventi.](https://catalog.us-east-1.prod.workshops.aws/workshops/e55c90e0-bbb0-47e1-be83-6bafa3a59a8a/en-US)

  Questo video fornisce una panoramica di questo workshop.  
[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/oojopisG4lA/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/oojopisG4lA)

**Topics**
+ [Crea un flusso di lavoro](create-workflow.md)
+ [Utilizza passaggi predefiniti](nominal-steps-workflow.md)
+ [Utilizza passaggi di elaborazione dei file personalizzati](custom-step-details.md)
+ [Politiche IAM per i flussi di lavoro](workflow-execution-role.md)
+ [Gestione delle eccezioni per un flusso di lavoro](#exception-workflow)
+ [Monitora l'esecuzione del workflow](cloudwatch-workflow.md)
+ [Creare un flusso di lavoro da un modello](workflow-template.md)
+ [Rimuovere un flusso di lavoro da un server Transfer Family](#remove-workflow-association)
+ [Restrizioni e limitazioni dei flussi di lavoro gestiti](#limitations-workflow)

Per ulteriori informazioni su come iniziare a utilizzare i flussi di lavoro gestiti, consulta le seguenti risorse: 
+ [AWS Transfer Family video dimostrativo sui flussi di lavoro gestiti](https://www.youtube.com/watch?v=t-iNqCRospw)
+ [Creazione di una piattaforma di trasferimento file nativa per il cloud utilizzando AWS Transfer Family](https://aws.amazon.com/blogs/architecture/building-a-cloud-native-file-transfer-platform-using-aws-transfer-family-workflows/) i flussi di lavoro (post sul blog)

# Crea un flusso di lavoro
<a name="create-workflow"></a>

È possibile creare un flusso di lavoro gestito utilizzando Console di gestione AWS, come descritto in questo argomento. Per rendere il processo di creazione del flusso di lavoro il più semplice possibile, sono disponibili pannelli di aiuto contestuali per la maggior parte delle sezioni della console.

Un flusso di lavoro prevede due tipi di passaggi:
+ Passaggi **nominali: i passaggi** nominali sono passaggi di elaborazione dei file che si desidera applicare ai file in entrata. Se si seleziona più di un passaggio nominale, ogni passaggio viene elaborato in una sequenza lineare.
+ Fasi **di gestione delle eccezioni: i gestori delle eccezioni sono fasi** di elaborazione dei file che vengono AWS Transfer Family eseguite nel caso in cui alcuni passaggi nominali falliscano o causino errori di convalida.

**Crea un flusso di lavoro**

1. Apri la AWS Transfer Family console all'indirizzo [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Nel riquadro di navigazione a sinistra, scegli **Flussi di lavoro**.

1. Nella pagina **Flussi di lavoro**, scegli **Crea** flusso di lavoro.

1. Nella pagina **Crea flusso di lavoro**, inserisci una descrizione. Questa descrizione viene visualizzata nella pagina **Flussi di lavoro**.

1. Nella sezione **Passaggi nominali**, scegli **Aggiungi** passaggio. Aggiungi uno o più passaggi.

   1. Scegli un tipo di passaggio tra le opzioni disponibili. Per ulteriori informazioni sui vari tipi di fasi, vedere[Utilizza passaggi predefiniti](nominal-steps-workflow.md).

   1. Scegli **Avanti**, quindi configura i parametri per la fase. 

   1. Scegli **Avanti**, quindi esamina i dettagli del passaggio. 

   1. Scegli **Crea passaggio** per aggiungere il passaggio e continuare.

   1. Continua ad aggiungere i passaggi necessari. Il numero massimo di passaggi in un flusso di lavoro è 8.

   1. **Dopo aver aggiunto tutti i passaggi nominali necessari, scorri verso il basso fino alla sezione **Gestori delle eccezioni — *opzionale*** e scegli Aggiungi passaggio.** 
**Nota**  
Per essere informati degli errori in tempo reale, ti consigliamo di configurare i gestori delle eccezioni e i passaggi da eseguire in caso di errore del flusso di lavoro.

1. Per configurare i gestori delle eccezioni, aggiungi i passaggi nello stesso modo descritto in precedenza. Se un file fa sì che un passaggio generi un'eccezione, i gestori delle eccezioni vengono richiamati uno per uno. 

1. (Facoltativo) Scorri verso il basso fino alla sezione **Tag** e aggiungi tag per il tuo flusso di lavoro.

1. Controlla la configurazione e scegli **Crea flusso di lavoro**. 
**Importante**  
Dopo aver creato un flusso di lavoro, non puoi modificarlo, quindi assicurati di rivedere attentamente la configurazione.

## Configura ed esegui un flusso di lavoro
<a name="configure-workflow"></a>

Prima di poter eseguire un flusso di lavoro, è necessario associarlo a un server Transfer Family.

**Per configurare Transfer Family per eseguire un flusso di lavoro sui file caricati**

1. Apri la AWS Transfer Family console all'indirizzo [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Nel riquadro di navigazione a sinistra, scegli **Server**. 
   + Per aggiungere il flusso di lavoro a un server esistente, scegli il server che desideri utilizzare per il flusso di lavoro.
   + In alternativa, crea un nuovo server e aggiungici il flusso di lavoro. Per ulteriori informazioni, consulta [Configurazione di un endpoint server SFTP, FTPS o FTP](tf-server-endpoint.md).

1. Nella pagina dei dettagli del server, scorri verso il basso fino alla sezione **Dettagli aggiuntivi**, quindi scegli **Modifica**. 
**Nota**  
 Per impostazione predefinita, ai server non è associato alcun flusso di lavoro. La sezione **Dettagli aggiuntivi** viene utilizzata per associare un flusso di lavoro al server selezionato. 

1. Nella pagina **Modifica dettagli aggiuntivi**, nella sezione **Flussi di lavoro gestiti**, seleziona un flusso di lavoro da eseguire su tutti i caricamenti.
**Nota**  
Se non disponi già di un flusso di lavoro, scegli **Crea un nuovo flusso di lavoro** per crearne uno.

   1. Scegli l'ID del flusso di lavoro da utilizzare. 

   1. Scegli un ruolo di esecuzione. Questo è il ruolo che Transfer Family assume durante l'esecuzione dei passaggi del flusso di lavoro. Per ulteriori informazioni, consulta [Politiche IAM per i flussi di lavoro](workflow-execution-role.md). Scegli **Save** (Salva).  
![\[La schermata Flussi di lavoro gestiti, che mostra i valori per il flusso di lavoro e il ruolo di esecuzione.\]](http://docs.aws.amazon.com/it_it/transfer/latest/userguide/images/workflows-addtoserver.png)

**Nota**  
Se non desideri più associare un flusso di lavoro al server, puoi rimuovere l'associazione. Per informazioni dettagliate, vedi [Rimuovere un flusso di lavoro da un server Transfer Family](transfer-workflows.md#remove-workflow-association).

**Per eseguire un flusso di lavoro**

Per eseguire un flusso di lavoro, carichi un file su un server Transfer Family configurato con un flusso di lavoro associato.

**Nota**  
Ogni volta che rimuovi un flusso di lavoro da un server e lo sostituisci con uno nuovo o aggiorni la configurazione del server (che influisce sul ruolo di esecuzione di un flusso di lavoro), devi attendere circa 10 minuti prima di eseguire il nuovo flusso di lavoro. Il server Transfer Family memorizza nella cache i dettagli del flusso di lavoro e il server impiega 10 minuti per aggiornare la cache.  
Inoltre, è necessario disconnettersi da tutte le sessioni SFTP attive e quindi riconnettersi dopo il periodo di attesa di 10 minuti per visualizzare le modifiche.

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

Dopo che il file è stato caricato, l'azione definita viene eseguita sul file. Ad esempio, se il flusso di lavoro contiene una fase di copia, il file viene copiato nella posizione definita in quel passaggio. Puoi utilizzare Amazon CloudWatch Logs per tenere traccia dei passaggi eseguiti e del loro stato di esecuzione.

## Visualizza i dettagli del flusso di lavoro
<a name="view-details-workflow"></a>

È possibile visualizzare i dettagli sui flussi di lavoro creati in precedenza o sulle esecuzioni dei flussi di lavoro. Per visualizzare questi dettagli, puoi utilizzare la console o AWS Command Line Interface ()AWS CLI. 

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

**Visualizza i dettagli del flusso di lavoro**

1. Apri la AWS Transfer Family console all'indirizzo [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Nel riquadro di navigazione a sinistra, scegli **Flussi di lavoro**. 

1. Nella pagina **Flussi di lavoro**, scegli un flusso di lavoro. 

   Viene visualizzata la pagina dei dettagli del flusso di lavoro.   
![\[La schermata dettagliata di Workflows per un flusso di lavoro Transfer Family, che mostra la descrizione, i passaggi, i gestori delle eccezioni e le esecuzioni in corso.\]](http://docs.aws.amazon.com/it_it/transfer/latest/userguide/images/workflows-overview.png)

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

Per visualizzare i dettagli del flusso di lavoro, utilizzate il comando `describe-workflow` CLI, come illustrato nell'esempio seguente. Sostituisci l'ID del flusso di lavoro `w-1234567890abcdef0` con il tuo valore. *Per ulteriori informazioni, consulta [describe-workflow](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transfer/describe-workflow.html) nel Command Reference.AWS CLI *

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

------

[Se il flusso di lavoro è stato creato come parte di uno AWS CloudFormation stack, puoi gestirlo utilizzando la CloudFormation console (/cloudformation). https://console.aws.amazon.com](https://console.aws.amazon.com/cloudformation/)

![\[La schermata dei dettagli dei flussi di lavoro per un flusso di lavoro che fa parte di uno AWS CloudFormation stack, che mostra il messaggio in cui gestisci questo flusso di lavoro. CloudFormation\]](http://docs.aws.amazon.com/it_it/transfer/latest/userguide/images/workflows-cloudformation-link.png)


# Utilizza passaggi predefiniti
<a name="nominal-steps-workflow"></a>

Quando crei un flusso di lavoro, puoi scegliere di aggiungere uno dei seguenti passaggi predefiniti descritti in questo argomento. Puoi anche scegliere di aggiungere fasi personalizzate di elaborazione dei file. Per ulteriori informazioni, consulta [Utilizza passaggi di elaborazione dei file personalizzati](custom-step-details.md).

**Topics**
+ [Copia il file](#copy-step-details)
+ [Decrittografa il file](#decrypt-step-details)
+ [Tag: file](#tag-step-details)
+ [Eliminare il file](#delete-step-details)
+ [Variabili denominate per i flussi di lavoro](#workflow-named-variables)
+ [Esempio di workflow di etichettatura ed eliminazione](#sourcefile-workflow)

## Copia il file
<a name="copy-step-details"></a>

Una fase di copia del file crea una copia del file caricato in una nuova posizione Amazon S3. Attualmente, puoi utilizzare una fase di copia del file solo con Amazon S3.

La seguente fase di copia del file copia i file nella `test` cartella in*amzn-s3-demo-destination-bucket*. 

Se la fase di copia del file non è la prima fase del flusso di lavoro, puoi specificare la **posizione del file**. Specificando la posizione del file, è possibile copiare il file utilizzato nel passaggio precedente o il file originale caricato. È possibile utilizzare questa funzione per creare più copie del file originale mantenendo intatto il file di origine per l'archiviazione dei file e la conservazione dei record. Per vedere un esempio, consulta [Esempio di workflow di etichettatura ed eliminazione](#sourcefile-workflow).

![\[Schermata del flusso di lavoro con Copia il file creato dal passaggio precedente... pulsante selezionato.\]](http://docs.aws.amazon.com/it_it/transfer/latest/userguide/images/workflows-step-copy.png)


### Fornisci il bucket e i dettagli chiave
<a name="copy-provide-bucket"></a>

È necessario fornire il nome del bucket e una chiave per la destinazione della fase di copia del file. La chiave può essere un nome di percorso o un nome di file. Il fatto che la chiave venga considerata come un nome di percorso o un nome di file dipende dal fatto che terminiate la chiave con il carattere forward slash (`/`).

Se il carattere finale è`/`, il file viene copiato nella cartella e il suo nome non cambia. Se il carattere finale è alfanumerico, il file caricato viene rinominato con il valore chiave. In questo caso, se esiste già un file con quel nome, il comportamento dipende dall'impostazione del campo **Sovrascrivi** esistente.
+ Se è selezionato **Sovrascrivi esistente**, il file esistente viene sostituito con il file in fase di elaborazione.
+ Se l'opzione **Sovrascrivi esistente** non è selezionata, non succede nulla e l'elaborazione del flusso di lavoro si interrompe.
**Suggerimento**  
Se le scritture simultanee vengono eseguite sullo stesso percorso del file, è possibile che si verifichi un comportamento imprevisto durante la sovrascrittura dei file.

Ad esempio, se il valore chiave è`test/`, i file caricati vengono copiati nella cartella. `test` Se il valore della chiave è`test/today`, (e l'opzione **Sovrascrivi esistente** è selezionata) ogni file caricato viene copiato in un file denominato `today` nella `test` cartella e ogni file successivo sovrascrive quello precedente.

**Nota**  
Amazon S3 supporta i bucket e gli oggetti e non sono presenti gerarchie. Tuttavia, puoi utilizzare prefissi e delimitatori nei nomi delle chiavi degli oggetti per creare una gerarchia e organizzare i dati in modo simile alle cartelle.

### Utilizzate una variabile denominata in una fase di copia del file
<a name="named-variable-copy"></a>

In una fase di copia del file, è possibile utilizzare una variabile per copiare dinamicamente i file in cartelle specifiche dell'utente. Attualmente, puoi utilizzare `${transfer:UserName}` or `${transfer:UploadDate}` come variabile per copiare i file in una posizione di destinazione per un determinato utente che sta caricando i file o in base alla data corrente.

Nell'esempio seguente, se l'utente `richard-roe` carica un file, questo viene copiato nella cartella. `amzn-s3-demo-destination-bucket/richard-roe/processed/` Se l'utente `mary-major` carica un file, questo viene copiato nella cartella. `amzn-s3-demo-destination-bucket/mary-major/processed/`

![\[Schermata dei parametri per una fase di copia, che mostra il bucket e la chiave, parametrizzata utilizzando. UserName\]](http://docs.aws.amazon.com/it_it/transfer/latest/userguide/images/workflows-step-copy-dynamic.png)


Allo stesso modo, è possibile utilizzarli `${transfer:UploadDate}` come variabile per copiare i file in una posizione di destinazione denominata in base alla data corrente. Nell'esempio seguente, se impostate la destinazione `${transfer:UploadDate}/processed` sul 1° febbraio 2022, i file caricati vengono copiati nella `amzn-s3-demo-destination-bucket/2022-02-01/processed/` cartella.

![\[Schermata dei parametri per una fase di copia, che mostra il bucket e la chiave, parametrizzati utilizzando. UploadDate\]](http://docs.aws.amazon.com/it_it/transfer/latest/userguide/images/workflows-step-copy-dynamic-date.png)


È inoltre possibile utilizzare entrambe queste variabili insieme, combinandone le funzionalità. Ad esempio, è possibile impostare il **prefisso della chiave di destinazione** su**folder/\$1\$1transfer:UserName\$1/\$1\$1transfer:UploadDate\$1/**, che creerebbe ad esempio cartelle annidate. `folder/marymajor/2023-01-05/`

### Autorizzazioni IAM per la fase di copia
<a name="copy-step-iam"></a>

Per consentire il completamento di una fase di copia, assicurati che il ruolo di esecuzione per il tuo flusso di lavoro contenga le seguenti autorizzazioni.

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

**Nota**  
L'`s3:ListBucket`autorizzazione è necessaria solo se non si seleziona **Sovrascrivi esistente**. Questa autorizzazione controlla il tuo bucket per vedere se esiste già un file con lo stesso nome. Se hai selezionato **Sovrascrivi esistente**, non è necessario che il flusso di lavoro verifichi la presenza del file e può semplicemente scriverlo.  
Se i tuoi file Amazon S3 hanno tag, devi aggiungere una o due autorizzazioni alla tua policy IAM.  
Aggiungi `s3:GetObjectTagging` per un file Amazon S3 senza versione.
Aggiungi `s3:GetObjectVersionTagging` per un file Amazon S3 con versione.

## Decrittografa il file
<a name="decrypt-step-details"></a>

Il blog AWS sullo storage ha un post che descrive come decrittografare semplicemente i file senza scrivere alcun codice utilizzando i flussi di lavoro Transfer Family Managed, [crittografare e decrittografare i file con PGP e](https://aws.amazon.com/blogs/storage/encrypt-and-decrypt-files-with-pgp-and-aws-transfer-family/). AWS Transfer Family

### Algoritmi di crittografia simmetrica supportati
<a name="symmetric-algorithms"></a>

Per la decrittografia PGP, Transfer Family supporta algoritmi di crittografia simmetrica utilizzati per crittografare i dati effettivi dei file all'interno dei file PGP.
+ Per informazioni dettagliate sugli algoritmi di crittografia simmetrica supportati, vedere. [Algoritmi di crittografia simmetrica PGP](key-management.md#pgp-symmetric-algorithms)
+ Per informazioni sugli algoritmi di key pair PGP utilizzati con questi algoritmi simmetrici, vedere. [Algoritmi di key pair PGP](key-management.md#pgp-key-algorithms)

### Usa la decrittografia PGP nel tuo flusso di lavoro
<a name="configure-decryption"></a>

Transfer Family ha il supporto integrato per la decrittografia Pretty Good Privacy (PGP). Puoi utilizzare la decrittografia PGP su file caricati tramite SFTP, FTPS o FTP su Amazon Simple Storage Service (Amazon S3) o Amazon Elastic File System (Amazon EFS). 

Per utilizzare la decrittografia PGP, devi creare e archiviare le chiavi private PGP che verranno utilizzate per la decrittografia dei tuoi file. I tuoi utenti possono quindi crittografare i file utilizzando le chiavi di crittografia PGP corrispondenti prima di caricare i file sul server Transfer Family. Dopo aver ricevuto i file crittografati, puoi decrittografarli nel tuo flusso di lavoro. Per un tutorial dettagliato, consulta [Configurazione di un flusso di lavoro gestito per la decrittografia di un file](workflow-decrypt-tutorial.md).

Per informazioni sugli algoritmi PGP supportati e sui consigli, consulta. [Algoritmi di crittografia e decrittografia PGP](key-management.md#pgp-encryption-algorithms)

**Per utilizzare la decrittografia PGP nel flusso di lavoro**

1. Identifica un server Transfer Family per ospitare il tuo flusso di lavoro o creane uno nuovo. È necessario disporre dell'ID del server prima di poter memorizzare le chiavi PGP Gestione dei segreti AWS con il nome segreto corretto.

1. Memorizza la tua chiave PGP Gestione dei segreti AWS con il nome segreto richiesto. Per informazioni dettagliate, vedi [Gestire le chiavi PGP](manage-pgp-keys.md). I flussi di lavoro possono individuare automaticamente la chiave PGP corretta da utilizzare per la decrittografia in base al nome segreto in Secrets Manager.
**Nota**  
Quando memorizzi segreti in Secrets Manager, ti vengono Account AWS addebitati dei costi. Per informazioni sui prezzi, consulta [Gestione dei segreti AWS Pricing](https://aws.amazon.com/secrets-manager/pricing).

1. Crittografa un file usando la tua coppia di chiavi PGP. (Per un elenco dei client supportati, consulta.) [Client PGP supportati](pgp-key-clients.md) Se stai usando la riga di comando, esegui il comando seguente. Per usare questo comando, sostituiscilo `username@example.com` con l'indirizzo email che hai usato per creare la coppia di key pair PGP. Sostituisci `testfile.txt` con il nome del file che desideri crittografare. 

   ```
   gpg -e -r username@example.com testfile.txt
   ```
**Importante**  
Quando crittografate i file per utilizzarli con i AWS Transfer Family flussi di lavoro, assicuratevi sempre di specificare un destinatario non anonimo utilizzando il parametro. `-r` La crittografia anonima (senza specificare un destinatario) può causare errori di decrittografia nel flusso di lavoro perché il sistema non sarà in grado di identificare quale chiave utilizzare per la decrittografia. Le informazioni di debug relative a questo problema sono disponibili all'indirizzo. [Risolvi i problemi di crittografia dei destinatari anonimi](workflow-issues.md#workflows-decrypt-anonymous) 

1. Carica il file crittografato sul tuo server Transfer Family.

1. Configura una fase di decrittografia nel tuo flusso di lavoro. Per ulteriori informazioni, consulta [Aggiungi una fase di decrittografia](#decrypt-step-procedure).

### Aggiungi una fase di decrittografia
<a name="decrypt-step-procedure"></a>

Una fase di decrittografia decrittografa un file crittografato che è stato caricato su Amazon S3 o Amazon EFS come parte del tuo flusso di lavoro. Per dettagli sulla configurazione della decrittografia, consulta. [Usa la decrittografia PGP nel tuo flusso di lavoro](#configure-decryption)

Quando si crea la fase di decrittografia per un flusso di lavoro, è necessario specificare la destinazione dei file decrittografati. È inoltre necessario selezionare se sovrascrivere i file esistenti se un file esiste già nella posizione di destinazione. Puoi monitorare i risultati del flusso di lavoro di decrittografia e ottenere log di controllo per ogni file in tempo reale utilizzando Amazon Logs. CloudWatch 

**Dopo aver scelto il tipo di **file Decrypt** per il passaggio, viene visualizzata la pagina Configura parametri.** Inserisci i valori per la sezione **Configura i parametri di decrittografia PGP.**

Le opzioni disponibili sono le seguenti:
+ **Nome della fase**: immettere un nome descrittivo per la fase.
+ **Posizione del file**: specificando la posizione del file, è possibile decrittografare il file utilizzato nel passaggio precedente o il file originale caricato. 
**Nota**  
Questo parametro non è disponibile se questo passaggio è il primo passaggio del flusso di lavoro.
+ **Destinazione per i file decrittografati**: scegli un bucket Amazon S3 o un file system Amazon EFS come destinazione per il file decrittografato.
  + Se scegli Amazon S3, devi fornire un nome del bucket di destinazione e un prefisso della chiave di destinazione. Per parametrizzare il prefisso della chiave di destinazione in base al nome utente, **\$1\$1transfer:UserName\$1** immettete Destination **key** prefix. Analogamente, per parametrizzare il prefisso della chiave di destinazione in base alla data di caricamento, **\$1\$1Transfer:UploadDate\$1** immettete Destination **key** prefix.
  + Se scegli Amazon EFS, devi fornire un file system e un percorso di destinazione.
**Nota**  
L'opzione di archiviazione scelta qui deve corrispondere al sistema di storage utilizzato dal server Transfer Family a cui è associato questo flusso di lavoro. In caso contrario, riceverai un errore quando tenterai di eseguire questo flusso di lavoro.
+ **Sovrascrivi file esistenti**: se carichi un file e nella destinazione esiste già un file con lo stesso nome, il comportamento dipende dall'impostazione di questo parametro:
  + Se si seleziona **Sovrascrivi esistente**, il file esistente viene sostituito con il file in fase di elaborazione.
  + Se l'opzione **Sovrascrivi esistente** non è selezionata, non succede nulla e l'elaborazione del flusso di lavoro si interrompe.
**Suggerimento**  
Se le scritture simultanee vengono eseguite sullo stesso percorso del file, è possibile che si verifichi un comportamento imprevisto durante la sovrascrittura dei file.

La schermata seguente mostra un esempio delle opzioni che è possibile scegliere per la fase di decrittografia del file. 

![\[La AWS Transfer Family console, che mostra la sezione Configura i parametri di decrittografia PGP con valori di esempio.\]](http://docs.aws.amazon.com/it_it/transfer/latest/userguide/images/workflows-step-decrypt-details.png)


### Autorizzazioni IAM per la fase di decrittografia
<a name="decrypt-step-iam"></a>

Per consentire il successo di una fase di decrittografia, assicurati che il ruolo di esecuzione per il tuo flusso di lavoro contenga le seguenti autorizzazioni.

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

**Nota**  
**L'`s3:ListBucket`autorizzazione è necessaria solo se non si seleziona Sovrascrivi esistente.** Questa autorizzazione controlla il tuo bucket per vedere se esiste già un file con lo stesso nome. Se hai selezionato **Sovrascrivi esistente**, non è necessario che il flusso di lavoro verifichi la presenza del file e può semplicemente scriverlo.  
Se i tuoi file Amazon S3 hanno tag, devi aggiungere una o due autorizzazioni alla tua policy IAM.  
Aggiungi `s3:GetObjectTagging` per un file Amazon S3 senza versione.
Aggiungi `s3:GetObjectVersionTagging` per un file Amazon S3 con versione.

## Tag: file
<a name="tag-step-details"></a>

Per etichettare i file in arrivo per un'ulteriore elaborazione a valle, utilizzate un passaggio di tag. Immettete il valore del tag che desiderate assegnare ai file in arrivo. Attualmente, l'operazione di tag è supportata solo se utilizzi Amazon S3 per lo storage del server Transfer Family.

Il seguente esempio di tag step assegna `scan_outcome` e `clean` come tag, rispettivamente, la chiave e il valore.

![\[Schermata dei flussi di lavoro che mostra i dettagli di una fase di etichettatura.\]](http://docs.aws.amazon.com/it_it/transfer/latest/userguide/images/workflows-step-tag.png)


Per consentire il completamento di una fase di tag, assicurati che il ruolo di esecuzione per il tuo flusso di lavoro contenga le seguenti autorizzazioni.

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

**Nota**  
Se il flusso di lavoro contiene un'istruzione di tag che viene eseguita prima di una fase di copia o decrittografia, devi aggiungere una o due autorizzazioni alla tua policy IAM.  
Aggiungi `s3:GetObjectTagging` per un file Amazon S3 senza versione.
Aggiungi `s3:GetObjectVersionTagging` per un file Amazon S3 con versione.

## Eliminare il file
<a name="delete-step-details"></a>

Per eliminare un file elaborato da una fase precedente del flusso di lavoro o per eliminare il file originariamente caricato, utilizzate un passaggio di eliminazione del file.

![\[Schermata dei flussi di lavoro che mostra i dettagli di una fase di eliminazione.\]](http://docs.aws.amazon.com/it_it/transfer/latest/userguide/images/workflows-step-delete.png)


Per consentire il completamento di un passaggio di eliminazione, assicurati che il ruolo di esecuzione per il tuo flusso di lavoro contenga le seguenti autorizzazioni.

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

## Variabili denominate per i flussi di lavoro
<a name="workflow-named-variables"></a>

Per le fasi di copia e decrittografia, puoi utilizzare una variabile per eseguire azioni in modo dinamico. Attualmente, AWS Transfer Family supporta le seguenti variabili denominate.
+ Consente `${transfer:UserName}` di copiare o decrittografare i file in una destinazione in base all'utente che carica i file.
+ `${transfer:UploadDate}`Da utilizzare per copiare o decrittografare i file in una posizione di destinazione in base alla data corrente.

## Esempio di workflow di etichettatura ed eliminazione
<a name="sourcefile-workflow"></a>

L'esempio seguente illustra un flusso di lavoro che contrassegna i file in entrata che devono essere elaborati da un'applicazione a valle, ad esempio una piattaforma di analisi dei dati. Dopo aver taggato il file in arrivo, il flusso di lavoro elimina quindi il file originariamente caricato per risparmiare sui costi di archiviazione.

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

**Esempio di flusso di lavoro con tag e spostamento**

1. Apri la AWS Transfer Family console all'indirizzo [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Nel riquadro di navigazione a sinistra, scegli **Flussi di lavoro**.

1. Nella pagina **Flussi di lavoro**, scegli **Crea** flusso di lavoro.

1. Nella pagina **Crea flusso di lavoro**, inserisci una descrizione. Questa descrizione viene visualizzata nella pagina **Flussi di lavoro**.

1. Aggiungi il primo passaggio (copia).

   1. Nella sezione **Passaggi nominali**, scegli **Aggiungi passaggio**.

   1. Scegli **Copia file**, quindi scegli **Avanti**.

   1. Inserisci un nome per la fase, quindi seleziona un bucket di destinazione e un key prefix.  
![\[Schermata dei flussi di lavoro che mostra i dettagli per una fase di copia, il bucket di destinazione e il prefisso del tasto.\]](http://docs.aws.amazon.com/it_it/transfer/latest/userguide/images/workflows-step-copy-first-step.png)

   1. Scegli **Avanti**, quindi esamina i dettagli del passaggio. 

   1. Scegli **Crea passaggio** per aggiungere il passaggio e continuare.

1. Aggiungi il secondo passaggio (tag).

   1. Nella sezione **Passaggi nominali**, scegli **Aggiungi passaggio**.

   1. Scegli **Tag file**, quindi scegli **Avanti**.

   1. Inserisci un nome per la fase.

   1. In **Posizione del file**, seleziona **Etichetta il file creato nel passaggio precedente**.

   1. Inserisci una **Key** (chiave) e un **Value** (valore).  
![\[La schermata di configurazione per una fase del flusso di lavoro di etichettatura, con il pulsante di opzione Tagga il file creato dal passaggio precedente selezionato.\]](http://docs.aws.amazon.com/it_it/transfer/latest/userguide/images/workflows-step-tag.png)

   1. Scegli **Avanti**, quindi esamina i dettagli del passaggio. 

   1. Scegli **Crea passaggio** per aggiungere il passaggio e continuare.

1. Aggiungi il terzo passaggio (elimina).

   1. Nella sezione **Passaggi nominali**, scegli **Aggiungi passaggio**.

   1. Scegli **Elimina file**, quindi scegli **Avanti**.  
![\[La schermata di configurazione per una fase di eliminazione del flusso di lavoro, con il pulsante di opzione Elimina il file sorgente originale selezionato.\]](http://docs.aws.amazon.com/it_it/transfer/latest/userguide/images/workflows-step-delete.png)

   1. Immettete il nome di una fase.

   1. Per **Posizione del file**, seleziona **Elimina il file sorgente originale**.

   1. Scegli **Avanti**, quindi esamina i dettagli del passaggio. 

   1. Scegli **Crea passaggio** per aggiungere il passaggio e continuare.

1. Rivedi la configurazione del flusso di lavoro, quindi scegli **Crea flusso di lavoro**. 

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

**Esempio di workflow di tag e spostamento**

1. Salva il codice seguente in un file; ad esempio,`tagAndMoveWorkflow.json`. Sostituisci ogni `user input placeholder` con le tue informazioni. 

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

   Il primo passaggio copia il file caricato in una nuova posizione Amazon S3. Il secondo passaggio aggiunge un tag (coppia chiave-valore) al file (`previous.file`) che è stato copiato nella nuova posizione. Infine, il terzo passaggio elimina il file originale (). `original.file`

1. Crea un flusso di lavoro dal file salvato. Sostituisci ogni `user input placeholder` con le tue informazioni.

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

   Esempio: 

   ```
   aws transfer create-workflow --description "copy-tag-delete workflow" --steps file://tagAndMoveWorkflow.json --region us-east-1
   ```
**Nota**  
Per maggiori dettagli sull'utilizzo dei file per caricare i parametri, vedete [Come caricare i parametri da un file](https://docs.aws.amazon.com//cli/latest/userguide/cli-usage-parameters-file.html).

1. Aggiorna un server esistente.
**Nota**  
Questo passaggio presuppone che tu disponga già di un server Transfer Family e desideri associarvi un flusso di lavoro. In caso contrario, vedi[Configurazione di un endpoint server SFTP, FTPS o FTP](tf-server-endpoint.md). Sostituisci ogni `user input placeholder` con le tue informazioni.

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

   Esempio:

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

------

# Utilizza passaggi di elaborazione dei file personalizzati
<a name="custom-step-details"></a>

Utilizzando una fase di elaborazione dei file personalizzata, è possibile utilizzare la logica di elaborazione dei file Bring Your Own. AWS Lambda All'arrivo dei file, un server Transfer Family richiama una funzione Lambda che contiene una logica di elaborazione dei file personalizzata, come la crittografia dei file, la scansione alla ricerca di malware o il controllo dei tipi di file errati. Nell'esempio seguente, la AWS Lambda funzione target viene utilizzata per elaborare il file di output del passaggio precedente.

![\[La schermata del passaggio personalizzato, con il pulsante di opzione Applica elaborazione personalizzata al file creato dal passaggio precedente selezionato e una funzione Lambda visualizzata nel campo Target.\]](http://docs.aws.amazon.com/it_it/transfer/latest/userguide/images/workflows-step-custom.png)


**Nota**  
Per un esempio di funzione Lambda, consulta [Esempio di funzione Lambda per una fase del flusso di lavoro personalizzata](#example-workflow-lambda). Ad esempio eventi (inclusa la posizione dei file passati in Lambda), vedi. [Eventi di esempio inviati al AWS Lambda momento del caricamento del file](#example-workflow-lambdas)

Con una fase del flusso di lavoro personalizzata, è necessario configurare la funzione Lambda per richiamare l'operazione [SendWorkflowStepState](https://docs.aws.amazon.com/transfer/latest/APIReference/API_SendWorkflowStepState.html)API. `SendWorkflowStepState`notifica all'esecuzione del flusso di lavoro che il passaggio è stato completato con uno stato di successo o di errore. Lo stato dell'operazione `SendWorkflowStepState` API richiama un passaggio del gestore delle eccezioni o un passaggio nominale nella sequenza lineare, in base al risultato della funzione Lambda. 

Se la funzione Lambda fallisce o scade, il passaggio ha esito negativo e lo vedi `StepErrored` nei log. CloudWatch Se la funzione Lambda fa parte del passaggio nominale e la funzione risponde `SendWorkflowStepState` con `Status="FAILURE"` o scade, il flusso continua con i passaggi del gestore delle eccezioni. In questo caso, il flusso di lavoro non continua a eseguire i passaggi nominali rimanenti (se presenti). Per ulteriori dettagli, consultare [Gestione delle eccezioni per un flusso di lavoro](transfer-workflows.md#exception-workflow).

Quando si chiama l'operazione `SendWorkflowStepState` API, è necessario inviare i seguenti parametri:

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

È possibile estrarre il `ExecutionId``Token`, e `WorkflowId` dall'evento di input che viene passato quando viene eseguita la funzione Lambda (gli esempi sono mostrati nelle sezioni seguenti). Il `Status` valore può essere o. `SUCCESS` `FAILURE` 

Per poter richiamare l'operazione `SendWorkflowStepState` API dalla funzione Lambda, è necessario utilizzare una versione dell' AWS SDK pubblicata dopo l'introduzione dei flussi di [lavoro gestiti](doc-history.md#workflows-introduced).

## Utilizzo consecutivo di più funzioni Lambda
<a name="multiple-lambdas"></a>

Quando si utilizzano più passaggi personalizzati uno dopo l'altro, l'opzione **Posizione del file** funziona in modo diverso rispetto all'utilizzo di un solo passaggio personalizzato. Transfer Family non supporta il trasferimento del file elaborato da Lambda per utilizzarlo come input del passaggio successivo. Quindi, se avete più passaggi personalizzati tutti configurati per utilizzare l'`previous.file`opzione, tutti utilizzano la stessa posizione del file (la posizione del file di input per il primo passaggio personalizzato).

**Nota**  
L'`previous.file`impostazione funziona in modo diverso anche se si dispone di un passaggio predefinito (etichettare, copiare, decrittografare o eliminare) dopo un passaggio personalizzato. Se il passaggio predefinito è configurato per utilizzare l'`previous.file`impostazione, il passaggio predefinito utilizza lo stesso file di input utilizzato dal passaggio personalizzato. Il file elaborato dal passaggio personalizzato non viene passato al passaggio predefinito. 

## Accesso a un file dopo l'elaborazione personalizzata
<a name="process-uploaded-file"></a>

Se utilizzi Amazon S3 come storage e se il tuo flusso di lavoro include un passaggio personalizzato che esegue azioni sul file originariamente caricato, i passaggi successivi non possono accedere al file elaborato. In altre parole, nessun passaggio successivo al passaggio personalizzato non può fare riferimento al file aggiornato dall'output del passaggio personalizzato. 

Ad esempio, supponiamo di avere i seguenti tre passaggi nel flusso di lavoro. 
+ **Passaggio 1**: carica un file denominato`example-file.txt`.
+ **Passaggio 2**: richiama una funzione Lambda che `example-file.txt` cambia in qualche modo.
+ **Fase 3** — Tentativo di eseguire ulteriori elaborazioni sulla versione aggiornata di. `example-file.txt`

Se si configura `sourceFileLocation` la Fase 3 in modo che sia la Fase 3`${original.file}`, la Fase 3 utilizza la posizione originale del file da quando il server ha caricato il file nell'archivio nella Fase 1. Se lo utilizzi `${previous.file}` per lo Step 3, lo Step 3 riutilizza la posizione del file utilizzata dallo Step 2 come input.

Pertanto, lo Step 3 causa un errore. Ad esempio, se nel passaggio 3 si tenta di copiare l'aggiornamento`example-file.txt`, viene visualizzato il seguente errore:

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

Questo errore si verifica perché il passaggio personalizzato modifica il tag di entità (ETag) `example-file.txt` in modo che non corrisponda al file originale.

**Nota**  
Questo comportamento non si verifica se utilizzi Amazon EFS perché Amazon EFS non utilizza tag di entità per identificare i file.

## Eventi di esempio inviati al AWS Lambda momento del caricamento del file
<a name="example-workflow-lambdas"></a>

Gli esempi seguenti mostrano gli eventi a cui vengono inviati AWS Lambda quando il caricamento di un file è completo. Un esempio utilizza un server Transfer Family in cui il dominio è configurato con Amazon S3. L'altro esempio utilizza un server Transfer Family in cui il dominio utilizza 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"
    }
}
```

------

## Esempio di funzione Lambda per una fase del flusso di lavoro personalizzata
<a name="example-workflow-lambda"></a>

La seguente funzione Lambda estrae le informazioni relative allo stato di esecuzione, quindi chiama l'operazione [SendWorkflowStepState](https://docs.aws.amazon.com/transfer/latest/APIReference/API_SendWorkflowStepState.html)API per restituire lo stato al flusso di lavoro per la fase, ovvero. `SUCCESS` `FAILURE` Prima che la funzione richiami l'operazione `SendWorkflowStepState` API, puoi configurare Lambda per eseguire un'azione basata sulla logica del tuo flusso di lavoro. 

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

## Autorizzazioni IAM per un passaggio personalizzato
<a name="custom-step-iam"></a>

Per consentire il completamento di un passaggio che richiama una Lambda, assicurati che il ruolo di esecuzione per il tuo flusso di lavoro contenga le seguenti autorizzazioni.

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

# Politiche IAM per i flussi di lavoro
<a name="workflow-execution-role"></a>

Quando aggiungi un flusso di lavoro a un server, devi selezionare un ruolo di esecuzione. Il server utilizza questo ruolo quando esegue il flusso di lavoro. Se il ruolo non dispone delle autorizzazioni appropriate, non AWS Transfer Family può eseguire il flusso di lavoro. 

Questa sezione descrive un possibile set di autorizzazioni AWS Identity and Access Management (IAM) che è possibile utilizzare per eseguire un flusso di lavoro. Altri esempi sono descritti più avanti in questo argomento. 

**Nota**  
Se i tuoi file Amazon S3 hanno tag, devi aggiungere una o due autorizzazioni alla tua policy IAM.  
Aggiungi `s3:GetObjectTagging` per un file Amazon S3 senza versione.
Aggiungi `s3:GetObjectVersionTagging` per un file Amazon S3 con versione.

**Per creare un ruolo di esecuzione per il tuo flusso di lavoro**

1. Crea un nuovo ruolo IAM e aggiungi la policy AWS gestita `AWSTransferFullAccess` al ruolo. Per ulteriori informazioni sulla creazione di un nuovo ruolo IAM, consulta[Crea un ruolo e una policy IAM](requirements-roles.md).

1. Crea un'altra policy con le seguenti autorizzazioni e associala al tuo ruolo. Sostituisci ogni `user input placeholder` con le tue informazioni.  
****  

   ```
   {
       "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. Salva questo ruolo e specificalo come ruolo di esecuzione quando aggiungi un flusso di lavoro a un server.
**Nota**  
Quando crei ruoli IAM, ti AWS consiglia di limitare l'accesso alle tue risorse il più possibile per il tuo flusso di lavoro.

## Relazioni di fiducia nel workflow
<a name="workflows-trust"></a>

I ruoli di esecuzione del flusso di lavoro richiedono anche una relazione di fiducia con`transfer.amazonaws.com`. Per stabilire una relazione di fiducia per AWS Transfer Family, vedere[Per stabilire una relazione di trust](requirements-roles.md#establish-trust-transfer).

Mentre stabilite il vostro rapporto di fiducia, potete anche prendere provvedimenti per evitare il *confuso problema del vicesceriffo*. Per una descrizione di questo problema e per alcuni esempi su come evitarlo, consulta[Prevenzione del problema "confused deputy" tra servizi](confused-deputy.md).

## Esempio di ruolo di esecuzione: decrittografia, copia e tag
<a name="example-workflow-role-copy-tag"></a>

Se disponi di flussi di lavoro che includono passaggi di etichettatura, copia e decrittografia, puoi utilizzare la seguente politica IAM. Sostituisci ogni `user input placeholder` con le tue informazioni. 

****  

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

## Esempio di ruolo di esecuzione: Esegui la funzione ed elimina
<a name="example-workflow-role-custom-delete"></a>

In questo esempio, avete un flusso di lavoro che richiama una AWS Lambda funzione. Se il flusso di lavoro elimina il file caricato e prevede un passaggio di gestione delle eccezioni che interviene in caso di esecuzione non riuscita del flusso di lavoro nel passaggio precedente, utilizza la seguente policy IAM. Sostituisci ogni `user input placeholder` con le tue informazioni. 

****  

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

## Gestione delle eccezioni per un flusso di lavoro
<a name="exception-workflow"></a>

Se si verificano errori durante l'esecuzione di un flusso di lavoro, vengono eseguiti i passaggi di gestione delle eccezioni specificati. I passaggi di gestione degli errori per un flusso di lavoro vengono specificati nello stesso modo in cui si specificano i passaggi nominali per il flusso di lavoro. Ad esempio, supponete di aver configurato l'elaborazione personalizzata in passaggi nominali per convalidare i file in entrata. Se la convalida del file fallisce, una fase di gestione delle eccezioni può inviare un'e-mail all'amministratore.

Il flusso di lavoro di esempio seguente contiene due passaggi: 
+ Un passaggio nominale che verifica se il file caricato è in formato CSV
+ Un passaggio di gestione delle eccezioni che invia un'e-mail nel caso in cui il file caricato non sia in formato CSV e il passaggio nominale fallisca

Per avviare la fase di gestione delle eccezioni, la AWS Lambda funzione nella fase nominale deve rispondere con. `Status="FAILURE"` Per ulteriori informazioni sulla gestione degli errori nei flussi di lavoro, vedere. [Utilizza passaggi di elaborazione dei file personalizzati](custom-step-details.md)

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


# Monitora l'esecuzione del workflow
<a name="cloudwatch-workflow"></a>

Amazon CloudWatch monitora AWS le tue risorse e le applicazioni che esegui Cloud AWS in tempo reale. Puoi usare Amazon CloudWatch per raccogliere e monitorare i parametri, che sono variabili che puoi misurare per i tuoi flussi di lavoro. Puoi visualizzare le metriche del flusso di lavoro e i log consolidati utilizzando Amazon. CloudWatch

## CloudWatch registrazione per un flusso di lavoro
<a name="cloudwatch-workflow-logs"></a>

CloudWatch fornisce il controllo e la registrazione consolidati dell'avanzamento e dei risultati del flusso di lavoro.

**Visualizza i CloudWatch log di Amazon per i flussi di lavoro**

1. Apri la CloudWatch console Amazon all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Nel riquadro di navigazione a sinistra, scegli **Registri**, quindi scegli **Gruppi di log**.

1. Nella pagina **Gruppi di log**, nella barra di navigazione, scegli la regione corretta per il tuo AWS Transfer Family server.

1. Scegli il gruppo di log corrispondente al tuo server.

   Ad esempio, se l'ID del tuo server è`s-1234567890abcdef0`, il tuo gruppo di log lo è`/aws/transfer/s-1234567890abcdef0`.

1. Nella pagina dei dettagli del gruppo di log relativa al server, vengono visualizzati i flussi di log più recenti. Esistono due flussi di log per l'utente che stai esplorando: 
   + Uno per ogni sessione di Secure Shell (SSH) File Transfer Protocol (SFTP).
   + Uno per il flusso di lavoro che viene eseguito per il server. Il formato per il flusso di log per il flusso di lavoro è`username.workflowID.uniqueStreamSuffix`.

   Ad esempio, se il tuo utente è`mary-major`, hai i seguenti flussi di log:

   ```
   mary-major-east.1234567890abcdef0
   mary.w-abcdef01234567890.021345abcdef6789
   ```
**Nota**  
 Gli identificatori alfanumerici a 16 cifre elencati in questo esempio sono fittizi. I valori che vedi in Amazon CloudWatch sono diversi. 

La pagina **degli eventi di registro** `mary-major-usa-east.1234567890abcdef0` mostra i dettagli di ogni sessione utente e il flusso di `mary.w-abcdef01234567890.021345abcdef6789` registro contiene i dettagli del flusso di lavoro. 

 Di seguito è riportato un esempio di flusso di log per`mary.w-abcdef01234567890.021345abcdef6789`, basato su un workflow (`w-abcdef01234567890`) che contiene una fase di copia. 

```
{
    "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 metriche per i flussi di lavoro
<a name="cloudwatch-workflows-metrics"></a>

AWS Transfer Family fornisce diverse metriche per i flussi di lavoro. È possibile visualizzare le metriche relative al numero di esecuzioni di flussi di lavoro avviate, completate con successo e non riuscite nel minuto precedente. Tutte le CloudWatch metriche per Transfer Family sono descritte in[Utilizzo CloudWatch delle metriche per i server Transfer Family](metrics.md).

# Creare un flusso di lavoro da un modello
<a name="workflow-template"></a>

È possibile distribuire uno CloudFormation stack che crea un flusso di lavoro e un server a partire da un modello. Questa procedura contiene un esempio che è possibile utilizzare per distribuire rapidamente un flusso di lavoro.

**Per creare uno CloudFormation stack che crei un AWS Transfer Family flusso di lavoro e un server**

1. Apri la CloudFormation console in [https://console.aws.amazon.com/cloudformation.](https://console.aws.amazon.com/cloudformation/)

1. Salva il codice seguente in un file.

------
#### [ 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. Sostituisci i seguenti elementi con i tuoi valori effettivi.
   + Sostituire *`workflow-execution-role-arn`* con l'ARN del ruolo di esecuzione del flusso di lavoro effettivo. Ad esempio, `arn:aws:transfer:us-east-2:111122223333:workflow/w-1234567890abcdef0`
   + Sostituisci `arn:aws:lambda:region:account-id:function:function-name` con l'ARN per la tua funzione Lambda. Ad esempio, `arn:aws:lambda:us-east-2:123456789012:function:example-lambda-idp`.

1. *Segui le istruzioni per distribuire uno CloudFormation stack da un modello esistente in [Selezione di un modello di stack nella Guida](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-console-create-stack-template.html) per l'utente.AWS CloudFormation *

Dopo aver distribuito lo stack, puoi visualizzarne i dettagli nella scheda **Output** della console. CloudFormation Il modello crea un nuovo server AWS Transfer Family SFTP che utilizza utenti gestiti dal servizio e un nuovo flusso di lavoro e associa il flusso di lavoro al nuovo server.

## Rimuovere un flusso di lavoro da un server Transfer Family
<a name="remove-workflow-association"></a>

Se hai associato un flusso di lavoro a un server Transfer Family e ora desideri rimuovere tale associazione, puoi farlo utilizzando la console o a livello di codice.

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

**Per rimuovere un flusso di lavoro da un server Transfer Family**

1. Apri la AWS Transfer Family console all'indirizzo [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Nel riquadro di navigazione a sinistra, scegli **Server**.

1. Scegli l'identificatore per il server nella colonna **Server ID**.

1. Nella pagina dei dettagli del server, scorri verso il basso fino alla sezione **Dettagli aggiuntivi**, quindi scegli **Modifica**. 

1. Nella pagina **Modifica dettagli aggiuntivi**, nella sezione **Flussi di lavoro gestiti**, cancella le informazioni relative a tutte le impostazioni:
   + Seleziona il trattino (-) dall'elenco dei flussi di lavoro per il **flusso di lavoro per il caricamento completo dei file**.
   + **Se non è già deselezionato, seleziona il trattino (-) dall'elenco dei flussi di lavoro per il flusso di lavoro per i caricamenti parziali di file.**
   +  **Seleziona il trattino (-) dall'elenco dei ruoli per il ruolo di esecuzione dei flussi di lavoro gestiti.**

   Se non vedi il trattino, scorri verso l'alto fino a visualizzarlo, poiché è il primo valore in ogni menu.

   La schermata dovrebbe avere l'aspetto seguente.  
![\[Il riquadro Flussi di lavoro gestiti, che mostra tutti i parametri, è stato cancellato.\]](http://docs.aws.amazon.com/it_it/transfer/latest/userguide/images/workflows-remove-from-server.png)

1. Scorri verso il basso e scegli **Salva** per salvare le modifiche.

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

Utilizzate la chiamata `update-server` (o `UpdateServer` per l'API) e fornite argomenti vuoti per i `OnPartialUpload` parametri `OnUpload` and.

Da AWS CLI, esegui il seguente comando:

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

Sostituisci `your-server-id` con l'ID del tuo server. Ad esempio, se l'ID del server è`s-01234567890abcdef`, il comando è il seguente:

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

------

## Restrizioni e limitazioni dei flussi di lavoro gestiti
<a name="limitations-workflow"></a>

**Restrizioni**

Le seguenti restrizioni si applicano attualmente ai flussi di lavoro di elaborazione post-caricamento per. AWS Transfer Family
+ Le AWS Lambda funzioni tra account e aree geografiche non sono supportate. Tuttavia, puoi copiare tra più account, a condizione che le tue policy AWS Identity and Access Management (IAM) siano configurate correttamente.
+ Per tutte le fasi del flusso di lavoro, tutti i bucket Amazon S3 a cui il flusso di lavoro accede devono trovarsi nella stessa regione del flusso di lavoro stesso.
+ Per una fase di decrittografia, la destinazione di decrittografia deve corrispondere all'origine per la regione e l'archivio di backup (ad esempio, se il file da decrittografare è archiviato in Amazon S3, anche la destinazione specificata deve essere in Amazon S3).
+ Sono supportati solo passaggi personalizzati asincroni.
+ I timeout dei passaggi personalizzati sono approssimativi. Cioè, il timeout potrebbe richiedere un tempo leggermente più lungo di quanto specificato. Inoltre, il flusso di lavoro dipende dalla funzione Lambda. Pertanto, se la funzione viene ritardata durante l'esecuzione, il flusso di lavoro non è a conoscenza del ritardo.
+ Se superi il limite di limitazione, Transfer Family non aggiunge le operazioni del flusso di lavoro alla coda.
+ I flussi di lavoro non vengono avviati per i file che hanno una dimensione pari a 0. I file con una dimensione superiore a 0 avviano il flusso di lavoro associato.
+ È possibile collegare un flusso di lavoro di elaborazione file a un server Transfer Family che utilizza il AS2 protocollo: tuttavia, AS2 i messaggi non eseguono flussi di lavoro collegati al server. 

**Limitazioni**

 Inoltre, i seguenti limiti funzionali si applicano ai flussi di lavoro per Transfer Family: 
+ Il numero di flussi di lavoro per regione, per account, è limitato a 10.
+ Il timeout massimo per i passaggi personalizzati è di 30 minuti.
+ Il numero massimo di passaggi in un flusso di lavoro è 8.
+ Il numero massimo di tag per flusso di lavoro è 50.
+ Il numero massimo di esecuzioni simultanee che contengono una fase di decrittografia è 250 per flusso di lavoro.
+ È possibile memorizzare un massimo di 3 chiavi private PGP, per server Transfer Family, per utente.
+ La dimensione massima per un file decrittografato è di 10 GB.
+ Limitiamo la nuova velocità di esecuzione utilizzando un sistema di [token bucket](https://en.wikipedia.org/wiki/Token_bucket) con una capacità di burst di 100 e una frequenza di ricarica di 1.
+ Ogni volta che rimuovi un flusso di lavoro da un server e lo sostituisci con uno nuovo o aggiorni la configurazione del server (che influisce sul ruolo di esecuzione di un flusso di lavoro), devi attendere circa 10 minuti prima di eseguire il nuovo flusso di lavoro. Il server Transfer Family memorizza nella cache i dettagli del flusso di lavoro e il server impiega 10 minuti per aggiornare la cache.

  Inoltre, è necessario disconnettersi da tutte le sessioni SFTP attive e quindi riconnettersi dopo il periodo di attesa di 10 minuti per visualizzare le modifiche.