Ec2Resource - AWS Data Pipeline

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Ec2Resource

一個 Amazon EC2 執行個體,可執行管道活動定義的工作。

AWS Data Pipeline Amazon EC2 執行個體現在支援 IMDSv2,該執行個體會使用工作階段導向方法,在從執行個體擷取中繼資料資訊時更有效地處理身份驗證。工作階段會開始和結束 Amazon EC2 執行個體上執行的軟體用來存取本機儲存的 Amazon EC2 執行個體中繼資料和登入資料的一系列請求。軟體會以對 IMDSv2 的簡單 HTTP PUT 要求啟動工作階段。ImDSv2 會將秘密權杖傳回給 Amazon EC2 執行個體上執行的軟體,該執行個體會使用該權杖做為密碼,向 IMDSv2 發出中繼資料和登入資料的請求。

注意

若要將 IMDSv2 用於您的 Amazon EC2 執行個體,您必須修改這些設定,因為預設 AMI 與 IMDSv2 不相容。您可以指定一個新的 AMI 版本,您可以通過以下 SSM 參數進行檢索:/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-ebs

如需在未指定執行個體時 AWS Data Pipeline 建立的預設 Amazon EC2 執行個體的相關資訊,請參閱 AWS 區域的預設 Amazon EC2 執行個體

範例

EC2-Classic

重要

只有在 2013 年 12 月 4 日之前建立的 AWS 帳戶才支援 EC2-典型平台。如果您有其中一個帳戶,則可以選擇為 EC2-Classic 網路中的管線建立 EC2Resource 物件,而不是 VPC。強烈建議您為 VPC 中的所有管道建立資源。此外,如果您有 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

以下範例物件會在非預設 VPC 中啟動 EC2 執行個體,並設定一部分的選用欄位。

