Ec2Resource - AWS Data Pipeline

Ec2Resource

Uma instância do Amazon EC2 que executa o trabalho definido por uma atividade de pipeline.

O AWS Data Pipeline agora oferece suporte ao IMDSv2 para a instância do Amazon EC2, que usa um método orientado por sessão para lidar melhor com a autenticação ao recuperar informações de metadados das instâncias. Uma sessão inicia e encerra uma série de solicitações que o software executado em uma instância do Amazon EC2 usa para acessar os metadados e as credenciais da instância do Amazon EC2 armazenados localmente. O software inicia uma sessão com uma simples solicitação HTTP PUT para o IMDSv2. O IMDSv2 retorna um token secreto para o software executado na instância do Amazon EC2, que usará o token como senha para realizar solicitações ao IMDSv2 para obter metadados e credenciais.

nota

Para usar o IMDSv2 para sua instância do Amazon EC2, você precisará modificar as configurações, pois a AMI padrão não é compatível com o IMDSv2. Você pode especificar uma nova versão da AMI que pode ser recuperada por meio do seguinte parâmetro SSM: /aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-ebs.

Para obter informações sobre as instâncias do Amazon EC2 que o AWS Data Pipeline cria se você não especificar uma instância, consulte Instâncias do Amazon EC2 padrão por região da AWS.

Exemplos

EC2-Classic

Importante

Apenas as contas da AWS criadas antes de 4 de dezembro de 2013 são compatíveis com a plataforma do EC2-Classic. Se você tiver uma dessas contas, poderá ter a opção de criar objetos EC2Resource para um pipeline em uma rede EC2-Classic ao invés de usar VPC. É altamente recomendável que você crie recursos para todos os seus pipelines em VPCs. Além disso, se você tiver recursos existentes no EC2-Classic, recomendamos que você migre do EC2-Classic para uma VPC.

O exemplo a seguir inicia uma instância do EC2 no EC2-Classic, com alguns campos opcionais definidos.

{ "id" : "MyEC2Resource", "type" : "Ec2Resource", "actionOnTaskFailure" : "terminate", "actionOnResourceFailure" : "retryAll", "maximumRetries" : "1", "instanceType" : "m5.large", "securityGroups" : [ "test-group", "default" ], "keyPair" : "my-key-pair" }

EC2-VPC

O exemplo a seguir inicia uma instância do EC2 em uma VPC não padrão, com alguns campos opcionais definidos.

{ "id" : "MyEC2Resource", "type" : "Ec2Resource", "actionOnTaskFailure" : "terminate", "actionOnResourceFailure" : "retryAll", "maximumRetries" : "1", "instanceType" : "m5.large", "securityGroupIds" : [ "sg-12345678", "sg-12345678" ], "subnetId": "subnet-12345678", "associatePublicIpAddress": "true", "keyPair" : "my-key-pair" }

Sintaxe

Campos obrigatórios Descrição Tipo de slot
resourceRole O perfil do IAM que controla os recursos que a instância do Amazon EC2 pode acessar. String
role (perfil) O perfil do IAM que o AWS Data Pipeline utiliza para criar a instância do EC2. String

Campos de invocação de objetos Descrição Tipo de slot
schedule

Esse objeto é invocado durante a execução de um intervalo de programação.

Para definir a ordem de execução de dependência desse objeto, especifique uma referência de programação para outro objeto. Você pode fazer isso por meio de uma das seguintes maneiras:

  • Para garantir que todos os objetos no pipeline herdem a programação, defina uma programação no objeto explicitamente: "schedule": {"ref": "DefaultSchedule"}. Na maioria dos casos, é útil colocar a referência de programação no objeto de pipeline padrão para que todos os objetos herdem essa programação.

  • Se o pipeline tiver programações aninhadas na programação principal, você poderá criar um objeto pai que tenha uma referência de programação. Para obter mais informações sobre o exemplo de configurações opcionais de programação, consulte https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html.

Objeto de referência. Por exemplo "schedule":{"ref":"myScheduleId"}

