Ec2Resource - AWS Data Pipeline

AWS Data Pipeline 不再向新客户提供。的现有客户 AWS Data Pipeline 可以继续照常使用该服务。了解更多

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Ec2Resource

执行管道活动定义的工作的 Amazon EC2 实例。

AWS Data Pipeline 现在支持 IMDSv2 Amazon EC2 实例,该实例使用面向会话的方法在从实例检索元数据信息时更好地处理身份验证。会话开始和结束一系列请求,Amazon EC2 实例上运行的软件使用这些请求访问本地存储的 Amazon EC2 实例元数据和证书。该软件通过一个简单的HTTPPUT请求开始会话IMDSv2。IMDSv2向在 Amazon EC2 实例上运行的软件返回一个秘密令牌,该软件将使用该令牌作为密码来IMDSv2请求元数据和证书。

注意

要IMDSv2用于您的 Amazon EC2 实例,您需要修改设置,因为默认设置与AMI不兼容IMDSv2。您可以指定可通过以下SSM参数检索的新AMI版本:/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-ebs.

有关在您未指定EC2实例的情况下 AWS Data Pipeline 创建的默认 Amazon 实例的信息,请参阅 Amazon Web Services Region 的默认 Amazon EC2 实例

示例

EC2-经典

重要

只有在 2013 年 12 月 4 日之前创建的 AWS 账户才支持 EC2-Classic 平台。如果您拥有其中一个帐户,则可以选择为 EC2-Classic 网络中的管道创建EC2Resource对象,而不是。VPC我们强烈建议您为中的所有管道创建资源VPCs。此外,如果您在 EC2-Classic 中有现有资源,我们建议您将它们迁移到。VPC

以下示例对象将EC2实例启动到 EC2-Classic 中,并设置了一些可选字段。

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

EC2-VPC

以下示例对象将EC2实例启动为非默认值VPC,并设置了一些可选字段。

{ "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" }

语法

必填字段 描述 槽类型
resourceRole 控制 Amazon EC2 实例可以访问的资源的IAM角色。 String
role AWS Data Pipeline 用于创建EC2实例的IAM角色。 String

对象调用字段 描述 槽类型
schedule

该对象在计划间隔的执行中调用。

要设置此对象的依赖项执行顺序,请指定对另一个对象的计划引用。您可以通过下列方式之一来执行该操作:

引用对象,例如,"schedule":{"ref":"myScheduleId"}

可选字段 描述 槽类型
actionOnResource失败 在此资源发生资源失败后执行的操作。有效值为 "retryall""retrynone" String
actionOnTask失败 在此资源发生任务失败后执行的操作。有效值为 "continue""terminate" String
associatePublicIp地址 指示是否向实例分配公有 IP 地址。如果实例位于亚马逊EC2或亚马逊中VPC,则默认值为true。否则,默认值为 false 布尔值
attemptStatus 来自远程活动的最近报告的状态。 String
attemptTimeout 远程工作完成的超时时间。如果设置此字段,则可能会重试未在指定开始时间内完成的远程活动。 周期
availabilityZone 用于启动 Amazon EC2 实例的可用区域。 String
disableIMDSv1 默认值为 false,同时启用IMDSv1和IMDSv2。如果你将其设置为 true 那么它就会禁用IMDSv1并且只提供 IMDSv2s 布尔值
failureAndRerun模式 描述依赖项失败或重新运行时的使用者节点行为。 枚举
httpProxy 客户端用来连接 AWS 服务的代理主机。 引用对象,例如, "httpProxy":{"ref":"myHttpProxyId"}
imageId

AMI要用于实例的 ID。默认情况下, AWS Data Pipeline 使用HVMAMI虚拟化类型。具体AMIIDs使用的基于区域。您可以AMI通过指定您选择的来覆盖默认值。HVM AMI有关AMI类型的更多信息,请参阅 Amazon EC2 用户指南AMI中的 Lin u x AMI 虚拟化类型和查找 Linux。

