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)
Gerenciando o estado e transformando dados
Recentemente, o Step Functions adicionou variáveis JSONata para gerenciar dados de estado e transformação.
Saiba mais sobre como transmitir dados com variáveis e transformar dados com JSONata.
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 da mesma máquina de estado Conta da AWS e na Região da AWS mesma. Caso contrário, a execução da sua máquina de estado falhará com o erro States.ResultWriterFailed
.
Exportar os resultados para um bucket do Amazon S3 é útil se o tamanho da carga de saída exceder 256 KiB. 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, usando JSONPath, mostra a sintaxe do ResultWriter
campo com Parameters
para exportar os resultados da execução do 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
"
}
}
}
Para JSONataestados, Parameters
será substituído porArguments
.
{
"ResultWriter": {
"Resource": "arn:aws:states:::s3:putObject",
"Arguments": {
"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 KiB, a execução da máquina de estado falhará e retornará um States.DataLimitExceeded
erro.
[
{
"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: Step Functions para acessar 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 nomeada csvJobs
em um bucket do Amazon S3 usando PutObject
API a 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 as AWS KMS permissões necessárias em sua IAM política. Para obter mais informações, consulte Permissões do IAM para bucket criptografado do Amazon S3 AWS KMS key.