{ "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 角色。 字串
role AWS Data Pipeline 用來建立 EC2 執行個體的 IAM 角色。 字串

物件呼叫欄位 描述 槽類型
schedule

在排程間隔的執行期間會呼叫此物件。

若要設定此物件的相依性執行順序,請指定另一個物件的排程參考。您可採用下列其中一種方式來這麼做:

  • 為確保管道中所有的物件沿用排程,請明確設定物件的排程:"schedule": {"ref": "DefaultSchedule"}。在大部分的情況下,將排程參考放在預設的管道物件,讓所有物件都繼承該排程是很有用的。

  • 如果管道有排程套疊在主排程內,您可以建立有排程參考的父物件。如需範例選用排程組態的詳細資訊,請參閱https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html

參考物件,例如 "schedule":{"ref":"myScheduleId"}

選用欄位 描述 槽類型
actionOnResource失敗 此資源的資源故障之後所採取的動作。有效值為 "retryall""retrynone" 字串
actionOnTask失敗 此資源的任務失敗之後所採取的動作。有效值為 "continue""terminate" 字串
associatePublicIp地址 指出是否將公有 IP 地址指派此執行個體。如果執行個體位於 Amazon EC2 或 Amazon VPC 中,則預設值為true。否則,預設值為 false Boolean
attemptStatus 遠端活動最新回報的狀態。 字串
attemptTimeout 遠端工作完成的逾時。如果設定,則未在指定開始時間內完成的遠端活動,可能會重試。 期間
availabilityZone 要在其中啟動 Amazon EC2 執行個體的可用區域。 字串
停用模式 1 預設值為假,且會同時啟用 IMDSv1 和 ImDSv2。如果將其設置為 true,則它將禁用 IMDSv1,並且僅提供 IMDSV2 Boolean
failureAndRerun模式 描述相依性故障或重新執行時的消費者節點行為。 列舉
httpProxy 用戶端用來連線至 AWS 服務的 Proxy 主機。 參考物件,例如 "httpProxy":{"ref":"myHttpProxyId"}
imageId

用於執行個體的 AMI ID。依預設, AWS Data Pipeline 會使用 HVM AMI 虛擬化類型。使用之特定 AMI ID 是以區域為基礎。您可以指定所選擇的 HVM AMI 來覆蓋預設的 AMI。如需 AMI 類型的詳細資訊,請參閱 Amazon EC2 使用者指南的 Linux AMI 虛擬化類型和尋找 Linux AMI。

字串
initTimeout 等候資源啟動的時間長短。 期間
instanceCount 已廢除。 Integer
instanceType 要啟動的 Amazon EC2 實例的類型。 字串
keyPair 金鑰對的名稱。如果您在未指定 key pair 的情況下啟動 Amazon EC2 執行個體,則無法登入該執行個體。 字串
lateAfterTimeout 管線開始後,物件必須在其中完成的經過時間。僅當明細表類型未設定為時,才會觸發此選項ondemand 期間
maxActiveInstances 同時作用中的元件執行個體數目上限。重新執行不計入作用中的執行個體數量。 Integer
maximumRetries 故障時嘗試重試的次數上限。 Integer
minInstanceCount 已廢除。 Integer
onFail 目前物件發生故障時要執行的動作。 參考物件,例如 "onFail":{"ref":"myActionId"}
onLateAction 某個物件尚未排程或仍在執行時,應該觸發的動作。 參考物件,例如 "onLateAction":{"ref":"myActionId"}
onSuccess 目前物件成功時要執行的動作。 參考物件,例如 "onSuccess":{"ref":"myActionId"}
parent 目前物件的父系,其插槽已被繼承。 參考物件,例如 "parent":{"ref":"myBaseObjectId"}
pipelineLogUri 用於上傳管道日誌的 Amazon S3 URI(例如's3://BucketName/Key/')。 字串
region 應執行 Amazon EC2 執行個體所在區域的程式碼。根據預設,執行個體執行所在的區域和管道相同。您可以在和相依資料集相同的區域中執行執行個體。 列舉
reportProgressTimeout 遠端工作連續呼叫 reportProgress 的逾時。如果設定,則不回報指定時段進度的遠端活動,可能會視為已停滯而重試。 期間
retryDelay 兩次重試嘗試之間的逾時持續時間。 期間
runAsUser 要執行的使用者 TaskRunner. 字串
runsOn 此物件不允許此欄位。 參考物件,例如 "runsOn":{"ref":"myResourceId"}
scheduleType

排程類型可讓您指定管道定義中的物件應該排程在間隔開頭、間隔結尾,還是隨需排程。

數值為:

  • timeseries。 執行個體會在每個間隔結束時排程。

  • cron。 執行個體會排定在每個間隔的開始。

  • ondemand。 允許您在每次啟動時執行一次管道。您不必複製或重新建立管道,然後再執行一次。若您使用隨需排程,則必須在預設物件中指定此排程,且其必須是針對管道中物件指定的唯一 scheduleType。若要使用隨需管道,請針對每次後續執行呼叫 ActivatePipeline 操作。

列舉
securityGroupIds 要用於資源集區中執行個體的一或多個 Amazon EC2 安全群組的 ID。 字串
securityGroups 要用於資源集區中執行個體的一或多個 Amazon EC2 安全群組。 字串
spotBidPrice 您 Spot 執行個體每小時的美元上限,這是介於 0 至 20.00 的獨佔小數值。 字串
subnetId 要在其中啟動執行個體的 Amazon EC2 子網路識別碼。 字串
terminateAfter 在此小時數後終止資源。 期間
useOnDemandOnLastAttempt 最後一次嘗試請求 Spot 執行個體時,提出隨需執行個體請求,而不是 Spot 執行個體請求。這可確保即使之前所有的嘗試都失敗,最後一次嘗試也不會中斷。 Boolean
workerGroup 此物件不允許此欄位。 字串

執行時間欄位 描述 槽類型
@activeInstances 目前已排程的作用中執行個體物件清單。 參考物件,例如 "activeInstances":{"ref":"myRunnableObjectId"}
@actualEndTime 此物件執行完成的時間。 DateTime
@actualStartTime 此物件執行開始的時間。 DateTime
cancellationReason 若此物件已取消,會提供 cancellationReason 字串
@cascadeFailedOn 物件失敗所在相依性鏈的描述。 參考物件,例如 "cascadeFailedOn":{"ref":"myRunnableObjectId"}
emrStepLog 步驟日誌僅適用於 Amazon EMR 活動嘗試。 字串
errorId 若此物件失敗,會提供錯誤 ID。 字串
errorMessage 若此物件失敗,會提供錯誤訊息。 字串
errorStackTrace 如果此物件失敗,則為錯誤堆疊追蹤。 字串
@failureReason 資源故障的原因。 字串
@finishedTime 此物件完成其執行的時間。 DateTime
hadoopJobLog Hadoop 任務日誌可在嘗試 Amazon EMR 活動時使用。 字串
@healthStatus 反映已達終止狀態之最後一個物件執行個體成功或失敗的物件運作狀態。 字串
@healthStatusFromInstanceId 已達終止狀態之最後一個執行個體物件的 ID。 字串
@ healthStatusUpdated 時間 上次更新運作狀態的時間。 DateTime
hostname 選取任務嘗試之用戶端的主機名稱。 字串
@lastDeactivatedTime 此物件最後停用的時間。 DateTime
@ latestCompletedRun 時間 執行完成最近一次執行的時間。 DateTime
@latestRunTime 執行排程最近一次執行的時間。 DateTime
@nextRunTime 下次要排程執行的時間。 DateTime
reportProgressTime 遠端活動最近報告進度的時間。 DateTime
@scheduledEndTime 物件的排程結束時間。 DateTime
@scheduledStartTime 物件的排程開始時間。 DateTime
@status 此物件的狀態。 字串
@version 建立物件使用的管道版本。 字串
@waitingOn 此物件等待之相依性清單的描述。 參考物件,例如 "waitingOn":{"ref":"myRunnableObjectId"}

系統欄位 描述 槽類型
@error 描述格式錯誤物件的錯誤。 字串
@pipelineId 此物件所屬管道的 ID。 字串
@sphere 物件在生命週期中的位置。元件物件引發執行個體物件,這會執行嘗試物件。 字串