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á.
ItemReader (Mapa)
O campo ItemReader
é um objeto JSON, que especifica um conjunto de dados e sua localização. Um estado Mapa Distribuído usa esse conjunto de dados como entrada.
O exemplo a seguir mostra a sintaxe do ItemReader
campo em um fluxo de trabalho JSONPathbaseado, para um conjunto de dados em um arquivo CSV armazenado em um bucket do Amazon S3.
"ItemReader": {
"ReaderConfig": {
"InputType": "CSV",
"CSVHeaderLocation": "FIRST_ROW"
},
"Resource": "arn:aws:states:::s3:getObject",
"Parameters": {
"Bucket": "myBucket
",
"Key": "csvDataset/ratings.csv
",
"VersionId": "BcK42coT2jE1234VHLUvBV1yLNod2OEt"
}
}
O exemplo a seguir mostra que, em fluxos de trabalho JSONata baseados, Parameters
é substituído por Argumentos.
"ItemReader": {
"ReaderConfig": {
"InputType": "CSV",
"CSVHeaderLocation": "FIRST_ROW"
},
"Resource": "arn:aws:states:::s3:getObject",
"Arguments": {
"Bucket": "amzn-s3-demo-bucket
",
"Key": "csvDataset/ratings.csv
"
}
}
dica
No Workflow Studio, você especifica o conjunto de dados e sua localização no campo Origem do item.
Conteúdo
Conteúdo do ItemReader campo
Dependendo do seu conjunto de dados, o conteúdo do campo ItemReader
varia. Por exemplo, se seu conjunto de dados for uma matriz JSON transmitida de uma etapa anterior do fluxo de trabalho, o campo ItemReader
será omitido. Se seu conjunto de dados for uma fonte de dados do Amazon S3, esse campo conterá os seguintes subcampos.
ReaderConfig
Um objeto JSON que especifica os seguintes detalhes:
InputType
Aceita um dos seguintes valores:
CSV
,JSON
,MANIFEST
.Especifica o tipo de fonte de dados do Amazon S3, como arquivo CSV, objeto, arquivo JSON ou uma lista do inventário Amazon S3. No Workflow Studio, você pode selecionar um tipo de entrada na lista suspensa de origem do item do Amazon S3, sob o campo Origem do item.
CSVHeaderLocation
nota
Esse campo deverá ser especificado somente se um arquivo CSV for usado como conjunto de dados.
Aceita um dos seguintes valores para especificar a localização do cabeçalho da coluna:
Importante
Atualmente, o Step Functions suporta cabeçalhos CSV de até 10 KiB.
FIRST_ROW
— use essa opção se a primeira linha do arquivo for o cabeçalho.GIVEN
— use essa opção para especificar o cabeçalho na definição da máquina de estado. Por exemplo, se seu arquivo CSV contém os seguintes dados.1,307,3.5,1256677221 1,481,3.5,1256677456 1,1091,1.5,1256677471 ...
Forneça a seguinte matriz JSON como cabeçalho CSV.
"ItemReader": { "ReaderConfig": { "InputType": "CSV", "CSVHeaderLocation": "GIVEN", "CSVHeaders": [
"userId"
,"movieId"
,"rating"
,"timestamp"
] } }
dica
No Workflow Studio, você pode encontrar essa opção em Configuração adicional, no campo Origem do item.
MaxItems
Limita o número de itens de dados transmitidos para o estado
Map
. Por exemplo, suponha que você vá fornecer um arquivo CSV contendo mil linhas e especificar um limite de cem. Em seguida, o intérprete transmite apenas cem linhas para o estadoMap
. O estadoMap
processa os itens em ordem sequencial, começando depois da linha do cabeçalho.Por padrão, o estado
Map
itera todos os itens no conjunto de dados especificado.nota
Atualmente, você pode especificar um limite de até cem milhões. O estado Mapa Distribuído interrompe a leitura de itens além desse limite.
dica
No Workflow Studio, você pode encontrar essa opção em Configuração adicional, no campo Origem do item.
Como alternativa, você pode especificar um caminho de referência para um par de chave-valor existente na entrada do estado Mapa Distribuído. Esse caminho deve ser resolvido como um inteiro positivo. O caminho de referência é especificado no subcampo
MaxItemsPath
.Importante
Você pode especificar o
MaxItems
ou o subcampoMaxItemsPath
, mas não ambos.
Resource
A ação da API do Amazon S3 que o Step Functions deve invocar dependendo do conjunto de dados especificado.
Parameters
Um objeto JSON que especifica o nome do bucket do Amazon S3 e a chave do objeto em que o conjunto de dados está armazenado. Nesse campo, você também pode fornecer a versão do objeto Amazon S3, se o bucket tiver o versionamento ativado.
Importante
Certifique-se de que seus buckets do Amazon S3 estejam sob a mesma máquina de estado Conta da AWS e Região da AWS sob a mesma.
Exemplos de conjuntos de dados
Você pode especificar uma das seguintes opções como conjunto de dados:
Importante
O Step Functions precisa das devidas permissões para acessar conjuntos de dados do Amazon S3 que você usa. Para obter informações sobre políticas do IAM para o conjunto de dados, consulte Políticas do IAM para conjuntos de dados.
Um estado Mapa Distribuído pode aceitar uma entrada JSON transmitida de uma etapa anterior no fluxo de trabalho. Essa entrada deve ser ou conter uma matriz dentro de um nó específico. Para selecionar um nó que contenha a matriz, você pode usar o campo ItemsPath (Mapa, JSONPath somente)
.
Para processar itens individuais na matriz, o estado Mapa Distribuído inicia a execução de um fluxo de trabalho secundário para cada item da matriz. As guias a seguir mostram exemplos da entrada transmitidas para o estado Map
e a entrada correspondente para a execução de um fluxo de trabalho secundário.
nota
O Step Functions omite o campo ItemReader
quando o conjunto de dados é uma matriz JSON de uma etapa anterior.
Um estado Mapa Distribuído pode iterar os objetos que são armazenados em um bucket do Amazon S3. Quando a execução do fluxo de trabalho atinge o Map
estado, o Step Functions invoca a ação da API ListObjectsV2, que retorna uma matriz dos metadados do objeto Amazon S3. Nessa matriz, cada item contém dados, como ETaguma chave, dos dados armazenados no bucket.
Para processar itens individuais na matriz, o estado Mapa Distribuído inicia a execução de um fluxo de trabalho secundário. Por exemplo, suponha que seu bucket do Amazon S3 contenha cem imagens. Então, a matriz retornada após invocar a ação da API ListObjectsV2
contém cem itens. O estado Mapa Distribuído inicia cem execuções de fluxo de trabalho secundário para processar cada item da matriz.
nota
Atualmente, o Step Functions também inclui um item para cada pasta criada em um bucket do Amazon S3 específico usando o console do Amazon S3. Isso resulta em uma execução adicional de fluxo de trabalho secundário, iniciada pelo estado Mapa Distribuído. Para evitar a criação de uma execução adicional de fluxo de trabalho secundário para a pasta, recomendamos que você use o AWS CLI para criar pastas. Para obter informações, consulte Comandos de alto nível do Amazon S3 no Guia do usuário da AWS Command Line Interface .
O Step Functions precisa das devidas permissões para acessar conjuntos de dados do Amazon S3 que você usa. Para obter informações sobre políticas do IAM para o conjunto de dados, consulte Políticas do IAM para conjuntos de dados.
As guias a seguir mostram exemplos da sintaxe do campo ItemReader
e da entrada transmitida para a execução de um fluxo de trabalho secundário para esse conjunto de dados.
Um estado Mapa Distribuído pode aceitar um arquivo JSON armazenado em um bucket do Amazon S3 como um conjunto de dados. O arquivo JSON deve conter uma matriz.
Quando a execução do fluxo de trabalho atinge o Map
estado, o Step Functions invoca a ação da GetObjectAPI para buscar o arquivo JSON especificado. O estado Map
então itera cada item na matriz e inicia a execução de um fluxo de trabalho secundário para cada item. Por exemplo, se seu arquivo JSON contiver mil itens de matriz, o estado Map
iniciará mil execuções de fluxo de trabalho secundário.
nota
A entrada de execução usada para iniciar a execução de um fluxo de trabalho secundário não pode exceder 256 KiB. No entanto, o Step Functions oferece suporte à leitura de um item de até 8 MB de um arquivo CSV ou JSON quando você aplica o campo
ItemSelector
opcional para reduzir o tamanho de um item.Atualmente, o Step Functions suporta 10 GB como o tamanho máximo de um arquivo individual no Amazon S3.
O Step Functions precisa das devidas permissões para acessar conjuntos de dados do Amazon S3 que você usa. Para obter informações sobre políticas do IAM para o conjunto de dados, consulte Políticas do IAM para conjuntos de dados.
As guias a seguir mostram exemplos da sintaxe do campo ItemReader
e da entrada transmitida para a execução de um fluxo de trabalho secundário para esse conjunto de dados.
Por exemplo, imagine que você tenha um arquivo JSON chamado
. Você armazenou esse arquivo em um prefixo chamado factcheck.json
, em um bucket do Amazon S3. A seguir, veja um exemplo do conjunto de dados JSON.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"
},
...
]
Um estado Mapa Distribuído pode aceitar um arquivo CSV armazenado em um bucket do Amazon S3 como um conjunto de dados. Se você usar um arquivo CSV como conjunto de dados, precisará especificar um cabeçalho de coluna CSV. Para obter informações sobre como especificar um cabeçalho CSV, consulte Conteúdo do ItemReader campo.
O Step Functions analisa arquivos CSV com base nas seguintes regras:
-
As vírgulas (,) são um delimitador que separa campos.
-
As novas linhas são um delimitador que separa registros.
-
Os campos são tratados como strings. Para conversões de tipo de dados, use a função intrínseca
States.StringToJson
em ItemSelector (Mapa). -
Não são necessárias aspas duplas (“ ”) nas strings. No entanto, strings delimitadas por aspas duplas podem conter vírgulas e novas linhas sem agir como delimitadores de registro.
-
É possível preservar as aspas duplas repetindo-as.
-
Se o número de campos em uma linha for menor que o número de campos no cabeçalho, o Step Functions fornecerá strings vazias para os valores que estão faltando.
-
Se o número de campos em uma linha for maior que aquele no cabeçalho, o Step Functions vai ignorar os campos adicionais.
Para obter mais informações sobre como Step Functions analisa um arquivo CSV, consulte Example of parsing an input CSV file.
Quando a execução do fluxo de trabalho atinge o Map
estado, o Step Functions invoca a ação da GetObjectAPI para buscar o arquivo CSV especificado. O estado Map
então itera cada linha no arquivo CSV e inicia a execução de um fluxo de trabalho secundário para processar os itens em cada linha. Por exemplo, suponha que você vá fornecer um arquivo CSV contendo cem linhas como entrada. Então, o intérprete transmitirá cada linha para o estado Map
. O estado Map
processa os itens em ordem serial, começando depois da linha do cabeçalho.
nota
A entrada de execução usada para iniciar a execução de um fluxo de trabalho secundário não pode exceder 256 KiB. No entanto, o Step Functions oferece suporte à leitura de um item de até 8 MB de um arquivo CSV ou JSON quando você aplica o campo
ItemSelector
opcional para reduzir o tamanho de um item.Atualmente, o Step Functions suporta 10 GB como o tamanho máximo de um arquivo individual no Amazon S3.
O Step Functions precisa das devidas permissões para acessar conjuntos de dados do Amazon S3 que você usa. Para obter informações sobre políticas do IAM para o conjunto de dados, consulte Políticas do IAM para conjuntos de dados.
As guias a seguir mostram exemplos da sintaxe do campo ItemReader
e da entrada transmitida para a execução de um fluxo de trabalho secundário para esse conjunto de dados.
Um estado Mapa Distribuído pode aceitar um manifesto do Inventário Amazon S3 armazenado em um bucket do Amazon S3 como um conjunto de dados.
Quando a execução do fluxo de trabalho atinge o Map
estado, o Step Functions invoca a ação da GetObjectAPI para buscar o arquivo de manifesto de inventário especificado do Amazon S3. O estado Map
então itera os objetos no inventário para retornar uma matriz de metadados de objetos do Inventário Amazon S3.
nota
Atualmente, o Step Functions suporta 10 GB como o tamanho máximo de um arquivo individual em um relatório de inventário do Amazon S3 após a descompactação. No entanto, o Step Functions é capaz de processar mais de 10 GB se o tamanho de cada arquivo individual é inferior a esse valor.
O Step Functions precisa das devidas permissões para acessar conjuntos de dados do Amazon S3 que você usa. Para obter informações sobre políticas do IAM para o conjunto de dados, consulte Políticas do IAM para conjuntos de dados.
Veja a seguir o exemplo de um arquivo de inventário no formato CSV. Esse arquivo inclui os objetos chamados csvDataset
e imageDataset
, que são armazenados em um bucket do Amazon S3 com o nome 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
Atualmente, o Step Functions não oferece suporte ao uso do relatório do Inventário Amazon S3 definido pelo usuário como um conjunto de dados. Você também deve se certificar de que o formato de saída do seu relatório do Inventário Amazon S3 seja CSV. Para obter mais informações sobre os Inventários Amazon S3 e como configurá-los, consulte Inventário Amazon S3 no Guia do usuário do Amazon S3.
O exemplo a seguir de um arquivo de manifesto de inventário mostra os cabeçalhos CSV dos metadados do objeto de inventário.
{
"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"
} ]
}
As guias a seguir mostram exemplos da sintaxe do campo ItemReader
e da entrada transmitida para a execução de um fluxo de trabalho secundário para esse conjunto de dados.
Políticas do IAM para conjuntos de dados
Ao criar fluxos de trabalho com o console do Step Functions, o Step Functions pode gerar automaticamente políticas do IAM com base nos recursos na definição de fluxo de trabalho. Essas políticas incluem os privilégios mínimos necessários para permitir que o perfil da máquina de estado invoque a ação da API StartExecution
para o estado 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 apenas as permissões que forem necessárias em suas políticas do IAM. 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 do estado Mapa Distribuído, certifique-se de atualizar as políticas de IAM do 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.
Os exemplos de políticas do IAM a seguir concedem os privilégios mínimos necessários para acessar seus conjuntos de dados do Amazon S3 usando ListObjectsas ações de GetObjectV2 e API.
exemplo Política do IAM para objeto do Amazon S3 como conjunto de dados
O exemplo a seguir mostra uma política do IAM que concede os privilégios mínimos para acessar os objetos organizados em
em um bucket do Amazon S3 chamado processImages
.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
" ] } } } ] }
exemplo Política do IAM para um arquivo CSV como conjunto de dados
O exemplo a seguir mostra uma política do IAM que concede os privilégios mínimos para acessar um arquivo CSV chamado
.ratings.csv
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket
/csvDataset
/ratings.csv
" ] } ] }
exemplo Política do IAM para um inventário Amazon S3 como conjunto de dados
O exemplo a seguir mostra uma política do IAM que concede os privilégios mínimos para acessar um relatório de inventário 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/*" ] } ] }