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.
ItemReader (Mapa)
El ItemReader
campo es un JSON objeto que especifica un conjunto de datos y su ubicación. Un estado Map Distributed usa este conjunto de datos como entrada. En el siguiente ejemplo, se muestra la sintaxis del ItemReader
campo si el conjunto de datos es un CSV archivo almacenado en un bucket de Amazon S3.
"ItemReader": {
"ReaderConfig": {
"InputType": "CSV",
"CSVHeaderLocation": "FIRST_ROW"
},
"Resource": "arn:aws:states:::s3:getObject",
"Parameters": {
"Bucket": "amzn-s3-demo-bucket
",
"Key": "csvDataset/ratings.csv
"
}
}
sugerencia
En Workflow Studio, se especifica el conjunto de datos y su ubicación en el campo Fuente del elemento.
Contenido
Contenido del ItemReader campo
El contenido del campo ItemReader
varía según el conjunto de datos. Por ejemplo, si el conjunto de datos es una JSON matriz pasada desde un paso anterior del flujo de trabajo, el ItemReader
campo se omite. Si el conjunto de datos es un origen de datos de Amazon S3, este campo contiene los siguientes subcampos.
ReaderConfig
Un JSON objeto que especifica los siguientes detalles:
InputType
Especifica el tipo de fuente de datos de Amazon S3, como un CSV archivo, un objeto, un JSON archivo o una lista de inventario de Amazon S3. En Workflow Studio, puede seleccionar un tipo de entrada de la lista desplegable Origen del elemento de Amazon S3 en el campo Fuente del elemento.
CSVHeaderLocation
nota
Debe especificar este campo solo si utiliza un CSV archivo como conjunto de datos.
Acepta uno de los siguientes valores para especificar la ubicación del encabezado de la columna:
importante
Actualmente, Step Functions admite CSV encabezados de hasta 10 KB.
FIRST_ROW
– Utilice esta opción si la primera línea del archivo es el encabezado.GIVEN
– Utilice esta opción para especificar el encabezado dentro de la definición de la máquina de estado. Por ejemplo, si el CSV archivo contiene los siguientes datos.1,307,3.5,1256677221 1,481,3.5,1256677456 1,1091,1.5,1256677471 ...
Proporcione la siguiente JSON matriz como CSV encabezado.
"ItemReader": { "ReaderConfig": { "InputType": "CSV", "CSVHeaderLocation": "GIVEN", "CSVHeaders": [
"userId"
,"movieId"
,"rating"
,"timestamp"
] } }
sugerencia
En Workflow Studio, puede encontrar esta opción en Configuración adicional, en el campo Fuente del elemento.
MaxItems
Limita el número de elementos de datos que se pasan al estado
Map
. Por ejemplo, supongamos que proporciona un CSV archivo que contiene 1000 filas y especifica un límite de 100. Entonces, el intérprete pasa solo 100 filas al estadoMap
. El estadoMap
procesa los elementos en orden secuencial, a partir de la fila siguiente al encabezado.De forma predeterminada, el estado
Map
se repite en todos los elementos del conjunto de datos especificado.nota
Actualmente, puede especificar un límite de hasta 100 000 000. El estado Map Distributed deja de leer los elementos que superen este límite.
sugerencia
En Workflow Studio, puede encontrar esta opción en Configuración adicional, en el campo Fuente del elemento.
También puede especificar una ruta de referencia a un par clave-valor existente en la entrada del estado Map Distributed. Esta ruta debe convertirse en un número entero positivo. La ruta de referencia se especifica en el subcampo
MaxItemsPath
.importante
Puede especificar el subcampo
MaxItems
oMaxItemsPath
, pero no ambos.
Resource
La API acción de Amazon S3 que Step Functions debe invocar depende del conjunto de datos especificado.
Parameters
Un JSON objeto que especifica el nombre del bucket de Amazon S3 y la clave de objeto en los que se almacena el conjunto de datos.
importante
Asegúrese de que sus depósitos de Amazon S3 estén en el mismo lugar Cuenta de AWS y Región de AWS como tu máquina de estados.
Ejemplos de conjuntos de datos
Puede especificar una de las opciones siguientes como conjunto de datos:
importante
Step Functions necesita los permisos adecuados para obtener acceso a los conjuntos de datos de Amazon S3 que utilice. Para obtener información sobre IAM las políticas de los conjuntos de datos, consulteIAMpolíticas para conjuntos de datos.
Un estado de mapa distribuido puede aceptar una JSON entrada pasada desde un paso anterior del flujo de trabajo. Esta entrada debe ser una matriz o debe contener una matriz dentro de un nodo específico. Para seleccionar un nodo que contenga la matriz, puede usar el campo ItemsPath (Mapa)
.
Para procesar los elementos individuales de la matriz, el estado Map Distributed inicia la ejecución de un flujo de trabajo secundario para cada elemento de la matriz. Las siguientes pestañas muestran ejemplos de la entrada que se transfiere al estado Map
y la entrada correspondiente a la ejecución de un flujo de trabajo secundario.
nota
Step Functions omite el ItemReader
campo cuando el conjunto de datos es una JSON matriz de un paso anterior.
Un estado Map Distributed puede iterar sobre los objetos que se almacenan en un bucket de Amazon S3. Cuando la ejecución del flujo de trabajo alcanza el Map
estado, Step Functions invoca la API acción ListObjectsV2, que devuelve una matriz de metadatos del objeto Amazon S3. En esta matriz, cada elemento contiene datos, como ETaguna clave, para los datos almacenados en el depósito.
Para procesar los elementos individuales de la matriz, el estado Map Distributed inicia la ejecución de un flujo de trabajo secundario. Por ejemplo, suponga que su bucket de Amazon S3 contiene 100 imágenes. A continuación, la matriz devuelta tras invocar la ListObjectsV2
API acción contiene 100 elementos. A continuación, el estado Map Distributed inicia 100 ejecuciones de flujos de trabajo secundarios para procesar cada elemento de la matriz.
nota
En la actualidad, Step Functions también incluye un elemento para cada carpeta que cree en un bucket de Amazon S3 específico utilizando la consola de Amazon S3. Esto se traduce en una ejecución de flujo de trabajo secundaria adicional iniciada por el estado Map Distributed. Para evitar crear una ejecución de flujo de trabajo secundaria adicional para la carpeta, le recomendamos que utilice la AWS CLI para crear carpetas. Para obtener más información, consulte Comandos de alto nivel de Amazon S3 en AWS Command Line Interface Guía del usuario.
Step Functions necesita los permisos adecuados para obtener acceso a los conjuntos de datos de Amazon S3 que utilice. Para obtener información sobre IAM las políticas de los conjuntos de datos, consulteIAMpolíticas para conjuntos de datos.
En las siguientes pestañas se muestran ejemplos de la sintaxis del campo ItemReader
y de la entrada que se transfiere a la ejecución de un flujo de trabajo secundario para este conjunto de datos.
Un estado de mapa distribuido puede aceptar un JSON archivo almacenado en un bucket de Amazon S3 como conjunto de datos. El JSON archivo debe contener una matriz.
Cuando la ejecución del flujo de trabajo alcanza el Map
estado, Step Functions invoca la GetObjectAPIacción para recuperar el archivo especificadoJSON. A continuación, el estado Map
se repite sobre cada elemento de la matriz e inicia la ejecución de un flujo de trabajo secundario para cada elemento. Por ejemplo, si el JSON archivo contiene 1000 elementos de matriz, el Map
estado inicia 1000 ejecuciones de flujos de trabajo secundarios.
nota
La entrada de ejecución utilizada para iniciar la ejecución de un flujo de trabajo secundario no puede superar los 256 KB. Sin embargo, Step Functions permite leer un elemento de hasta 8 MB de un JSON archivo CSV o si, a continuación, se aplica el
ItemSelector
campo opcional para reducir el tamaño del elemento.Actualmente, Step Functions admite 10 GB como tamaño máximo de un archivo individual en un informe de inventario de Amazon S3. Sin embargo, Step Functions puede procesar más de 10 GB si cada archivo individual tiene menos de 10 GB.
Step Functions necesita los permisos adecuados para obtener acceso a los conjuntos de datos de Amazon S3 que utilice. Para obtener información sobre IAM las políticas de los conjuntos de datos, consulteIAMpolíticas para conjuntos de datos.
En las siguientes pestañas se muestran ejemplos de la sintaxis del campo ItemReader
y de la entrada que se transfiere a la ejecución de un flujo de trabajo secundario para este conjunto de datos.
Para este ejemplo, imagine que tiene un JSON archivo llamado
. Ha almacenado este archivo en un prefijo llamado factcheck.json
en un bucket de Amazon S3. El siguiente es un ejemplo del JSON conjunto de datos.jsonDataset
[
{
"verdict": "true",
"statement_date": "6/11/2008",
"statement_source": "speech"
},
{
"verdict": "false",
"statement_date": "6/7/2022",
"statement_source": "television"
},
{
"verdict": "mostly-true",
"statement_date": "5/18/2016",
"statement_source": "news"
},
...
]
Un estado de mapa distribuido puede aceptar un CSV archivo almacenado en un bucket de Amazon S3 como conjunto de datos. Si usa un CSV archivo como conjunto de datos, debe especificar un encabezado de CSV columna. Para obtener información sobre cómo especificar un CSV encabezado, consulteContenido del ItemReader campo.
Step Functions analiza CSV los archivos según las siguientes reglas:
-
Las comas (,) son un delimitador que separa los campos.
-
Las líneas nuevas son un delimitador que separa los registros.
-
Los campos se tratan como cadenas. Para las conversiones de tipos de datos, utilice la función intrínseca
States.StringToJson
en ItemSelector (Mapa). -
No se requieren comillas dobles (» «) para encerrar cadenas. Sin embargo, las cadenas entre comillas dobles pueden contener comas y líneas nuevas sin que actúen como delimitadores de registro.
-
Puede conservar las comillas dobles repitiéndolas.
-
Si el número de campos de una fila es inferior al número de campos del encabezado, Step Functions proporciona cadenas vacías para los valores faltantes.
-
Si el número de campos de una fila es mayor que el número de campos del encabezado, Step Functions omite los campos adicionales.
Para obtener más información sobre cómo Step Functions analiza un CSV archivo, consulteExample of parsing an input CSV file.
Cuando la ejecución del flujo de trabajo alcanza el Map
estado, Step Functions invoca la GetObjectAPIacción para recuperar el archivo especificadoCSV. A continuación, el Map
estado se repite en cada fila del CSV archivo e inicia la ejecución de un flujo de trabajo secundario para procesar los elementos de cada fila. Por ejemplo, supongamos que proporciona un CSV archivo que contiene 100 filas como entrada. Entonces, el intérprete pasa cada fila al estado Map
. El estado Map
procesa los elementos en orden de serie, a partir de la fila siguiente al encabezado.
nota
La entrada de ejecución utilizada para iniciar la ejecución de un flujo de trabajo secundario no puede superar los 256 KB. Sin embargo, Step Functions permite leer un elemento de hasta 8 MB de un JSON archivo CSV o si, a continuación, se aplica el
ItemSelector
campo opcional para reducir el tamaño del elemento.Actualmente, Step Functions admite 10 GB como tamaño máximo de un archivo individual en un informe de inventario de Amazon S3. Sin embargo, Step Functions puede procesar más de 10 GB si cada archivo individual tiene menos de 10 GB.
Step Functions necesita los permisos adecuados para obtener acceso a los conjuntos de datos de Amazon S3 que utilice. Para obtener información sobre IAM las políticas de los conjuntos de datos, consulteIAMpolíticas para conjuntos de datos.
En las siguientes pestañas se muestran ejemplos de la sintaxis del campo ItemReader
y de la entrada que se transfiere a la ejecución de un flujo de trabajo secundario para este conjunto de datos.
Un estado Map Distributed puede aceptar un archivo de manifiesto de inventario de Amazon S3 almacenado en un bucket de Amazon S3 como conjunto de datos.
Cuando la ejecución del flujo de trabajo alcanza el Map
estado, Step Functions invoca la GetObjectAPIacción para recuperar el archivo de manifiesto de inventario de Amazon S3 especificado. A continuación, el estado Map
recorre en iteración los objetos del inventario para devolver una matriz de metadatos de objetos de inventario de Amazon S3.
nota
Actualmente, Step Functions admite 10 GB como tamaño máximo de un archivo individual en un informe de inventario de Amazon S3. Sin embargo, Step Functions puede procesar más de 10 GB si cada archivo individual tiene menos de 10 GB.
Step Functions necesita los permisos adecuados para obtener acceso a los conjuntos de datos de Amazon S3 que utilice. Para obtener información sobre IAM las políticas de los conjuntos de datos, consulte. IAMpolíticas para conjuntos de datos
A continuación se muestra un ejemplo de fichero de inventario en CSV formato. Este archivo incluye los objetos denominados csvDataset
yimageDataset
, que se almacenan en un bucket de Amazon S3 que lleva ese nombre amzn-s3-demo-source-bucket
.
"amzn-s3-demo-source-bucket","csvDataset/","0","2022-11-16T00:27:19.000Z"
"amzn-s3-demo-source-bucket","csvDataset/titles.csv","3399671","2022-11-16T00:29:32.000Z"
"amzn-s3-demo-source-bucket","imageDataset/","0","2022-11-15T20:00:44.000Z"
"amzn-s3-demo-source-bucket","imageDataset/n02085620_10074.jpg","27034","2022-11-15T20:02:16.000Z"
...
importante
Actualmente, Step Functions no admite el informe de inventario de Amazon S3 definido por el usuario como conjunto de datos. También debe asegurarse de que el formato de salida de su informe de inventario de Amazon S3 seaCSV. Para obtener más información sobre los inventarios de Amazon S3 y cómo configurarlos, consulte Inventario de Amazon S3 en la Guía del usuario de Amazon S3.
El siguiente ejemplo de un archivo de manifiesto de inventario muestra CSV los encabezados de los metadatos de los objetos de inventario.
{
"sourceBucket" : "amzn-s3-demo-source-bucket
",
"destinationBucket" : "arn:aws:s3:::amzn-s3-demo-inventory
",
"version" : "2016-11-30",
"creationTimestamp" : "1668560400000",
"fileFormat" : "CSV",
"fileSchema" : "Bucket, Key, Size, LastModifiedDate",
"files" : [ {
"key" : "amzn-s3-demo-bucket
/destination-prefix
/data/20e55de8-9c21-45d4-99b9-46c732000228.csv.gz
",
"size" : 7300,
"MD5checksum" : "a7ff4a1d4164c3cd55851055ec8f6b20"
} ]
}
En las siguientes pestañas se muestran ejemplos de la sintaxis del campo ItemReader
y de la entrada que se transfiere a la ejecución de un flujo de trabajo secundario para este conjunto de datos.
IAMpolíticas para conjuntos de datos
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.
Los siguientes ejemplos IAM de políticas otorgan los privilegios mínimos necesarios para acceder a sus conjuntos de datos de Amazon S3 mediante la ListObjectsV2 y GetObjectAPIlas acciones.
ejemplo IAMpolítica para el objeto Amazon S3 como conjunto de datos
El siguiente ejemplo muestra una IAM política que concede el mínimo de privilegios para acceder a los objetos organizados
en un bucket de Amazon S3 denominadoprocessImages
.amzn-s3-demo-bucket
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
" ], "Condition": { "StringLike": { "s3:prefix": [ "processImages
" ] } } } ] }
ejemplo IAMpolítica para un CSV archivo como conjunto de datos
El siguiente ejemplo muestra una IAM política que otorga los privilegios mínimos para acceder a un CSV archivo llamado
.ratings.csv
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
/csvDataset
/ratings.csv
" ] } ] }
ejemplo IAMpolítica para un inventario de Amazon S3 como conjunto de datos
El siguiente ejemplo muestra una IAM política que concede privilegios mínimos para acceder a un informe de inventario de Amazon S3.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
destination-prefix
/amzn-s3-demo-bucket
/config-ID
/YYYY-MM-DDTHH-MMZ
/manifest.json", "arn:aws:s3:::destination-prefix
/amzn-s3-demo-bucket
/config-ID
/data/*" ] } ] }