Criar um pipeline usando modelos parametrizados - AWS Data Pipeline

AWS Data Pipeline não está mais disponível para novos clientes. Os clientes existentes do AWS Data Pipeline podem continuar usando o serviço normalmente. Saiba mais

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á.

Criar um pipeline usando modelos parametrizados

Você pode usar um modelo parametrizado para personalizar uma definição de pipeline. Isso permite criar uma definição de pipeline comum, mas fornecer parâmetros diferentes quando você adiciona a definição de pipeline a um novo pipeline.

Adicionar myVariables à definição de pipeline

Ao criar o arquivo de definição de pipeline, especifique variáveis usando a seguinte sintaxe: #{myVariable}. É necessário que a variável seja prefixada por my. Por exemplo, o arquivo de definição de pipeline a seguir, pipeline-definition.json, inclui as seguintes variáveis: myShellCmd, myS3InputLoc e myS3OutputLoc.

nota

Uma definição de pipeline tem um limite máximo de 50 parâmetros.

{ "objects": [ { "id": "ShellCommandActivityObj", "input": { "ref": "S3InputLocation" }, "name": "ShellCommandActivityObj", "runsOn": { "ref": "EC2ResourceObj" }, "command": "#{myShellCmd}", "output": { "ref": "S3OutputLocation" }, "type": "ShellCommandActivity", "stage": "true" }, { "id": "Default", "scheduleType": "CRON", "failureAndRerunMode": "CASCADE", "schedule": { "ref": "Schedule_15mins" }, "name": "Default", "role": "DataPipelineDefaultRole", "resourceRole": "DataPipelineDefaultResourceRole" }, { "id": "S3InputLocation", "name": "S3InputLocation", "directoryPath": "#{myS3InputLoc}", "type": "S3DataNode" }, { "id": "S3OutputLocation", "name": "S3OutputLocation", "directoryPath": "#{myS3OutputLoc}/#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')}", "type": "S3DataNode" }, { "id": "Schedule_15mins", "occurrences": "4", "name": "Every 15 minutes", "startAt": "FIRST_ACTIVATION_DATE_TIME", "type": "Schedule", "period": "15 Minutes" }, { "terminateAfter": "20 Minutes", "id": "EC2ResourceObj", "name": "EC2ResourceObj", "instanceType":"t1.micro", "type": "Ec2Resource" } ] }

Definir objetos de parâmetro

Você pode criar um arquivo à parte com objetos de parâmetro que determinem as variáveis na definição de pipeline. Por exemplo, o arquivo JSON a seguir, parameters.json, contém objetos de parâmetro para as variáveis myShellCmd, myS3InputLoc e myS3OutputLoc da definição do pipeline de exemplo acima.

{ "parameters": [ { "id": "myShellCmd", "description": "Shell command to run", "type": "String", "default": "grep -rc \"GET\" ${INPUT1_STAGING_DIR}/* > ${OUTPUT1_STAGING_DIR}/output.txt" }, { "id": "myS3InputLoc", "description": "S3 input location", "type": "AWS::S3::ObjectKey", "default": "s3://us-east-1.elasticmapreduce.samples/pig-apache-logs/data" }, { "id": "myS3OutputLoc", "description": "S3 output location", "type": "AWS::S3::ObjectKey" } ] }
nota

Você poderia adicionar esses objetos diretamente ao arquivo de definição do pipeline, em vez de usar um arquivo à parte.

A tabela a seguir descreve os atributos dos objetos de parâmetro.

Atributos de parâmetro
Atributo Tipo Descrição
id String O identificador exclusivo do parâmetro. Para mascarar o valor enquanto ele é digitado ou exibido, adicione um asterisco ('*') como um prefixo. Por exemplo, *myVariable—. Isso também criptografa o valor antes que ele seja armazenado pelo AWS Data Pipeline.
description String Uma descrição do parâmetro.
type String, Integer, Double ou AWS::S3::ObjectKey O tipo de parâmetro que define o intervalo permitido de valores de entrada e regras de validação. O padrão é String.
optional Booleano Indica se o parâmetro é opcional ou obrigatório. O padrão é “”. false.
allowedValues Lista de strings Enumera todos os valores permitidos para o parâmetro.
padrão String O valor padrão do parâmetro. Se você especificar um valor para esse parâmetro usando valores de parâmetro, ele substituirá o valor padrão.
isArray Booleano Indica se o parâmetro é uma matriz.

Definir valores de parâmetro

Você pode criar um arquivo à parte para definir as variáveis usando valores de parâmetro. Por exemplo, o arquivo JSON a seguir, file://values.json, contém o valor da variável myS3OutputLoc da definição do pipeline de exemplo acima.

{ "values": { "myS3OutputLoc": "myOutputLocation" } }

Enviar a definição de pipeline

Ao enviar a definição de pipeline, você pode especificar parâmetros, objetos de parâmetro e valores de parâmetro. Por exemplo, você pode usar o comando da https://docs.aws.amazon.com/cli/latest/reference/datapipeline/put-pipeline-definition.htmlput-pipeline-definitionAWS CLI da seguinte maneira:

$ aws datapipeline put-pipeline-definition --pipeline-id id --pipeline-definition file://pipeline-definition.json \ --parameter-objects file://parameters.json --parameter-values-uri file://values.json
nota

Uma definição de pipeline tem um limite máximo de 50 parâmetros. O tamanho do arquivo para parameter-values-uri tem um limite máximo de 15 KB.