Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
ResultWriter (Mapa)
El ResultWriter
campo es un JSON objeto que especifica la ubicación de Amazon S3 en la que Step Functions escribe los resultados de las ejecuciones del flujo de trabajo secundario iniciadas por un estado de mapa distribuido. De forma predeterminada, Step Functions no exporta estos resultados.
importante
Asegúrese de que el bucket de Amazon S3 que utiliza para exportar los resultados de un Map Run esté debajo del mismo Cuenta de AWS y Región de AWS como tu máquina de estados. De lo contrario, la ejecución de la máquina de estado fallará y se producirá el error States.ResultWriterFailed
.
La exportación de los resultados a un bucket de Amazon S3 es útil si el tamaño de la carga de salida es superior a 256 KB. Step Functions consolida todos los datos de ejecución del flujo de trabajo secundario, como la entrada y salida de la ejecución y el estado de la ejecución. ARN A continuación, exporta las ejecuciones con el mismo estado a sus archivos respectivos en la ubicación de Amazon S3 especificada. En el siguiente ejemplo se muestra la sintaxis del campo ResultWriter
si se exportan los resultados de la ejecución del flujo de trabajo secundario. En este ejemplo, los resultados se almacenan en un bucket llamado amzn-s3-demo-destination-bucket
dentro de un prefijo llamado csvProcessJobs
.
{
"ResultWriter": {
"Resource": "arn:aws:states:::s3:putObject",
"Parameters": {
"Bucket": "amzn-s3-demo-destination-bucket
",
"Prefix": "csvProcessJobs
"
}
}
}
sugerencia
En Workflow Studio, puede exportar los resultados de la ejecución del flujo de trabajo secundario seleccionando Exportar los resultados del estado Map a Amazon S3. A continuación, escriba el nombre del bucket de Amazon S3 y el prefijo donde desea exportar los resultados.
Step Functions necesita los permisos adecuados para acceder al bucket y a la carpeta a los que desea exportar los resultados. Para obtener información sobre la IAM política requerida, consulteIAMpolíticas para ResultWriter.
Si exporta los resultados de la ejecución del flujo de trabajo secundario, la ejecución del estado del mapa distribuido devuelve la ejecución del mapa ARN y los datos sobre la ubicación de exportación de Amazon S3 en el siguiente 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"
}
}
Step Functions exporta las ejecuciones con el mismo estado a sus respectivos archivos. Por ejemplo, si las ejecuciones de flujos de trabajo secundarios dieron como resultado 500 resultados satisfactorios y 200 con error, Step Functions creará dos archivos en la ubicación de Amazon S3 especificada para los resultados correctos y erróneos. En este ejemplo, el archivo de resultados con éxito contiene los 500 resultados con éxito, mientras que el archivo de resultados con error contiene los 200 resultados con error.
Para un intento de ejecución determinado, Step Functions crea los siguientes archivos en la ubicación de Amazon S3 especificada en función del resultado de la ejecución:
manifest.json
— Contiene metadatos de Map Run, como la ubicación de exportación, Map Run ARN e información sobre los archivos de resultados.Si tienes redrivena Map Run, el
manifest.json
archivo, contiene referencias a todas las ejecuciones exitosas de flujos de trabajo secundarios en todos los intentos de Map Run. Sin embargo, este archivo contiene referencias a las ejecuciones fallidas y pendientes de un caso específico redrive.SUCCEEDED_n.json
– Contiene los datos consolidados de todas las ejecuciones correctas de flujos de trabajo secundarios. n representa el número de índice del archivo. El número de índice comienza en 0. Por ejemplo,SUCCEEDED_1.json
.FAILED_n.json
– Contiene los datos consolidados de todas las ejecuciones de flujos de trabajo secundarios con error, con tiempo de espera agotado o anuladas. Utilice este archivo para recuperarse de ejecuciones con error. n representa el índice del archivo. El número de índice comienza en 0. Por ejemplo,FAILED_1.json
.PENDING_n.json
– Contiene los datos consolidados de todas las ejecuciones de flujos de trabajo secundarios que no se iniciaron porque el Map Run produjo un error o se anuló. n representa el índice del archivo. El número de índice comienza en 0. Por ejemplo,PENDING_1.json
.
Step Functions admite archivos de resultados individuales de hasta 5 GB. Si el tamaño de un archivo supera los 5 GB, Step Functions crea otro archivo para escribir el resto de los resultados de la ejecución y añade un número de índice al nombre del archivo. Por ejemplo, si el tamaño del archivo Succeeded_0.json
supera los 5 GB, Step Functions crea un archivo Succeeded_1.json
para registrar los resultados restantes.
Si no especifica que se exporten los resultados de la ejecución del flujo de trabajo secundario, la ejecución de la máquina de estado devuelve una matriz de resultados de la ejecución del flujo de trabajo secundario, como se muestra en el siguiente ejemplo:
nota
Si el tamaño de salida devuelto supera los 256 KB, se produce un error en la ejecución de la máquina de estado y se devuelve un error 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
Al crear flujos de trabajo con la consola Step Functions, Step Functions puede generar IAM políticas automáticamente en función de los recursos de la definición de flujo de trabajo. Estas políticas incluyen los privilegios mínimos necesarios para permitir que la función de máquina de estados invoque la StartExecution
API acción para el estado del mapa distribuido. Estas políticas también incluyen los privilegios mínimos necesarios para acceder a Step Functions AWS recursos, como buckets y objetos de Amazon S3 y funciones Lambda. Le recomendamos encarecidamente que incluya solo los permisos que sean necesarios en sus IAM políticas. Por ejemplo, si el flujo de trabajo incluye un estado Map
en modo distribuido, aplique las políticas al bucket y a la carpeta de Amazon S3 específicos que contengan el conjunto de datos.
importante
Si especifica un bucket y un objeto de Amazon S3, o un prefijo, con una ruta de referencia a un par clave-valor existente en la entrada de estado del mapa distribuido, asegúrese de actualizar las IAM políticas de su flujo de trabajo. Limite las políticas hasta los nombres de objeto y bucket a los que se dirige la ruta en tiempo de ejecución.
El siguiente ejemplo IAM de política otorga los privilegios mínimos necesarios para escribir los resultados de la ejecución del flujo de trabajo secundario en una carpeta llamada csvJobs
en un bucket de Amazon S3 mediante la PutObject
API acción.
{ "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
/*" ] } ] }
Si el bucket de Amazon S3 en el que está escribiendo el resultado de la ejecución del flujo de trabajo secundario está cifrado mediante un AWS Key Management Service (AWS KMS) clave, debe incluir la necesaria AWS KMS permisos en su IAM política. Para obtener más información, consulte IAMpermisos para AWS KMS key bucket de Amazon S3 cifrado.