String
initTimeout 资源启动前要等待的时间长度。 周期
instanceCount 已淘汰。 整数
instanceType 要启动的 Amazon EC2 实例的类型。 String
keyPair 密钥对的名称。如果您在未指定密钥对的情况下启动 Amazon EC2 实例,则无法登录该实例。 String
lateAfterTimeout 管道启动后经过的时间,在此时间内,对象必须完成。仅当计划类型未设置为 ondemand 时才会触发。 周期
maxActiveInstances 组件的并发活动实例的最大数量。重新运行不计入活动实例数中。 整数
maximumRetries 失败后的最大重试次数。 整数
minInstanceCount 已淘汰。 整数
onFail 当前对象失败时要运行的操作。 引用对象,例如, "onFail":{"ref":"myActionId"}
onLateAction 在尚未计划对象或对象仍在运行的情况下将触发的操作。 引用对象,例如,"onLateAction":{"ref":"myActionId"}
onSuccess 当前对象成功时要运行的操作。 引用对象,例如, "onSuccess":{"ref":"myActionId"}
parent 作为槽继承源的当前对象的父项。 引用对象,例如, "parent":{"ref":"myBaseObjectId"}
pipelineLogUri 用于上传管道日志的 Amazon S3URI(例如's3://BucketName/Key/')。 String
region Amazon EC2 实例应在其中运行的区域的代码。默认情况下,该实例在管道所在的区域中运行。您可以在从属数据集所在的区域中运行实例。 枚举
reportProgressTimeout 远程工作对 reportProgress 的连续调用的超时时间。如果设置此字段,则未报告指定时段的进度的远程活动可能会被视为停滞并且将进行重试。 周期
retryDelay 两次重试之间的超时时间。 周期
runAsUser 要运行的用户 TaskRunner。 String
runsOn 禁止在该对象上使用此字段。 引用对象,例如,"runsOn":{"ref":"myResourceId"}
scheduleType

您可以通过计划类型指定应在间隔开始时、间隔结束时还是按需计划管道定义中的对象。

值为:

  • timeseries 在每个间隔结束时计划实例。

  • cron 在每个间隔开始时计划实例。

  • ondemand 可让您可以在每次激活时运行一次管道。您不需要克隆或重新创建管道以再次运行它。如果您使用按需计划,则必须在默认对象中指定它,并且必须是在管道中为对象指定的唯一 scheduleType。要使用按需管道,请为每个后续运行调用 ActivatePipeline 操作。

枚举
securityGroupIds 用于资源池中实例IDs的一个或多个 Amazon EC2 安全组。 String
securityGroups 一个或多个 Amazon EC2 安全组用于资源池中的实例。 String
spotBidPrice 每小时您的 Spot 实例的最高价 (美元),是一个介于 0 和 20.00 (不含) 的小数值。 String
subnetId 启动实例的 Amazon EC2 子网的 ID。 String
terminateAfter 小时数,经过此时间后将终止资源。 周期
useOnDemandOnLastAttempt 在最后一次尝试请求 Spot 实例时,请求的是按需实例而不是 Spot 实例。这可确保如果所有之前的尝试都失败,则最后一次尝试不中断。 布尔值
workerGroup 禁止在该对象上使用此字段。 String

运行时字段 描述 槽类型
@activeInstances 当前计划的有效实例对象的列表。 引用对象,例如,"activeInstances":{"ref":"myRunnableObjectId"}
@actualEndTime 该对象的执行完成时间。 DateTime
@actualStartTime 该对象的执行开始时间。 DateTime
cancellationReason 该对象被取消时显示的 cancellationReason String
@cascadeFailedOn 对象在其上失败的依赖项链的描述。 引用对象,例如,"cascadeFailedOn":{"ref":"myRunnableObjectId"}
emrStepLog 步骤日志仅在 Amazon EMR 活动尝试时可用。 String
errorId 该对象失败时显示的错误 ID。 String
errorMessage 该对象失败时显示的错误消息。 String
errorStackTrace 该对象失败时显示的错误堆栈跟踪。 String
@failureReason 资源失败的原因。 String
@finishedTime 该对象完成其执行的时间。 DateTime
hadoopJobLog Hadoop 任务日志可用于尝试亚马逊EMR活动。 String
@healthStatus 对象的运行状况,反映进入终止状态的上个对象实例成功还是失败。 String
@healthStatusFromInstanceId 进入终止状态的上个实例对象的 ID。 String
@ T healthStatusUpdated ime 上次更新运行状况的时间。 DateTime
hostname 已执行任务尝试的客户端的主机名。 String
@lastDeactivatedTime 上次停用该对象的时间。 DateTime
@ T latestCompletedRun ime 已完成执行的最新运行的时间。 DateTime
@latestRunTime 已计划执行的最新运行的时间。 DateTime
@nextRunTime 计划下次运行的时间。 DateTime
reportProgressTime 远程活动报告进度的最近时间。 DateTime
@scheduledEndTime 对象的计划结束时间。 DateTime
@scheduledStartTime 对象的计划开始时间。 DateTime
@status 该对象的状态。 String
@version 用来创建对象的管道版本。 String
@waitingOn 此对象在其上处于等待状态的依赖项列表的描述。 引用对象,例如, "waitingOn":{"ref":"myRunnableObjectId"}

系统字段 描述 槽类型
@error 用于描述格式不正确的对象的错误消息。 String
@pipelineId 该对象所属的管道的 ID。 String
@sphere 对象在生命周期中的位置。组件对象产生实例对象,后者执行尝试对象。 String