ResultWriter (Mapa) - AWS Step Functions

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 depósito de Amazon S3 que utiliza para exportar los resultados de una ejecución de mapas esté en la misma máquina de estados Cuenta de AWS y Región de AWS que esté en su 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 myOutputBucket dentro de un prefijo llamado csvProcessJobs.

{ "ResultWriter": { "Resource": "arn:aws:states:::s3:putObject", "Parameters": { "Bucket": "myOutputBucket", "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": "myOutputBucket", "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 ha utilizado redriven con un Map Run, el archivo manifest.json contendrá referencias a todas las ejecuciones correctas de flujos de trabajo secundarios en todos los intentos de un Map Run. Sin embargo, este archivo contiene referencias a las ejecuciones con errores y pendientes de un uso específico de 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 que Step Functions pueda acceder a AWS los recursos, como los buckets y objetos de Amazon S3 y las funciones de 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:::resultBucket/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 con una AWS Key Management Service (AWS KMS) clave, debe incluir los AWS KMS permisos necesarios en su IAM política. Para obtener más información, consulte IAMpermisos para un bucket de Amazon S3 AWS KMS key cifrado.