ResultWriter (Mapa) - AWS Step Functions

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

ResultWriter (Mapa)

O ResultWriter campo é um JSON objeto que especifica a localização do Amazon S3 em que o Step Functions grava os resultados das execuções do fluxo de trabalho secundário iniciadas por um estado de Mapa Distribuído. Por padrão, o Step Functions não exporta esses resultados.

Importante

Certifique-se de que o bucket do Amazon S3 que você usa para exportar os resultados de uma execução de mapa esteja abaixo do mesmo Conta da AWS e Região da AWS como sua máquina estatal. Caso contrário, a execução da sua máquina de estado falhará com o erro States.ResultWriterFailed.

A exportação dos resultados para um bucket do Amazon S3 será uma operação útil se o tamanho do seu payload de saída exceder 256 KB. O Step Functions consolida todos os dados de execução do fluxo de trabalho secundário, como entrada e saída da execução e status da execução. ARN Em seguida, ele exporta as execuções com o mesmo status para seus respectivos arquivos na localização especificada do Amazon S3. O exemplo a seguir mostra a sintaxe do campo ResultWriter de quando você exporta os resultados da execução de um fluxo de trabalho secundário. Nesse exemplo, os resultados são armazenados em um bucket chamado amzn-s3-demo-destination-bucket, dentro de um prefixo chamado csvProcessJobs.

{ "ResultWriter": { "Resource": "arn:aws:states:::s3:putObject", "Parameters": { "Bucket": "amzn-s3-demo-destination-bucket", "Prefix": "csvProcessJobs" } } }
dica

No Workflow Studio, você pode exportar os resultados da execução do fluxo de trabalho secundário selecionando Exportar resultados do estado Mapa para o Amazon S3. Em seguida, forneça o nome do bucket do Amazon S3 e o prefixo para o qual você deseja exportar os resultados.

O Step Functions precisa das permissões apropriadas para acessar o bucket e a pasta para onde você deseja exportar os resultados. Para obter informações sobre a IAM política necessária, consulteIAMpolíticas para ResultWriter.

Se você exportar os resultados da execução do fluxo de trabalho secundário, a execução do estado do Mapa Distribuído retornará a Execução do Mapa ARN e os dados sobre o local de exportação do Amazon S3 no seguinte formato:

{ "MapRunArn": "arn:aws:states:us-east-2:123456789012:mapRun:csvProcess/Map:ad9b5f27-090b-3ac6-9beb-243cd77144a7", "ResultWriterDetails": { "Bucket": "amzn-s3-demo-destination-bucket", "Key": "csvProcessJobs/ad9b5f27-090b-3ac6-9beb-243cd77144a7/manifest.json" } }

O Step Functions exporta execuções com o mesmo status para seus respectivos arquivos. Por exemplo, se as execuções de fluxo de trabalho secundário resultaram em 500 resultados de êxito e 200 resultados de falha, o Step Functions criará dois arquivos no local especificado do Amazon S3 para os resultados de êxito e falha. Nesse exemplo, o arquivo de resultados de êxito contém os 500 resultados de êxito, enquanto o arquivo de resultados de falha contém os 200 resultados de falha.

Para uma determinada tentativa de execução, o Step Functions cria os seguintes arquivos no local especificado do Amazon S3, dependendo da saída da execução:

  • manifest.json— Contém metadados do Map Run, como local de exportação, Map Run ARN e informações sobre os arquivos de resultados.

    Se você tem redrivenum Map Run, o manifest.json arquivo, contém referências a todas as execuções bem-sucedidas do fluxo de trabalho secundário em todas as tentativas de um Map Run. No entanto, esse arquivo contém referências às execuções falhadas e pendentes de um determinado redrive.

  • SUCCEEDED_n.json — contém os dados consolidados de todas as execuções bem-sucedidas do fluxo de trabalho secundário. n representa o número do índice do arquivo. O número do índice começa em 0. Por exemplo, SUCCEEDED_1.json.

  • FAILED_n.json — contém os dados consolidados de todas as execuções do fluxo de trabalho secundário com falha, que atingiram o tempo limite ou foram abortadas. Use esse arquivo para se recuperar a partir de execuções com falha. n representa o índice do arquivo. O número do índice começa em 0. Por exemplo, FAILED_1.json.

  • PENDING_n.json — contém os dados consolidados de todas as execuções do fluxo de trabalho secundário que não foram iniciadas porque a Execução de mapa falhou ou foi abortada. n representa o índice do arquivo. O número do índice começa em 0. Por exemplo, PENDING_1.json.

O Step Functions oferece suporte a arquivos de resultados individuais de até 5 GB. Se o tamanho do arquivo exceder 5 GB, o Step Functions criará outro arquivo para gravar os resultados restantes da execução e anexará um número de índice ao nome do arquivo. Por exemplo, se o tamanho do arquivo Succeeded_0.json exceder 5 GB, o Step Functions criará um arquivo Succeeded_1.json para registrar os resultados restantes.

Se você não especificou a exportação dos resultados da execução do fluxo de trabalho secundário, a execução da máquina de estado retornará uma matriz dos resultados da execução do fluxo de trabalho secundário, conforme mostrado no exemplo a seguir.

nota

Se o tamanho da saída retornada exceder 256 KB, a execução da máquina de estado falhará e retornará um erro States.DataLimitExceeded.

[ { "statusCode": 200, "inputReceived": { "show_id": "s1", "release_year": "2020", "rating": "PG-13", "type": "Movie" } }, { "statusCode": 200, "inputReceived": { "show_id": "s2", "release_year": "2021", "rating": "TV-MA", "type": "TV Show" } }, ... ]

IAMpolíticas para ResultWriter

Quando você cria fluxos de trabalho com o console Step Functions, o Step Functions pode gerar IAM políticas automaticamente com base nos recursos em sua definição de fluxo de trabalho. Essas políticas incluem os privilégios mínimos necessários para permitir que a função de máquina de estado invoque a StartExecution API ação para o estado do Mapa Distribuído. Essas políticas também incluem os privilégios mínimos necessários para acessar Step Functions. AWS recursos, como buckets e objetos do Amazon S3 e funções Lambda. É altamente recomendável que você inclua somente as permissões necessárias em suas IAM políticas. Por exemplo, se o fluxo de trabalho incluir um estado Map no modo distribuído, defina o escopo de suas políticas até o bucket e a pasta específicos do Amazon S3 que contêm o conjunto de dados.

Importante

Se você especificar um bucket e um objeto do Amazon S3, ou prefixo, com um caminho de referência para um par de valores-chave existente na entrada de estado do Mapa Distribuído, certifique-se de atualizar as políticas do IAM seu fluxo de trabalho. Defina o escopo das políticas até o bucket e os nomes de objetos para os quais o caminho é resolvido em runtime.

O exemplo IAM de política a seguir concede os privilégios mínimos necessários para gravar os resultados da execução do fluxo de trabalho secundário em uma pasta chamada csvJobs em um bucket do Amazon S3 usando a PutObject API ação.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket/csvJobs/*" ] } ] }

Se o bucket do Amazon S3 no qual você está gravando, o resultado da execução do fluxo de trabalho secundário for criptografado usando um AWS Key Management Service (AWS KMS) chave, você deve incluir o necessário AWS KMS permissões em sua IAM política. Para obter mais informações, consulte IAMpermissões para AWS KMS key bucket Amazon S3 criptografado.