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.
Cómo analiza Step Functions los archivos CSV de entrada
Administrar el estado y transformar los datos
Obtenga información sobre cómo pasar datos entre estados con variables y cómo transformar datos con JSONata.
Step Functions analiza los archivos delimitados por texto según las siguientes reglas:
- 
          El delimitador que separa los campos se especifica en. CSVDelimiterReaderConfig El delimitador está predeterminado en.COMMA
- 
            Los retornos de carro 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.StringToJsonen ItemSelector (Mapa).
- 
            No es necesario incluir comillas dobles (" ") para delimitar cadenas. No obstante, las cadenas entre comillas dobles pueden contener comas y retornos de carro sin que funcionen como delimitadores de registro. 
- 
            Para conservar las comillas dobles en una secuencia de conservación, repítalas. 
- 
            Las barras invertidas (\) son otra forma de escapar de los caracteres especiales. Las barras invertidas solo funcionan con otras barras invertidas, comillas dobles y el separador de campos configurado, como una coma o una barra vertical. La barra invertida seguida de cualquier otro carácter se elimina silenciosamente. 
- 
            Puede conservar las barras invertidas repitiéndolas. Por ejemplo: path,size C:\\Program Files\\MyApp.exe,6534512
- 
            Las barras invertidas que escapan a las comillas dobles ( \") solo funcionan cuando se incluyen en pares, por lo que recomendamos evitar 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 que faltan. 
- 
            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. 
Ejemplo de análisis de un archivo CSV de entrada
Supongamos que ha proporcionado un archivo CSV denominado myCSVInput.csvamzn-s3-demo-bucket
abc,123,"This string contains commas, a double quotation marks (""), and a newline (
)",{""MyKey"":""MyValue""},"[1,2,3]"La siguiente máquina de estado lee este archivo CSV y utiliza ItemSelector (Mapa) para convertir los tipos de datos de algunos de los campos.
{ "StartAt": "Map", "States": { "Map": { "Type": "Map", "ItemProcessor": { "ProcessorConfig": { "Mode": "DISTRIBUTED", "ExecutionType": "STANDARD" }, "StartAt": "Pass", "States": { "Pass": { "Type": "Pass", "End": true } } }, "End": true, "Label": "Map", "MaxConcurrency": 1000, "ItemReader": { "Resource": "arn:aws:states:::s3:getObject", "ReaderConfig": { "InputType": "CSV", "CSVHeaderLocation": "GIVEN", "CSVHeaders": [ "MyLetters", "MyNumbers", "MyString", "MyObject", "MyArray" ] }, "Parameters": { "Bucket": "amzn-s3-demo-bucket", "Key": "myCSVInput.csv" } }, "ItemSelector": { "MyLetters.$": "$$.Map.Item.Value.MyLetters", "MyNumbers.$": "States.StringToJson($$.Map.Item.Value.MyNumbers)", "MyString.$": "$$.Map.Item.Value.MyString", "MyObject.$": "States.StringToJson($$.Map.Item.Value.MyObject)", "MyArray.$": "States.StringToJson($$.Map.Item.Value.MyArray)" } } } }
Cuando ejecuta esta máquina de estado, produce el siguiente resultado.
[
  {
    "MyNumbers": 123,
    "MyObject": {
      "MyKey": "MyValue"
    },
    "MyString": "This string contains commas, a double quote (\"), and a newline (\n)",
    "MyLetters": "abc",
    "MyArray": [
      1,
      2,
      3
    ]
  }
]