Campos opcionais Descrição Tipo de slot
actionOnResourceFailure A ação executada após uma falha de recurso para este recurso. Os valores válidos são "retryall" e "retrynone". String
actionOnTaskFailure A ação executada após uma falha de tarefa para este recurso. Os valores válidos são "continue" ou "terminate". String
associatePublicIpAddress Indica se um endereço IP público deve ou não ser atribuído à instância. Se as instâncias estiverem no Amazon EC2 ou na Amazon VPC, o valor padrão será true. Caso contrário, o valor padrão será false. Booleano
attemptStatus Status mais recente da atividade remota. String
attemptTimeout O tempo limite para a conclusão do trabalho remoto. Se definido, uma atividade remota não concluída dentro do prazo definido poderá ser executada novamente. Período
availabilityZone A zona de disponibilidade na qual a instância do Amazon EC2 será iniciada. String
disableIMDSv1 Valor padrão é falso e habilita tanto o IMDSv1 quando o IMDSv2. Se você configurá-lo como verdadeiro, ele desativará o IMDSv1 e fornecerá apenas o IMDSv2s. Booleano
failureAndRerunMode Descreve o comportamento do nó do consumidor quando as dependências apresentam falhas ou são executadas novamente. Enumeração
httpProxy O host do proxy que os clientes usam para a conexão com serviços da AWS. Objeto de referência. Por exemplo: "httpProxy":{"ref":"myHttpProxyId"}
imageId

O ID da AMI a ser usado para a instância. Por padrão, o AWS Data Pipeline usa o tipo de virtualização da AMI do HVM. Os IDs específicos da AMI utilizados são baseados em uma região. Você pode substituir a AMI padrão especificando a AMI do HVM de sua escolha. Para obter mais informações sobre tipos de AMI, consulte Tipos de virtualização da AMI em Linux e Como localizar uma AMI em Linux em Guia do usuário do Amazon EC2 para Instâncias do Linux.

String
initTimeout A quantidade de tempo de espera antes da inicialização do recurso. Período
instanceCount Suspenso. Inteiro
instanceType O tipo de instância do Amazon EC2 a ser iniciado. String
keyPair O nome do par de chaves. Se você executar uma instância do Amazon EC2 sem especificar um par de chaves, não poderá fazer logon nela. String
lateAfterTimeout O tempo decorrido após o início do pipeline no qual o objeto deve ser concluído. Ele é acionado somente quando o tipo de programação não está definido como ondemand. Período
maxActiveInstances O número máximo de instâncias ativas simultâneas de um componente. Novas execuções não contam para o número de instâncias ativas. Inteiro
maximumRetries A quantidade máxima de novas tentativas após uma falha. Inteiro
minInstanceCount Suspenso. Inteiro
onFail Uma ação a ser executada quando há falha no objeto atual. Objeto de referência. Por exemplo "onFail":{"ref":"myActionId"}
onLateAction Ações que devem ser acionadas se um objeto ainda não foi programado ou ainda está em execução. Objeto de referência. Por exemplo "onLateAction":{"ref":"myActionId"}
onSuccess Uma ação a ser executada quando o objeto atual é executado com êxito. Objeto de referência. Por exemplo: "onSuccess":{"ref":"myActionId"}
parent O pai do objeto atual a partir do qual os slots são herdados. Objeto de referência. Por exemplo: "parent":{"ref":"myBaseObjectId"}
pipelineLogUri O URI do Amazon S3 (como o 's3://BucketName/Key/') para fazer upload de logs para o pipeline. String
região O código da região na qual a instância do Amazon EC2 deve ser executada. Por padrão, a instância é executada na mesma região que o pipeline. Você pode executar a instância na mesma região como um conjunto de dados dependente. Enumeração
reportProgressTimeout O tempo limite para as chamadas sucessivas de trabalho remoto para reportProgress. Se definidas, as atividades remotas sem progresso para o período especificado podem ser consideradas como interrompidas e serão executadas novamente. Período
retryDelay A duração do tempo limite entre duas novas tentativas. Período
runAsUser O usuário que executará o TaskRunner. String
runsOn Esse campo não é permitido neste objeto. Objeto de referência. Por exemplo: "runsOn":{"ref":"myResourceId"}
scheduleType

