

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# AWS Transfer Family fluxos de trabalho gerenciados
<a name="transfer-workflows"></a>

 AWS Transfer Family suporta fluxos de trabalho gerenciados para processamento de arquivos. Com fluxos de trabalho gerenciados, você pode iniciar um fluxo de trabalho após a transferência de um arquivo por SFTP, FTPS ou FTP. Usando esse recurso, você pode atender de forma segura e econômica aos requisitos de conformidade para trocas de arquivos business-to-business (B2B) coordenando todas as etapas necessárias para o processamento de arquivos. Além disso, você se beneficia da end-to-end auditoria e da visibilidade.

![\[Diagrama de fluxo mostrando como os fluxos de trabalho gerenciados auxiliam no processamento de arquivos.\]](http://docs.aws.amazon.com/pt_br/transfer/latest/userguide/images/workflows-diagram.png)


Ao orquestrar as tarefas de processamento de arquivos, os fluxos de trabalho gerenciados ajudam você a pré-processar os dados antes que eles sejam consumidos pelos aplicativos posteriores. Essas tarefas de processamento de arquivos podem incluir:
+ Mover arquivos para pastas específicas do usuário.
+ Descriptografar arquivos como parte de um fluxo de trabalho.
+ Marcar arquivos.
+ Executar o processamento personalizado criando e anexando uma AWS Lambda função a um fluxo de trabalho.
+ Envio de notificações quando um arquivo foi transferido com sucesso. (Para uma postagem no blog que detalha esse caso de uso, consulte [Personalizar notificações de entrega de arquivos usando fluxos de trabalho AWS Transfer Family gerenciados](https://aws.amazon.com/blogs/storage/customize-file-delivery-notifications-using-aws-transfer-family-managed-workflows/).)

Para replicar e padronizar rapidamente tarefas comuns de processamento de arquivos pós-upload abrangendo várias unidades de negócios em sua organização, você pode implantar fluxos de trabalho usando a infraestrutura como código (IaC). Você pode especificar um fluxo de trabalho gerenciado a ser iniciado em arquivos que são carregados na íntegra. Você também pode especificar um fluxo de trabalho gerenciado diferente a ser iniciado em arquivos que foram carregados apenas parcialmente devido a uma desconexão prematura da sessão. O tratamento de exceções integrado ajuda você a reagir rapidamente aos resultados do processamento de arquivos, ao mesmo tempo em que oferece controle sobre como lidar com falhas. Além disso, cada etapa do fluxo de trabalho produz logs detalhados, que você pode auditar para rastrear a linhagem dos dados.

Para começar, realize as seguintes tarefas:

1. Configure seu fluxo de trabalho para conter ações de pré-processamento, como cópia, marcação e outras etapas com base em seus requisitos. Para mais detalhes, consulte [Criar um fluxo de trabalho](create-workflow.md).

1. Configure uma função de execução, que o Transfer Family usa para executar o fluxo de trabalho. Para mais detalhes, consulte [Políticas do IAM para fluxos de trabalho](workflow-execution-role.md).

1. Mapeie o fluxo de trabalho para um servidor, para que, na chegada do arquivo, as ações especificadas nesse fluxo de trabalho sejam avaliadas e iniciadas em tempo real. Para mais detalhes, consulte [Configurar e executar um fluxo de trabalho](create-workflow.md#configure-workflow).

**Informações relacionadas**
+ Para monitorar suas execuções de fluxo de trabalho, consulte [Usando CloudWatch métricas para servidores Transfer Family](metrics.md).
+ Para obter logs detalhados de execução e informações sobre solução de problemas, consulte [Solucione erros relacionados ao fluxo de trabalho usando a Amazon CloudWatch](workflow-issues.md#workflows-cloudwatch-errors).
+ O Transfer Family fornece uma postagem no blog e um workshop que orientam você na criação de uma solução de transferência de arquivos. Essa solução usa AWS Transfer Family SFTP/FTPS endpoints gerenciados e Amazon Cognito e DynamoDB para gerenciamento de usuários. 

  A postagem do blog está disponível em [Usando o Amazon Cognito como provedor de identidade com AWS Transfer Family o Amazon S3](https://aws.amazon.com/blogs/storage/using-amazon-cognito-as-an-identity-provider-with-aws-transfer-family-and-amazon-s3/). Você pode ver os detalhes do workshop [aqui](https://catalog.workshops.aws/transfer-family-sftp/en-US). 
+ O vídeo a seguir fornece uma breve introdução aos fluxos de trabalho gerenciados pelo 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)
+ [O workshop a seguir fornece laboratórios práticos para criar fluxos de trabalho totalmente automatizados e orientados por eventos envolvendo transferência de arquivos de ou para servidores SFTP externos para o Amazon S3 e pré-processamento comum desses arquivos: Workshop de MFT orientado a eventos.](https://catalog.us-east-1.prod.workshops.aws/workshops/e55c90e0-bbb0-47e1-be83-6bafa3a59a8a/en-US)

  Este vídeo fornece um resumo desse 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**
+ [Criar um fluxo de trabalho](create-workflow.md)
+ [Usar etapas predefinidas](nominal-steps-workflow.md)
+ [Use etapas personalizadas de processamento de arquivos](custom-step-details.md)
+ [Políticas do IAM para fluxos de trabalho](workflow-execution-role.md)
+ [Tratamento de exceções para um fluxo de trabalho](#exception-workflow)
+ [Monitore a execução do fluxo](cloudwatch-workflow.md)
+ [Criar um fluxo de trabalho a partir de um modelo](workflow-template.md)
+ [Remover um fluxo de trabalho de um servidor Transfer Family](#remove-workflow-association)
+ [Restrições e limitações de fluxos de trabalho gerenciados](#limitations-workflow)

Para obter mais ajuda para começar a usar fluxos de trabalho gerenciados, consulte os seguintes recursos: 
+ AWS Transfer Family vídeo de demonstração [de fluxos de trabalho gerenciados](https://www.youtube.com/watch?v=t-iNqCRospw)
+ Publicação do blog sobre [como criar uma plataforma de transferência de arquivos nativa em nuvem usando AWS Transfer Family fluxos de trabalho](https://aws.amazon.com/blogs/architecture/building-a-cloud-native-file-transfer-platform-using-aws-transfer-family-workflows/)

# Criar um fluxo de trabalho
<a name="create-workflow"></a>

Você pode criar um fluxo de trabalho gerenciado usando o Console de gerenciamento da AWS, conforme descrito neste tópico. Para tornar o processo de criação do fluxo de trabalho o mais fácil possível, painéis de ajuda contextual estão disponíveis para a maioria das seções do console.

Um fluxo de trabalho tem dois tipos de etapas:
+ **Etapas nominais** — As etapas nominais são etapas de processamento de arquivos que você deseja aplicar aos arquivos recebidos. Se você selecionar mais de uma etapa nominal, cada etapa será processada em uma sequência linear.
+ **Etapas de tratamento de exceções** — Os manipuladores de exceções são etapas de processamento de arquivos AWS Transfer Family executadas caso alguma etapa nominal falhe ou resulte em erros de validação.

**Criar um fluxo de trabalho**

1. Abra o AWS Transfer Family console em [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. No painel de navegação à esquerda, selecione **Fluxos de trabalho**.

1. Na página **Fluxos de trabalho**, escolha **Criar um fluxo de trabalho**.

1. Na página **Criar fluxo de trabalho**, insira uma descrição. Essa descrição aparece na página **Fluxos de trabalho**.

1. Na seção **Etapas nominais**, escolha **Adicionar etapa**. Adicione uma ou mais etapas.

   1. Escolha um tipo de etapa entre as opções disponíveis. Para obter mais informações sobre as várias etapas, consulte [Usar etapas predefinidas](nominal-steps-workflow.md).

   1. Escolha **Próximo** e configure os parâmetros para a etapa. 

   1. Escolha **Próximo** e, em seguida, revise os detalhes da etapa. 

   1. Escolha **Criar etapa** para adicionar a etapa e continuar.

   1. Continue adicionando etapas conforme necessário. O número máximo de etapas em um fluxo de trabalho é 8.

   1. Depois de adicionar todas as etapas nominais necessárias, role para baixo até a seção **Manipuladores de exceções — *opcional*** e escolha **Adicionar etapa**. 
**nota**  
Para que você seja informado sobre falhas em tempo real, recomendamos que você configure manipuladores de exceções e etapas a serem executadas quando seu fluxo de trabalho falhar.

1. Para configurar manipuladores de exceções, adicione etapas da mesma maneira descrita anteriormente. Se um arquivo fizer com que qualquer etapa gere uma exceção, seus manipuladores de exceções serão invocados um por um. 

1. (Opcional) Role para baixo até a seção **Tags** e adicione tags ao seu fluxo de trabalho.

1. Reveja a configuração e selecione **Criar fluxo de trabalho**. 
**Importante**  
Depois de criar um fluxo de trabalho, você não poderá editá-lo, portanto, revise a configuração com cuidado.

## Configurar e executar um fluxo de trabalho
<a name="configure-workflow"></a>

Antes de executar um fluxo de trabalho, você precisa associá-lo a um servidor Transfer Family.

**Para configurar o Transfer Family para executar um fluxo de trabalho em arquivos enviados**

1. Abra o AWS Transfer Family console em [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. No painel de navegação à esquerda, selecione **Servidores**. 
   + Para adicionar o fluxo de trabalho a um servidor existente, escolha o servidor que você deseja usar para seu fluxo de trabalho.
   + Como alternativa, crie um novo servidor e adicione o fluxo de trabalho a ele. Para obter mais informações, consulte [Configurando um endpoint de servidor SFTP, FTPS ou FTP](tf-server-endpoint.md).

1. Na página de detalhes do servidor, role para baixo até a seção **Detalhes adicionais** e escolha **Editar**. 
**nota**  
 Por padrão, os servidores não têm fluxos de trabalho associados. Você usa a seção **Detalhes adicionais** para associar um fluxo de trabalho ao servidor selecionado. 

1. Na página **Editar detalhes adicionais**, na seção **Fluxos de trabalho gerenciados**, selecione um fluxo de trabalho a ser executado em todos os carregamentos.
**nota**  
Se você ainda não tiver um fluxo de trabalho, escolha **Criar um novo fluxo de trabalho** para criar um.

   1. Escolha o ID do fluxo de trabalho a ser usado. 

   1. Escolha uma função de execução. Esta é a função que o Transfer Family assume ao executar as etapas do fluxo de trabalho. Para obter mais informações, consulte [Políticas do IAM para fluxos de trabalho](workflow-execution-role.md). Escolha **Salvar**.  
![\[A tela Fluxos de trabalho gerenciados, mostrando valores para fluxo de trabalho e função de execução.\]](http://docs.aws.amazon.com/pt_br/transfer/latest/userguide/images/workflows-addtoserver.png)

**nota**  
Se você não quiser mais que um fluxo de trabalho seja associado ao servidor, você pode remover a associação. Para obter detalhes, consulte [Remover um fluxo de trabalho de um servidor Transfer Family](transfer-workflows.md#remove-workflow-association).

**Para executar um fluxo de trabalho**

Para executar um fluxo de trabalho, você carrega um arquivo em um servidor Transfer Family que você configurou com um fluxo de trabalho associado.

**nota**  
Sempre que você remove um fluxo de trabalho de um servidor e o substitui por um novo ou atualiza a configuração do servidor (o que afeta a função de execução de um fluxo de trabalho), você deve esperar aproximadamente 10 minutos antes de executar o novo fluxo de trabalho. O servidor do Transfer Family armazena em cache os detalhes do fluxo de trabalho e leva 10 minutos para que o servidor atualize o cache.  
Além disso, você deve sair de qualquer sessão ativa de SFTP e, em seguida, fazer login novamente após o período de espera de 10 minutos para ver as alterações.

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

Depois que seu arquivo for carregado, a ação definida será executada em seu arquivo. Por exemplo, se seu fluxo de trabalho contiver uma etapa de cópia, o arquivo será copiado para o local que você definiu nessa etapa. Você pode usar o Amazon CloudWatch Logs para rastrear as etapas executadas e seu status de execução.

## Visualizar detalhes do fluxo de trabalho
<a name="view-details-workflow"></a>

Você pode ver detalhes sobre fluxos de trabalho criados anteriormente ou sobre execuções de fluxo de trabalho. Para ver esses detalhes, você pode usar o console ou o AWS Command Line Interface (AWS CLI). 

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

**Visualizar detalhes do fluxo de trabalho**

1. Abra o AWS Transfer Family console em [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. No painel de navegação à esquerda, selecione **Fluxos de trabalho**. 

1. Na página **Fluxos de trabalho**, escolha um fluxo de trabalho. 

   A página de detalhes do fluxo de trabalho é aberta.   
![\[A tela de detalhes dos fluxos de trabalho de um fluxo de trabalho do Transfer Family, mostrando a descrição, as etapas, os manipuladores de exceções e as execuções em andamento.\]](http://docs.aws.amazon.com/pt_br/transfer/latest/userguide/images/workflows-overview.png)

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

Para visualizar detalhes do fluxo de trabalho, use o comando da CLI `describe-workflow`, conforme mostrado no exemplo a seguir. Substitua o ID de fluxo de trabalho `w-1234567890abcdef0` pelos seus próprios valores. Para obter mais informações, consulte [describe-workflow](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transfer/describe-workflow.html) na *Referência de comandos do 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 seu fluxo de trabalho foi criado como parte de uma AWS CloudFormation pilha, você pode gerenciar o fluxo de trabalho usando o CloudFormation console ([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)).

![\[A tela de detalhes dos fluxos de trabalho de um fluxo de trabalho que faz parte de uma AWS CloudFormation pilha, mostrando a mensagem na qual você gerencia esse fluxo de trabalho. CloudFormation\]](http://docs.aws.amazon.com/pt_br/transfer/latest/userguide/images/workflows-cloudformation-link.png)


# Usar etapas predefinidas
<a name="nominal-steps-workflow"></a>

Ao criar um fluxo de trabalho, você pode optar por adicionar uma das seguintes etapas predefinidas discutidas neste tópico. Você também pode escolher adicionar suas próprias etapas de processamento de arquivos. Para obter mais informações, consulte [Use etapas personalizadas de processamento de arquivos](custom-step-details.md).

**Topics**
+ [Copiar arquivo](#copy-step-details)
+ [Descriptografar arquivo](#decrypt-step-details)
+ [Arquivo de marcação](#tag-step-details)
+ [Excluir arquivo](#delete-step-details)
+ [Variáveis nomeadas para fluxos de trabalho](#workflow-named-variables)
+ [Exemplo para marcar e excluir fluxo de trabalho](#sourcefile-workflow)

## Copiar arquivo
<a name="copy-step-details"></a>

Uma etapa de cópia do arquivo cria uma cópia do arquivo carregado em um novo local do Amazon S3. Atualmente, você pode usar uma etapa de cópia de arquivo somente com o Amazon S3.

A etapa de cópia do arquivo a seguir copia os arquivos para a `test` pasta em*amzn-s3-demo-destination-bucket*. 

Se a etapa de cópia do arquivo não for a primeira etapa do seu fluxo de trabalho, você poderá especificar o **Local do arquivo**. Ao especificar o local do arquivo, você pode copiar o arquivo usado na etapa anterior ou o arquivo original que foi carregado. Você pode usar esse recurso para fazer várias cópias do arquivo original e, ao mesmo tempo, manter o arquivo de origem intacto para arquivamento e retenção de logs. Para ver um exemplo, consulte [Exemplo para marcar e excluir fluxo de trabalho](#sourcefile-workflow).

![\[Tela de fluxo de trabalho com Copiar o arquivo criado na etapa anterior... botão selecionado.\]](http://docs.aws.amazon.com/pt_br/transfer/latest/userguide/images/workflows-step-copy.png)


### Informe o bucket e os principais detalhes
<a name="copy-provide-bucket"></a>

Você deve fornecer o nome do bucket e uma chave para o destino da etapa de cópia do arquivo. A chave pode ser um nome de caminho ou um nome de arquivo. O fato de a chave ser tratada como um nome de caminho ou nome de arquivo é determinado pelo fato de você terminar a chave com o caractere de barra (`/`).

Se o caractere final for `/`, seu arquivo será copiado para a pasta e seu nome não será alterado. Se o caractere final for alfanumérico, o arquivo enviado será renomeado para o valor-chave. Nesse caso, se um arquivo com esse nome já existir, o comportamento dependerá da configuração do campo **Substituir existente**.
+ Se **Substituir existente** for selecionado, o arquivo existente será substituído pelo arquivo que está sendo processado.
+ Se a opção **Substituir existente** não estiver selecionada, nada acontecerá e o processamento do fluxo de trabalho será interrompido.
**dica**  
Se as gravações simultâneas forem executadas no mesmo caminho de arquivo, isso poderá resultar em um comportamento inesperado ao substituir arquivos.

Por exemplo, se o valor da chave for `test/`, os arquivos enviados serão copiados para a pasta `test`. Se o valor da chave for `test/today` (e a opção **Substituir existente** estiver selecionada), todos os arquivos enviados serão copiados para um arquivo nomeado `today` na pasta `test`, e cada arquivo seguinte substituirá o anterior.

**nota**  
O Amazon S3 é compatível com buckets e objetos e não há nenhuma hierarquia. No entanto, você pode usar prefixos e delimitadores em nomes de chaves de objetos para sugerir uma hierarquia e organizar seus dados de forma semelhante às pastas.

### Use uma variável nomeada em uma etapa de cópia do arquivo
<a name="named-variable-copy"></a>

Em uma etapa de cópia de arquivo, você pode usar uma variável para copiar dinamicamente seus arquivos em pastas específicas do usuário. Atualmente, você pode usar `${transfer:UserName}` ou `${transfer:UploadDate}` como uma variável para copiar arquivos para um local de destino para um determinado usuário que está fazendo o upload dos arquivos ou com base na data atual.

No exemplo a seguir, se o usuário `richard-roe` fizer upload de um arquivo, ele será copiado para a pasta `amzn-s3-demo-destination-bucket/richard-roe/processed/`. Se o usuário `mary-major` fizer upload de um arquivo, ele será copiado para a pasta `amzn-s3-demo-destination-bucket/mary-major/processed/`.

![\[Tela de parâmetros para uma etapa de cópia, mostrando o bucket e a chave, parametrizados usando. UserName\]](http://docs.aws.amazon.com/pt_br/transfer/latest/userguide/images/workflows-step-copy-dynamic.png)


Da mesma forma, você pode usar `${transfer:UploadDate}` como variável para copiar arquivos para um local de destino nomeado com a data atual. No exemplo a seguir, se você definir o destino como `${transfer:UploadDate}/processed` em 1º de fevereiro de 2022, os arquivos enviados serão copiados para a pasta `amzn-s3-demo-destination-bucket/2022-02-01/processed/`.

![\[Tela de parâmetros para uma etapa de cópia, mostrando o bucket e a chave, parametrizados usando. UploadDate\]](http://docs.aws.amazon.com/pt_br/transfer/latest/userguide/images/workflows-step-copy-dynamic-date.png)


Você também pode usar essas duas variáveis juntas, combinando suas funcionalidades. Por exemplo, você pode definir o **prefixo da chave de destino** como**folder/\$1\$1transfer:UserName\$1/\$1\$1transfer:UploadDate\$1/**, o que criaria pastas aninhadas, por exemplo. `folder/marymajor/2023-01-05/`

### Permissões do IAM para a etapa de copiar
<a name="copy-step-iam"></a>

Para permitir que uma etapa de cópia seja bem-sucedida, certifique-se de que a função de execução do seu fluxo de trabalho contenha as seguintes permissões.

```
{
    "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**  
A permissão `s3:ListBucket` só é necessária se você não selecionar **Substituir existente**. Essa permissão verifica seu bucket para ver se já existe um arquivo com o mesmo nome. Se você selecionou **Substituir existente**, o fluxo de trabalho não precisa verificar o arquivo e pode simplesmente gravá-lo.  
Se seus arquivos do Amazon S3 tiverem tags, você precisará adicionar uma ou duas permissões à sua política do IAM.  
Adicione `s3:GetObjectTagging` para obter um arquivo Amazon S3 que não tenha versão.
Adicione `s3:GetObjectVersionTagging` para obter um arquivo Amazon S3 que tenha versão.

## Descriptografar arquivo
<a name="decrypt-step-details"></a>

O blog AWS de armazenamento tem uma postagem que descreve como simplesmente descriptografar arquivos sem escrever nenhum código usando fluxos de trabalho do Transfer Family Managed, [criptografar e descriptografar](https://aws.amazon.com/blogs/storage/encrypt-and-decrypt-files-with-pgp-and-aws-transfer-family/) arquivos com PGP e. AWS Transfer Family

### Algoritmos de criptografia simétrica compatíveis
<a name="symmetric-algorithms"></a>

Para a decodificação PGP, o Transfer Family suporta algoritmos de criptografia simétrica que são usados para criptografar os dados reais do arquivo nos arquivos PGP.
+ Para obter informações detalhadas sobre os algoritmos de criptografia simétrica compatíveis, consulte[Algoritmos de criptografia simétrica PGP](key-management.md#pgp-symmetric-algorithms).
+ Para obter informações sobre algoritmos de par de chaves PGP usados com esses algoritmos simétricos, consulte. [Algoritmos de pares de chaves PGP](key-management.md#pgp-key-algorithms)

### Use a descriptografia PGP em seu fluxo de trabalho
<a name="configure-decryption"></a>

O Transfer Family tem suporte integrado para descriptografia Pretty Good Privacy (PGP). Você pode usar a descriptografia PGP em arquivos enviados por SFTP, FTPS ou FTP para o Amazon Simple Storage Service (Amazon S3) ou o Amazon Elastic File System (Amazon EFS). 

Para usar a descriptografia PGP, você deve criar e armazenar as chaves privadas PGP que serão usadas para descriptografar seus arquivos. Seus usuários podem então criptografar arquivos usando as chaves de criptografia PGP correspondentes antes de fazer o upload dos arquivos para o servidor Transfer Family. Depois de receber os arquivos criptografados, você pode descriptografar esses arquivos no seu fluxo de trabalho. Para ver um tutorial detalhado, consulte [Configurando um fluxo de trabalho gerenciado para descriptografar um arquivo](workflow-decrypt-tutorial.md).

Para obter informações sobre algoritmos e recomendações de PGP compatíveis, consulte. [Algoritmos de criptografia e decodificação PGP](key-management.md#pgp-encryption-algorithms)

**Para usar a descriptografia PGP em seu fluxo de trabalho**

1. Identifique um servidor Transfer Family para hospedar seu fluxo de trabalho ou crie um novo. Você precisa ter o ID do servidor antes de poder armazenar suas chaves PGP no AWS Secrets Manager com o nome secreto correto.

1. Armazene sua chave PGP AWS Secrets Manager com o nome secreto necessário. Para obter detalhes, consulte [Gerenciar chaves PGP](manage-pgp-keys.md). Os fluxos de trabalho podem localizar automaticamente a chave PGP correta a ser usada para descriptografia com base no nome secreto no Gerente secreto.
**nota**  
Quando você armazena segredos no Secrets Manager, você Conta da AWS incorre em cobranças. Para obter mais informações sobre preços consulte [AWS Secrets Manager Pricing](https://aws.amazon.com/secrets-manager/pricing).

1. Criptografe um arquivo usando seu par de chaves PGP. (Para ver uma lista dos TLDs, consulte [Clientes PGP compatíveis](pgp-key-clients.md).) Se você estiver usando a linha de comando, execute o seguinte comando: Para usar esse comando, substitua `username@example.com` pelo endereço de e-mail que você usou para criar o par de chaves PGP. Substitua `testfile.txt` pelo nome do arquivo que você deseja criptografar. 

   ```
   gpg -e -r username@example.com testfile.txt
   ```
**Importante**  
Ao criptografar arquivos para uso com AWS Transfer Family fluxos de trabalho, sempre certifique-se de especificar um destinatário não anônimo usando o parâmetro. `-r` A criptografia anônima (sem especificar um destinatário) pode causar falhas de decodificação no fluxo de trabalho porque o sistema não conseguirá identificar qual chave usar para decodificação. As informações de depuração desse problema estão disponíveis em. [Solucionar problemas de criptografia de destinatários anônimos](workflow-issues.md#workflows-decrypt-anonymous) 

1. Faça o upload do arquivo criptografado para o servidor Transfer Family.

1. Configure uma etapa de descriptografia em seu fluxo de trabalho. Para obter mais informações, consulte [Adicionar uma etapa de decodificação](#decrypt-step-procedure).

### Adicionar uma etapa de decodificação
<a name="decrypt-step-procedure"></a>

Uma etapa de descriptografia descriptografa um arquivo criptografado que foi carregado no Amazon S3 ou no Amazon EFS como parte do seu fluxo de trabalho. Para obter detalhes sobre como configurar a descriptografia, consulte [Use a descriptografia PGP em seu fluxo de trabalho](#configure-decryption).

Ao criar sua etapa de descriptografia para um fluxo de trabalho, você deve especificar o destino dos arquivos descriptografados. Você também deve selecionar se deseja substituir os arquivos existentes se um arquivo já existir no local de destino. Você pode monitorar os resultados do fluxo de trabalho de descriptografia e obter registros de auditoria para cada arquivo em tempo real usando o Amazon Logs. CloudWatch 

Depois de escolher o tipo de **Descriptografar arquivo** para sua etapa, a página **Configurar parâmetros** é exibida. Preencha os valores da seção **Configurar parâmetros de descriptografia do PGP**.

As opções disponíveis são as seguintes:
+ **Nome da etapa** — Insira um nome descritivo para a etapa.
+ **Local do arquivo** — Ao especificar o local do arquivo, você pode descriptografar o arquivo usado na etapa anterior ou o arquivo original que foi carregado. 
**nota**  
Esse parâmetro não estará disponível se essa etapa for a primeira etapa do fluxo de trabalho.
+ **Destino para arquivos descriptografados** — Escolha um bucket do Amazon S3 ou um sistema de arquivos do Amazon EFS como destino para o arquivo descriptografado.
  + Se você escolher o Amazon S3, deverá fornecer um nome de bucket de destino e um prefixo de chave de destino. Para parametrizar o prefixo da chave de destino por nome de usuário, insira **\$1\$1transfer:UserName\$1** para **Prefixo da chave de destino**. Da mesma foram, para parametrizar o prefixo da chave de destino por data de carregamento, insira **\$1\$1Transfer:UploadDate\$1** para **Prefixo da chave de destino**.
  + Se você escolher o Amazon EFS, deverá fornecer um sistema de arquivos e um caminho de destino.
**nota**  
A opção de armazenamento escolhida aqui deve corresponder ao sistema de armazenamento usado pelo servidor Transfer Family ao qual esse fluxo de trabalho está associado. Caso contrário, você receberá um erro ao tentar executar esse fluxo de trabalho.
+ **Substituir existente** — Se você fizer upload de um arquivo e já existir um arquivo com o mesmo nome de arquivo no destino, o comportamento dependerá da configuração desse parâmetro:
  + Se **Substituir existente** for selecionado, o arquivo existente será substituído pelo arquivo que está sendo processado.
  + Se a opção **Substituir existente** não estiver selecionada, nada acontecerá e o processamento do fluxo de trabalho será interrompido.
**dica**  
Se as gravações simultâneas forem executadas no mesmo caminho de arquivo, isso poderá resultar em um comportamento inesperado ao substituir arquivos.

A captura de tela a seguir mostra um exemplo das opções que você pode escolher para a etapa de descriptografia do arquivo. 

![\[O AWS Transfer Family console, mostrando a seção Configurar parâmetros de descriptografia do PGP com valores de amostra.\]](http://docs.aws.amazon.com/pt_br/transfer/latest/userguide/images/workflows-step-decrypt-details.png)


### Permissões do IAM para a etapa de descriptografar
<a name="decrypt-step-iam"></a>

Para permitir que uma etapa de descriptografia seja bem-sucedida, certifique-se de que a função de execução do seu fluxo de trabalho contenha as seguintes permissões.

```
{
    "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**  
A permissão `s3:ListBucket` só é necessária se você não selecionar **Substituir existente**. Essa permissão verifica seu bucket para ver se já existe um arquivo com o mesmo nome. Se você selecionou **Substituir existente**, o fluxo de trabalho não precisa verificar o arquivo e pode simplesmente gravá-lo.  
Se seus arquivos do Amazon S3 tiverem tags, você precisará adicionar uma ou duas permissões à sua política do IAM.  
Adicione `s3:GetObjectTagging` para obter um arquivo Amazon S3 que não tenha versão.
Adicione `s3:GetObjectVersionTagging` para obter um arquivo Amazon S3 que tenha versão.

## Arquivo de marcação
<a name="tag-step-details"></a>

Para marcar arquivos recebidos para processamento posterior, use uma etapa de marcação. Insira o valor da tag que você gostaria de atribuir aos arquivos recebidos. Atualmente, a operação de marcação é suportada somente se você estiver usando o Amazon S3 para o armazenamento do servidor Transfer Family.

O exemplo a seguir, a etapa de marcação atribui `scan_outcome` e `clean` como chave e valor da tag, respectivamente.

![\[Tela de fluxos de trabalho mostrando os detalhes de uma etapa de marcação.\]](http://docs.aws.amazon.com/pt_br/transfer/latest/userguide/images/workflows-step-tag.png)


Para permitir que uma etapa de marcação seja bem-sucedida, certifique-se de que a função de execução do seu fluxo de trabalho contenha as seguintes permissões.

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

**nota**  
Se seu fluxo de trabalho contiver uma etapa de marcação executada antes de uma etapa de cópia ou descriptografia, você precisará adicionar uma ou duas permissões à sua política do IAM.  
Adicione `s3:GetObjectTagging` para obter um arquivo Amazon S3 que não tenha versão.
Adicione `s3:GetObjectVersionTagging` para obter um arquivo Amazon S3 que tenha versão.

## Excluir arquivo
<a name="delete-step-details"></a>

Para excluir um arquivo processado de uma etapa anterior do fluxo de trabalho ou excluir o arquivo originalmente carregado, use uma etapa de exclusão de arquivo.

![\[Tela de fluxos de trabalho mostrando os detalhes de uma etapa de exclusão.\]](http://docs.aws.amazon.com/pt_br/transfer/latest/userguide/images/workflows-step-delete.png)


Para permitir que uma etapa de exclusão seja bem-sucedida, certifique-se de que a função de execução do seu fluxo de trabalho contenha as seguintes permissões.

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

## Variáveis nomeadas para fluxos de trabalho
<a name="workflow-named-variables"></a>

Para etapas de cópia e descriptografia, você pode usar uma variável para executar ações dinamicamente. Atualmente, AWS Transfer Family suporta as seguintes variáveis nomeadas.
+ Use `${transfer:UserName}` para copiar ou descriptografar arquivos para um destino com base no usuário que está fazendo o upload dos arquivos.
+ Use `${transfer:UploadDate}` para copiar ou descriptografar arquivos em um local de destino com base na data atual.

## Exemplo para marcar e excluir fluxo de trabalho
<a name="sourcefile-workflow"></a>

O exemplo a seguir ilustra um fluxo de trabalho que marca os arquivos recebidos que precisam ser processados por um aplicativo downstream, como uma plataforma de análise de dados. Depois de marcar o arquivo de entrada, o fluxo de trabalho exclui o arquivo originalmente carregado para economizar nos custos de armazenamento.

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

**Exemplo para marcar e mover fluxo de trabalho**

1. Abra o AWS Transfer Family console em [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. No painel de navegação à esquerda, selecione **Fluxos de trabalho**.

1. Na página **Fluxos de trabalho**, escolha **Criar um fluxo de trabalho**.

1. Na página **Criar fluxo de trabalho**, insira uma descrição. Essa descrição aparece na página **Fluxos de trabalho**.

1. Adicione a primeira etapa (cópia).

   1. Na seção **Etapas nominais**, escolha **Adicionar etapa**.

   1. Escolha **Copiar arquivo**, e, em seguida, **Próximo**.

   1. Insira o nome da etapa e selecione um bucket de destino e um prefixo de chave.  
![\[Tela de fluxos de trabalho mostrando os detalhes de uma etapa de cópia, mostrando o bucket de destino e o prefixo da chave.\]](http://docs.aws.amazon.com/pt_br/transfer/latest/userguide/images/workflows-step-copy-first-step.png)

   1. Escolha **Próximo** e, em seguida, revise os detalhes da etapa. 

   1. Escolha **Criar etapa** para adicionar a etapa e continuar.

1. Adicione a segunda etapa (tag).

   1. Na seção **Etapas nominais**, escolha **Adicionar etapa**.

   1. Escolha **Marcar arquivo**, e, em seguida, **Próximo**.

   1. Insira um nome de etapa.

   1. Em **Local do arquivo**, selecione **Marcar o arquivo criado na etapa anterior**.

   1. Insira uma **Chave** e **Valor**.  
![\[A tela de configuração de uma etapa do fluxo de trabalho de marcação, com o botão de opção Marcar o arquivo criado na etapa anterior selecionado.\]](http://docs.aws.amazon.com/pt_br/transfer/latest/userguide/images/workflows-step-tag.png)

   1. Escolha **Próximo** e, em seguida, revise os detalhes da etapa. 

   1. Escolha **Criar etapa** para adicionar a etapa e continuar.

1. Adicione a terceira etapa (excluir).

   1. Na seção **Etapas nominais**, escolha **Adicionar etapa**.

   1. Escolha **Excluir arquivo**, e, em seguida, **Próximo**.  
![\[A tela de configuração de uma etapa de exclusão do fluxo de trabalho, com o botão de opção Excluir o arquivo de origem original selecionado.\]](http://docs.aws.amazon.com/pt_br/transfer/latest/userguide/images/workflows-step-delete.png)

   1. Insira um nome de etapa.

   1. Em **Local do arquivo**, selecione **Excluir o arquivo de origem original**.

   1. Escolha **Próximo** e, em seguida, revise os detalhes da etapa. 

   1. Escolha **Criar etapa** para adicionar a etapa e continuar.

1. Reveja o fluxo de trabalho e selecione **Criar fluxo de trabalho**. 

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

**Exemplo para marcar e mover fluxo de trabalho**

1. Salve o código a seguir em um arquivo; por exemplo, `tagAndMoveWorkflow.json`. Substitua cada `user input placeholder` por suas próprias informações. 

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

   A primeira etapa copia o arquivo carregado para um novo local do Amazon S3. A segunda etapa adiciona uma tag (par de valor-chave) ao arquivo (`previous.file`) que foi copiado para o novo local. E, finalmente, a terceira etapa exclui o arquivo original (`original.file`).

1. Crie um fluxo de trabalho a partir do arquivo salvo. Substitua cada `user input placeholder` por suas próprias informações.

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

   Por exemplo: 

   ```
   aws transfer create-workflow --description "copy-tag-delete workflow" --steps file://tagAndMoveWorkflow.json --region us-east-1
   ```
**nota**  
Para obter mais detalhes sobre o uso de arquivos para carregar parâmetros, consulte [Como carregar parâmetros de um arquivo](https://docs.aws.amazon.com//cli/latest/userguide/cli-usage-parameters-file.html).

1. Atualizar um servidor existente.
**nota**  
Essa etapa pressupõe que você já tenha um servidor Transfer Family e queira associar um fluxo de trabalho a ele. Se não, consulte [Configurando um endpoint de servidor SFTP, FTPS ou FTP](tf-server-endpoint.md). Substitua cada `user input placeholder` por suas próprias informações.

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

   Por exemplo:

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

------

# Use etapas personalizadas de processamento de arquivos
<a name="custom-step-details"></a>

Ao usar uma etapa personalizada de processamento de arquivos, você pode trazer sua própria lógica de processamento de arquivos usando AWS Lambda. Na chegada do arquivo, um servidor Transfer Family invoca uma função do Lambda que contém uma lógica de processamento de arquivos personalizada, como criptografia de arquivos, verificação de malware ou verificação de tipos de arquivo incorretos. No exemplo a seguir, a função de destino AWS Lambda é usada para processar o arquivo de saída da etapa anterior.

![\[A tela de etapa personalizada, com o botão de opção Aplicar processamento personalizado ao arquivo criado a partir da etapa anterior selecionado e uma função Lambda exibida no campo Destino.\]](http://docs.aws.amazon.com/pt_br/transfer/latest/userguide/images/workflows-step-custom.png)


**nota**  
Para obter um exemplo de função do Lambda, consulte [Exemplo de função do Lambda para uma etapa de fluxo de trabalho personalizada](#example-workflow-lambda). Para eventos de exemplo (incluindo a localização dos arquivos passados para o Lambda), consulte [Exemplos de eventos enviados para AWS Lambda após o upload do arquivo](#example-workflow-lambdas).

Com uma etapa de fluxo de trabalho personalizada, você deve configurar a função Lambda para chamar a operação da [SendWorkflowStepState](https://docs.aws.amazon.com/transfer/latest/APIReference/API_SendWorkflowStepState.html)API. `SendWorkflowStepState`notifica a execução do fluxo de trabalho de que a etapa foi concluída com status de sucesso ou falha. O status da operação da API `SendWorkflowStepState` invoca uma etapa do manipulador de exceções ou uma etapa nominal na sequência linear, com base no resultado da função do Lambda. 

Se a função Lambda falhar ou atingir o tempo limite, a etapa falhará e você verá `StepErrored` nos seus CloudWatch registros. Se a função do Lambda fizer parte da etapa nominal e a função responder `SendWorkflowStepState` com `Status="FAILURE"` ou expirar, o fluxo continuará com as etapas do manipulador de exceções. Nesse caso, o fluxo de trabalho não continua executando as etapas nominais restantes (se houver). Consulte mais detalhes em [Tratamento de exceções para um fluxo de trabalho](transfer-workflows.md#exception-workflow).

Ao chamar a operação da API `SendWorkflowStepState`, você deve enviar os seguintes parâmetros:

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

Você pode extrair `ExecutionId`, `Token`, e `WorkflowId` do evento de entrada que é passado quando a função do Lambda é executada (exemplos são mostrados nas seções a seguir). O valor de `Status` pode ser `SUCCESS` ou `FAILURE`. 

Para poder chamar a operação da `SendWorkflowStepState` API a partir da sua função Lambda, você deve usar uma versão do AWS SDK que foi publicada após a introdução dos fluxos de [trabalho gerenciados](doc-history.md#workflows-introduced).

## Usando várias funções do Lambda consecutivamente
<a name="multiple-lambdas"></a>

Quando você usa várias etapas personalizadas uma após a outra, a opção **Local do arquivo** funciona de forma diferente do que se você usasse apenas uma única etapa personalizada. O Transfer Family não suporta a devolução do arquivo processado pelo Lambda para ser usado como entrada na próxima etapa. Portanto, se você tiver várias etapas personalizadas configuradas para usar a opção `previous.file`, todas usarão o mesmo local de arquivo (o local do arquivo de entrada da primeira etapa personalizada).

**nota**  
A configuração `previous.file` também funciona de forma diferente se você tiver uma etapa predefinida (marcar, copiar, descriptografar ou excluir) após uma etapa personalizada. Se a etapa predefinida estiver configurada para usar a configuração `previous.file`, a etapa predefinida usará o mesmo arquivo de entrada usado pela etapa personalizada. O arquivo processado da etapa personalizada não é passado para a etapa predefinida. 

## Acessar um arquivo após o processamento personalizado
<a name="process-uploaded-file"></a>

Se você estiver usando o Amazon S3 como armazenamento e se seu fluxo de trabalho incluir uma etapa personalizada que executa ações no arquivo originalmente carregado, as etapas subsequentes não poderão acessar esse arquivo processado. Ou seja, qualquer etapa após a etapa personalizada não pode referenciar o arquivo atualizado a partir da saída da etapa personalizada. 

Por exemplo, digamos que você tenha as três etapas a seguir no fluxo de trabalho. 
+ **Etapa 1** — Faça o upload de um arquivo chamado `example-file.txt`.
+ **Etapa 2** — Invoque uma função do Lambda que muda o `example-file.txt` de alguma forma.
+ **Etapa 3** — Tente realizar um processamento adicional na versão atualizada do `example-file.txt`.

Se você configurar o `sourceFileLocation` da Etapa 3 para ser `${original.file}`, a Etapa 3 usará o local do arquivo original de quando o servidor carregou o arquivo para o armazenamento na Etapa 1. Se você estiver usando o `${previous.file}` na Etapa 3, a Etapa 3 reutiliza o local do arquivo que a Etapa 2 usou como entrada.

Portanto, a Etapa 3 causa um erro. Por exemplo, se a Etapa 3 tentar copiar o `example-file.txt` atualizado, você receberá o seguinte erro:

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

Esse erro ocorre porque a etapa personalizada modifica a tag da entidade (ETag) para `example-file.txt` que ela não corresponda ao arquivo original.

**nota**  
Esse comportamento não ocorre se você estiver usando o Amazon EFS porque o Amazon EFS não usa tags de entidade para identificar arquivos.

## Exemplos de eventos enviados para AWS Lambda após o upload do arquivo
<a name="example-workflow-lambdas"></a>

Os exemplos a seguir mostram os eventos que são enviados AWS Lambda quando o upload de um arquivo é concluído. Um exemplo usa um servidor Transfer Family em que o domínio é configurado com o Amazon S3. O outro exemplo usa um servidor Transfer Family em que o domínio usa o 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"
    }
}
```

------

## Exemplo de função do Lambda para uma etapa de fluxo de trabalho personalizada
<a name="example-workflow-lambda"></a>

A função Lambda a seguir extrai as informações sobre o status de execução e, em seguida, chama a operação da [SendWorkflowStepState](https://docs.aws.amazon.com/transfer/latest/APIReference/API_SendWorkflowStepState.html)API para retornar o status ao fluxo de trabalho da etapa: ou. `SUCCESS` `FAILURE` Antes de sua função chamar a operação da API `SendWorkflowStepState`, você pode configurar o Lambda para realizar uma ação com base na lógica do seu fluxo de trabalho. 

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

## Permissões do IAM para a etapa de personalizar
<a name="custom-step-iam"></a>

Para permitir que uma etapa que chama o Lambda seja bem-sucedida, certifique-se de que a função de execução do seu fluxo de trabalho contenha as seguintes permissões.

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

# Políticas do IAM para fluxos de trabalho
<a name="workflow-execution-role"></a>

Ao adicionar um fluxo de trabalho a um servidor, você deve selecionar uma função de execução. O servidor usa essa função ao executar o fluxo de trabalho. Se a função não tiver as permissões adequadas, não será AWS Transfer Family possível executar o fluxo de trabalho. 

Esta seção descreve um conjunto possível de permissões AWS Identity and Access Management (IAM) que você pode usar para executar um fluxo de trabalho. Outros exemplos são descritos mais adiante neste tópico. 

**nota**  
Se seus arquivos do Amazon S3 tiverem tags, você precisará adicionar uma ou duas permissões à sua política do IAM.  
Adicione `s3:GetObjectTagging` para obter um arquivo Amazon S3 que não tenha versão.
Adicione `s3:GetObjectVersionTagging` para obter um arquivo Amazon S3 que tenha versão.

**Como criar uma função de execução para o seu fluxo de trabalho**

1. Crie uma nova função do IAM e adicione a política AWS gerenciada `AWSTransferFullAccess` à função. Para obter mais informações sobre como criar um perfil do IAM, consulte [Criar uma política e um perfil do IAM](requirements-roles.md).

1. Crie outra política com as seguintes permissões e anexe-a ao seu perfil. Substitua cada `user input placeholder` por suas próprias informações.  
****  

   ```
   {
       "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. Salve essa função e especifique-a como a função de execução ao adicionar um fluxo de trabalho a um servidor.
**nota**  
Ao criar funções do IAM, AWS recomenda que você restrinja o acesso aos seus recursos o máximo possível para seu fluxo de trabalho.

## relação de confiança no fluxo de trabalho
<a name="workflows-trust"></a>

As funções de execução do fluxo de trabalho também exigem uma relação de confiança com `transfer.amazonaws.com`. Para estabelecer uma relação de confiança para AWS Transfer Family, consulte [Estabelecer um relacionamento de confiança](requirements-roles.md#establish-trust-transfer).

Ao estabelecer sua relação de confiança, você também pode tomar medidas para evitar o problema *substituto confuso*. Para obter uma descrição desse problema, bem como exemplos de como evitá-lo, consulte [Prevenção do problema do “confused deputy” entre serviços](confused-deputy.md).

## Exemplo de função de execução: descriptografar, copiar e marcar
<a name="example-workflow-role-copy-tag"></a>

Se você tiver fluxos de trabalho que incluem etapas de marcação, cópia e descriptografia, você pode usar a seguinte política do IAM. Substitua cada `user input placeholder` por suas próprias informações. 

****  

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

## Exemplo de função de execução: executar função e excluir
<a name="example-workflow-role-custom-delete"></a>

Neste exemplo, você tem um fluxo de trabalho que invoca uma AWS Lambda função. Se o fluxo de trabalho excluir o arquivo carregado e tiver uma etapa de manipulador de exceções para agir em caso de falha na execução do fluxo de trabalho na etapa anterior, use a seguinte política do IAM. Substitua cada `user input placeholder` por suas próprias informações. 

****  

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

## Tratamento de exceções para um fluxo de trabalho
<a name="exception-workflow"></a>

Se algum erro ocorrer durante a execução de um fluxo de trabalho, as etapas de tratamento de exceções que você especificou serão executadas. Você especifica as etapas de tratamento de erros para um fluxo de trabalho da mesma forma que especifica as etapas nominais para o fluxo de trabalho. Por exemplo, suponha que você tenha configurado o processamento personalizado em etapas nominais para validar os arquivos recebidos. Se a validação do arquivo falhar, uma etapa de tratamento de exceções poderá enviar um e-mail ao administrador.

O exemplo de fluxo de trabalho a seguir contém duas etapas: 
+ Uma etapa nominal que verifica se o arquivo carregado está no formato CSV
+ Uma etapa de tratamento de exceções que envia um e-mail caso o arquivo carregado não esteja no formato CSV e a etapa nominal falhe

Para iniciar a etapa de tratamento de exceções, a AWS Lambda função na etapa nominal deve responder com. `Status="FAILURE"` Para obter mais informações sobre como tratar erros, consulte [Use etapas personalizadas de processamento de arquivos](custom-step-details.md).

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


# Monitore a execução do fluxo
<a name="cloudwatch-workflow"></a>

A Amazon CloudWatch monitora seus AWS recursos e os aplicativos que você executa Nuvem AWS em tempo real. Você pode usar CloudWatch a Amazon para coletar e rastrear métricas, que são variáveis que você pode medir para seus fluxos de trabalho. Você pode visualizar métricas de fluxo de trabalho e registros consolidados usando a Amazon CloudWatch.

## CloudWatch registro para um fluxo de trabalho
<a name="cloudwatch-workflow-logs"></a>

CloudWatch fornece auditoria e registro consolidados para o progresso e os resultados do fluxo de trabalho.

**Veja os CloudWatch registros da Amazon para fluxos de trabalho**

1. Abra o CloudWatch console da Amazon em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação à esquerda, escolha **Logs** e, em seguida, escolha **Grupos de logs**.

1. Na página **Grupos de registros**, na barra de navegação, escolha a região correta para seu AWS Transfer Family servidor.

1. Escolha o grupo de logs que corresponde ao seu servidor.

   Por exemplo, se o ID do seu servidor for `s-1234567890abcdef0`, seu grupo de logs será `/aws/transfer/s-1234567890abcdef0`.

1. Na página de detalhes do grupo de logs do seu servidor, os fluxos de log mais recentes são exibidos. Há dois fluxos de log para o usuário que você está explorando: 
   + Um para cada sessão do File Transfer Protocol (SFTP) da Secure Shell (SSH).
   + Um para o fluxo de trabalho que está sendo executado no seu servidor. O formato do fluxo de logs do fluxo de trabalho é `username.workflowID.uniqueStreamSuffix`.

   Por exemplo, se o seu usuário é `mary-major`, você terá os seguintes fluxos de logs:

   ```
   mary-major-east.1234567890abcdef0
   mary.w-abcdef01234567890.021345abcdef6789
   ```
**nota**  
 Os identificadores alfanuméricos de 16 dígitos listados neste exemplo são fictícios. Os valores que você vê na Amazon CloudWatch são diferentes. 

A página **Eventos de log** para o `mary-major-usa-east.1234567890abcdef0` exibe os detalhes de cada sessão do usuário, e o fluxo de logs para o `mary.w-abcdef01234567890.021345abcdef6789` contém os detalhes do fluxo de trabalho. 

 Veja a seguir um exemplo de fluxo de logs para o `mary.w-abcdef01234567890.021345abcdef6789`, com base em um fluxo de trabalho (`w-abcdef01234567890`) que contém uma etapa de cópia. 

```
{
    "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étricas para fluxos de trabalho
<a name="cloudwatch-workflows-metrics"></a>

AWS Transfer Family fornece várias métricas para fluxos de trabalho. Você pode visualizar métricas de quantas execuções de fluxos de trabalho foram iniciadas, concluídas com êxito e falharam no minuto anterior. Todas as CloudWatch métricas do Transfer Family estão descritas em[Usando CloudWatch métricas para servidores Transfer Family](metrics.md).

# Criar um fluxo de trabalho a partir de um modelo
<a name="workflow-template"></a>

Você pode implantar uma CloudFormation pilha que cria um fluxo de trabalho e um servidor a partir de um modelo. Esse procedimento contém um exemplo que você pode usar para implantar rapidamente um fluxo de trabalho.

**Para criar uma CloudFormation pilha que cria um AWS Transfer Family fluxo de trabalho e um servidor**

1. Abra o CloudFormation console em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Salve o seguinte código em um arquivo.

------
#### [ 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. Substitua os seguintes itens pelo seus próprios.
   + Substitua *`workflow-execution-role-arn`* pelo ARN de uma função de execução de fluxo de trabalho real. Por exemplo, `arn:aws:transfer:us-east-2:111122223333:workflow/w-1234567890abcdef0`.
   + Substitua `arn:aws:lambda:region:account-id:function:function-name` pelo ARN da sua função do Lambda. Por exemplo, .`arn:aws:lambda:us-east-2:123456789012:function:example-lambda-idp`

1. *Siga as instruções para implantar uma CloudFormation pilha a partir de um modelo existente em [Seleção de um modelo de pilha no Guia](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-console-create-stack-template.html) do AWS CloudFormation usuário.*

Depois que a pilha for implantada, você poderá ver detalhes sobre ela na guia **Saídas** no console. CloudFormation O modelo cria um novo servidor AWS Transfer Family SFTP que usa usuários gerenciados pelo serviço e um novo fluxo de trabalho e associa o fluxo de trabalho ao novo servidor.

## Remover um fluxo de trabalho de um servidor Transfer Family
<a name="remove-workflow-association"></a>

Se você associou um fluxo de trabalho a um servidor Transfer Family e agora deseja remover essa associação, pode fazer isso usando o console ou programaticamente.

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

**Para remover um fluxo de trabalho de um servidor Transfer Family**

1. Abra o AWS Transfer Family console em [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. No painel de navegação à esquerda, selecione **Servidores**.

1. Escolha o identificador do servidor na coluna **ID do servidor**.

1. Na página de detalhes do servidor, role para baixo até a seção **Detalhes adicionais** e escolha **Editar**. 

1. Na página **Editar detalhes adicionais**, na seção **Fluxos de trabalho gerenciados**, limpe as informações de todas as configurações:
   + Selecione o traço (-) na lista de fluxos de trabalho do **Fluxo de trabalho para fazer upload completo dos arquivos**.
   + Se já não estiver desmarcado, selecione o traço (-) na lista de fluxos de trabalho do **Fluxo de trabalho para fazer upload parcial dos arquivos**.
   +  Selecione o traço (-) na lista de funções para a função de **Execução de fluxos de trabalho gerenciados**.

   Se você não vê o traço, role para cima até vê-lo, pois é o primeiro valor em cada menu.

   A tela deve ser algo semelhante ao exibido a seguir.  
![\[O painel Fluxos de trabalho gerenciados, mostrando todos os parâmetros desmarcados.\]](http://docs.aws.amazon.com/pt_br/transfer/latest/userguide/images/workflows-remove-from-server.png)

1. Role para baixo e selecione **Salvar** para salvar suas alterações.

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

Você usa a chamada `update-server` (ou `UpdateServer` para API) e fornece argumentos vazios para os parâmetros `OnUpload` e `OnPartialUpload`.

A partir do AWS CLI, execute o seguinte comando:

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

Substitua `your-server-id` pelo ID do seu servidor. Por exemplo, se o ID do seu servidor for `s-01234567890abcdef`, o comando será o seguinte:

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

------

## Restrições e limitações de fluxos de trabalho gerenciados
<a name="limitations-workflow"></a>

**Restrições**

Atualmente, as restrições a seguir se aplicam aos fluxos de trabalho de processamento pós-upload do AWS Transfer Family. 
+ As AWS Lambda funções entre contas e regiões não são suportadas. No entanto, você pode copiar entre contas, desde que suas políticas AWS Identity and Access Management (IAM) estejam configuradas corretamente.
+ Para todas as etapas do fluxo de trabalho, todos os buckets do Amazon S3 acessados pelo fluxo de trabalho devem estar na mesma região do próprio fluxo de trabalho.
+ Para uma etapa de descriptografia, o destino da descriptografia deve corresponder à origem da região e do armazenamento secundário (por exemplo, se o arquivo a ser descriptografado estiver armazenado no Amazon S3, o destino especificado também deverá estar no Amazon S3).
+ Somente etapas personalizadas assíncronas são suportadas.
+ Os tempos limite de etapa personalizados são aproximados. Ou seja, o tempo limite pode demorar um pouco mais do que o especificado. Além disso, o fluxo de trabalho depende da função do Lambda. Portanto, se a função for atrasada durante a execução, o fluxo de trabalho não estará ciente do atraso.
+ Se você exceder seu limite de controle de utilização, o Transfer Family não adicionará operações de fluxo de trabalho à fila.
+ Os fluxos de trabalho não são iniciados para arquivos com tamanho 0. Arquivos com tamanho maior que 0 iniciam o fluxo de trabalho associado.
+ Você pode anexar um fluxo de trabalho de processamento de arquivos a um servidor Transfer Family que usa o AS2 protocolo: no entanto, AS2 as mensagens não executam fluxos de trabalho conectados ao servidor. 

**Limitações**

 Além disso, os seguintes limites funcionais se aplicam aos fluxos de trabalho do Transfer Family: 
+ O número de fluxos de trabalho por região, por conta, é limitado a 10.
+ O tempo limite máximo para etapas personalizadas é de 30 minutos.
+ O número máximo de etapas em um fluxo de trabalho é 8.
+ O número máximo de tags por fluxo de trabalho é 50.
+ O número máximo de execuções simultâneas que contêm uma etapa de descriptografia é 250 por fluxo de trabalho.
+ Você pode armazenar no máximo 3 chaves privadas PGP por servidor Transfer Family por usuário.
+ O tamanho máximo de um arquivo descriptografado é 10 GB.
+ Nós aceleramos a nova taxa de execução usando um sistema de [bucket de token](https://en.wikipedia.org/wiki/Token_bucket) com uma capacidade de expansão de 100 e uma taxa de recarga de 1.
+ Sempre que você remove um fluxo de trabalho de um servidor e o substitui por um novo ou atualiza a configuração do servidor (o que afeta a função de execução de um fluxo de trabalho), você deve esperar aproximadamente 10 minutos antes de executar o novo fluxo de trabalho. O servidor do Transfer Family armazena em cache os detalhes do fluxo de trabalho e leva 10 minutos para que o servidor atualize o cache.

  Além disso, você deve sair de qualquer sessão ativa de SFTP e, em seguida, fazer login novamente após o período de espera de 10 minutos para ver as alterações.