Sintaxe do arquivo de definição do pipeline - AWS Data Pipeline

Sintaxe do arquivo de definição do pipeline

As instruções nesta seção são para trabalhar manualmente com os arquivos de definição de pipeline usando a interface de linha de comando (CLI) do AWS Data Pipeline. Trata-se de uma alternativa ao projeto de um pipeline de maneira interativa usando o console do AWS Data Pipeline.

Você pode criar manualmente arquivos de definição de pipeline usando qualquer editor de texto que ofereça suporte à gravação de arquivos usando o formato de arquivo UTF-8 e enviar os arquivos usando a interface de linha de comando do AWS Data Pipeline.

O AWS Data Pipeline também oferece suporte a uma grande variedade de expressões e funções complexas dentro de definições do pipeline. Para obter mais informações, consulte Expressões e funções do pipeline.

Estrutura do arquivo

A primeira etapa na criação do pipeline é escrever objetos de definição do pipeline em um arquivo de definição do pipeline. O exemplo a seguir ilustra a estrutura geral de um arquivo de definição do pipeline. Esse arquivo define dois objetos, que são delimitados por '{' e '}' e separados por uma vírgula.

No exemplo a seguir, o primeiro objeto define dois pares de nome/valor, conhecidos como campos. O segundo objeto define três campos.

{ "objects" : [ { "name1" : "value1", "name2" : "value2" }, { "name1" : "value3", "name3" : "value4", "name4" : "value5" } ] }

Ao criar um arquivo de definição de pipeline, você deve selecionar os tipos de objetos de pipeline dos quais precisará, adicioná-los ao arquivo de definição de pipeline e incluir os campos apropriados. Para obter mais informações sobre objetos de pipeline, consulte Referência de objeto de pipeline.

Por exemplo, você pode criar um objeto de definição de pipeline para um nó de dados de entrada e outro para o nó de dados de saída. Em seguida, crie outro objeto de definição de pipeline para uma atividade, como processar os dados de entrada usando o Amazon EMR.

Campos de pipeline

Depois que souber quais tipos de objeto incluir no arquivo de definição de pipeline, você adicionará campos à definição de cada objeto de pipeline. Os nomes de campo estão entre aspas e são separados por valores de campo por um espaço, uma vírgula e um espaço, conforme mostrado no exemplo a seguir.

"name" : "value"

O valor do campo pode ser uma string de texto, uma referência a outro objeto, uma chamada à função, uma expressão ou uma lista ordenada de qualquer um dos tipos anteriores. Para obter mais informações sobre os tipos de dados que podem ser usados em valores de campo, consulte Tipos de dados simples. Para obter mais informações sobre funções que você pode usar para avaliar valores de campo, consulte Avaliação de expressões.

Os campos são limitados a 2048 caracteres. Os objetos podem ter 20 KB, o que significa que você não pode adicionar muitos campos grandes a um objeto.

Cada objeto de pipeline deve conter os seguintes campos: id e type, conforme mostrado no exemplo a seguir. Outros campos também podem ser necessários com base no tipo de objeto. Selecione um valor para id que seja significativo para você e exclusivo dentro da definição de pipeline. O valor de type especifica o tipo do objeto. Especifique um dos tipos de objeto de definição de pipeline compatíveis, listados no tópico Referência de objeto de pipeline.

{ "id": "MyCopyToS3", "type": "CopyActivity" }

Para obter mais informações sobre os campos obrigatórios e opcionais de cada objeto, consulte a documentação do objeto.

Para incluir campos de um objeto em outro objeto, use o campo parent com uma referência ao objeto. Por exemplo, o objeto "B" inclui os campos, "B1" e "B2", mais os campos de objeto "A", "A1" e "A2".

{ "id" : "A", "A1" : "value", "A2" : "value" }, { "id" : "B", "parent" : {"ref" : "A"}, "B1" : "value", "B2" : "value" }

Você pode definir campos comuns em um objeto com o ID "padrão". Esses campos são incluídos automaticamente em todos os objetos no arquivo de definição de pipeline que não definam explicitamente o campo parent para referenciar um objeto diferente.

{ "id" : "Default", "onFail" : {"ref" : "FailureNotification"}, "maximumRetries" : "3", "workerGroup" : "myWorkerGroup" }

Campos definidos pelo usuário

Você pode criar campos personalizados ou definidos pelo usuário nos componentes de pipeline e consultá-los com expressões. O exemplo a seguir mostra um campo personalizado chamado myCustomField e my_customFieldReference adicionado a um objeto S3DataNode:

{ "id": "S3DataInput", "type": "S3DataNode", "schedule": {"ref": "TheSchedule"}, "filePath": "s3://bucket_name", "myCustomField": "This is a custom value in a custom field.", "my_customFieldReference": {"ref":"AnotherPipelineComponent"} },

Um campo definido pelo usuário deve ter um nome prefixado com a palavra "my" em todas as letras minúsculas, seguido de uma letra maiúscula ou sublinhado. Além disso, um campo definido pelo usuário pode ser um valor de string, como o exemplo myCustomField anterior, ou uma referência a outro componente de pipeline, como o exemplo my_customFieldReference anterior.

nota

Em campos definidos pelo usuário, o AWS Data Pipeline verifica somente se há referências válidas a outros componentes, e não a qualquer valor de string de campo personalizado adicionado por você.