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:
|
Objeto de referência. Por exemplo
|
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:
|
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 |