O tipo de programação permite que você especifique se os objetos na sua definição de pipeline devem ser programados no início do intervalo, no final do intervalo ou sob demanda.

Os valores são:

  • timeseries. As instâncias são programadas no final de cada intervalo.

  • cron. As instâncias são programadas no início de cada intervalo.

  • ondemand. Permite que você execute um pipeline uma vez por ativação. Você não precisa clonar nem recriar o pipeline para executá-lo novamente. Se você usar uma programação sob demanda, ela deverá ser especificada no objeto padrão, além de ser o único scheduleType especificado para objetos no pipeline. Para usar pipelines sob demanda, chame a operação ActivatePipeline para cada execução subsequente.

Enumeração
securityGroupIds Os IDs de um ou mais grupos de segurança do Amazon EC2 a serem usados nas instâncias do grupo de recursos. String
securityGroups Um ou mais grupos de segurança do Amazon EC2 a serem usados nas instâncias do grupo de recursos. String
spotBidPrice O valor máximo por hora para sua instância spot em dólares, que é um valor decimal entre 0 e 20,00, exclusivos. String
subnetId O ID da sub-rede do Amazon EC2 em que a instância será iniciada. String
terminateAfter O número de horas após o qual encerrar o recurso. Período
useOnDemandOnLastAttempt Na última tentativa de solicitar uma instância spot, faça um pedido para instâncias sob demanda em vez de uma instância spot. Isso garante que, se todas as tentativas anteriores falharam, a última tentativa não será interrompida. Booleano
workerGroup Esse campo não é permitido neste objeto. String

Campos de tempo de execução Descrição Tipo de slot
@activeInstances Lista dos objetos da instância ativa agendados no momento. Objeto de referência. Por exemplo: "activeInstances":{"ref":"myRunnableObjectId"}
@actualEndTime Hora em que a execução deste objeto foi concluída. DateTime
@actualStartTime Hora em que a execução deste objeto foi iniciada. DateTime
cancellationReason O cancellationReason se esse objeto foi cancelado. String
@cascadeFailedOn Descrição da cadeia de dependências na qual o objeto apresentou falha. Objeto de referência. Por exemplo: "cascadeFailedOn":{"ref":"myRunnableObjectId"}
emrStepLog Os registros das etapas estão disponíveis somente nas tentativas de atividade do Amazon EMR. String
errorId O ID do erro se esse objeto apresentou falha. String
errorMessage A mensagem de erro se esse objeto apresentou falha. String
errorStackTrace O rastreamento de pilha com erro se esse objeto apresentou falha. String
@failureReason O motivo da falha de recurso. String
@finishedTime A hora em que esse objeto terminou a execução. DateTime
hadoopJobLog Registos de trabalho do Hadoop disponíveis nas tentativas de atividades do Amazon EMR. String
@healthStatus O status de integridade do objeto que indica se houve sucesso ou falha na última instância concluída do objeto. String
@healthStatusFromInstanceId ID do último objeto da instância concluído. String
@healthStatusUpdatedTime Hora em que o status de integridade foi atualizado pela última vez. DateTime
hostname O nome do host do cliente que capturou a tentativa da tarefa. String
@lastDeactivatedTime A hora em que esse objeto foi desativado pela última vez. DateTime
@latestCompletedRunTime Hora da última execução concluída. DateTime
@latestRunTime Hora da última execução programada. DateTime
@nextRunTime Hora da próxima execução a ser programada. DateTime
reportProgressTime A última vez em que a atividade remota relatou progresso. DateTime
@scheduledEndTime O horário de término programado para o objeto. DateTime
@scheduledStartTime O horário de início programado para o objeto. DateTime
@status O status deste objeto. String
@version A versão do pipeline com que o objeto foi criado. String
@waitingOn Descrição da lista de dependências em que este objeto está aguardando. Objeto de referência. Por exemplo: "waitingOn":{"ref":"myRunnableObjectId"}

Campos do sistema Descrição Tipo de slot
@error Erro ao descrever o objeto malformado. String
@pipelineId ID do pipeline ao qual este objeto pertence. String
@sphere O local de um objeto no ciclo de vida. Objetos de componentes dão origem a objetos de instância, que executam objetos de tentativa. String