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 |
该对象在计划间隔的执行中调用。 要设置此对象的依赖项执行顺序,请指定对另一个对象的计划引用。您可以通过下列方式之一来执行该操作:
|
引用对象,例如,
|
可选字段 | 描述 | 槽类型 |
---|---|---|
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 |
您可以通过计划类型指定应在间隔开始时、间隔结束时还是按需计划管道定义中的对象。 值为:
|
枚举 |
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 |