

AWS Data Pipeline 不再提供給新客戶。的現有客戶 AWS Data Pipeline 可以繼續正常使用服務。[進一步了解](https://aws.amazon.com/blogs/big-data/migrate-workloads-from-aws-data-pipeline/)

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

# Ec2Resource
<a name="dp-object-ec2resource"></a>

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

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

**注意**  
若要將 IMDSv2 用於 Amazon EC2 執行個體，您需要修改設定，因為預設 AMI 與 IMDSv2 不相容。您可以指定可透過下列 SSM 參數擷取的新 AMI 版本：`/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-ebs`。

如需有關未指定執行個體時所 AWS Data Pipeline 建立的預設 Amazon EC2 執行個體的資訊，請參閱 [依 AWS 區域的預設 Amazon EC2 執行個體](dp-ec2-default-instance-types.md)。

## 範例
<a name="ec2resource-example"></a>

**EC2-Classic**

**重要**  
只有 2013 年 12 月 4 日之前建立 AWS 的帳戶支援 EC2-Classic 平台。如果您有其中一個帳戶，您可以選擇在 EC2-Classic 網路而非 VPC 中為管道建立 EC2Resource 物件。 EC2-Classic 我們強烈建議您為 VPCs 中的所有管道建立資源。此外，如果您在 EC2-Classic 中有現有資源，建議您將其遷移至 VPC。

下列範例物件會在 EC2-Classic 中啟動 EC2 執行個體，並設定一些選用欄位。

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

## 語法
<a name="ec2resource-syntax"></a>


****  

| 必要欄位 | Description | 槽類型 | 
| --- | --- | --- | 
| resourceRole | 控制 Amazon EC2 執行個體可存取之資源的 IAM 角色。 | String | 
| role |  AWS Data Pipeline 用來建立 EC2 執行個體的 IAM 角色。 | String | 

 


****  

| 物件呼叫欄位 | Description | 槽類型 | 
| --- | --- | --- | 
| schedule |  在排程間隔的執行期間會呼叫此物件。 若要設定此物件的相依性執行順序，請指定另一個物件的排程參考。您可採用下列其中一種方式來這麼做： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/datapipeline/latest/DeveloperGuide/dp-object-ec2resource.html)  | 參考物件，例如 "schedule":\$1"ref":"myScheduleId"\$1 | 

 


****  

| 選用欄位 | Description | 槽類型 | 
| --- | --- | --- | 
| actionOnResourceFailure | 此資源的資源故障之後所採取的動作。有效值為 "retryall" 和 "retrynone"。 | String | 
| actionOnTaskFailure | 此資源的任務失敗之後所採取的動作。有效值為 "continue" 或 "terminate"。 | String | 
| associatePublicIpAddress | 指出是否將公有 IP 地址指派此執行個體。如果執行個體位於 Amazon EC2 或 Amazon VPC 中，預設值為 true。否則，預設值為 false。 | Boolean | 
| attemptStatus | 遠端活動最新回報的狀態。 | String | 
| attemptTimeout | 遠端工作完成的逾時。如果設定，則未在指定開始時間內完成的遠端活動，可能會重試。 | Period | 
| availabilityZone | 要在其中啟動 Amazon EC2 執行個體的可用區域。 | String | 
| disableIMDSv1 | 預設值為 false，並同時啟用 IMDSv1 和 IMDSv2。如果您將其設定為 true，則會停用 IMDSv1，並且只提供 IMDSv2s | Boolean | 
| failureAndRerunMode | 描述相依性故障或重新執行時的消費者節點行為。 | 列舉 | 
| httpProxy | 用戶端用來連線至 AWS 服務的代理主機。 | 參考物件，例如  "httpProxy":\$1"ref":"myHttpProxyId"\$1 | 
| imageId | 用於執行個體的 AMI ID。根據預設， AWS Data Pipeline 會使用 HVM AMI 虛擬化類型。使用之特定 AMI ID 是以區域為基礎。您可以指定所選擇的 HVM AMI 來覆蓋預設的 AMI。如需 AMI 類型的詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的 [Linux AMI 虛擬化類型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/virtualization_types.html)和[尋找 Linux AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html)。  | String | 
| initTimeout | 等候資源啟動的時間長短。 | Period | 
| instanceCount | 已廢除。 | Integer | 
| instanceType | 要啟動的 Amazon EC2 執行個體類型。 | String | 
| keyPair | 金鑰對的名稱。如果您在未指定金鑰對的情況下啟動 Amazon EC2 執行個體，則無法登入。 | String | 
| lateAfterTimeout | 物件必須完成的管道啟動後經過的時間。只有在排程類型未設定為 時，才會觸發它ondemand。 | Period | 
| maxActiveInstances | 同時作用中的元件執行個體數目上限。重新執行不計入作用中的執行個體數量。 | Integer | 
| maximumRetries | 故障時嘗試重試的次數上限。 | Integer | 
| minInstanceCount | 已廢除。 | Integer | 
| onFail | 目前物件發生故障時要執行的動作。 | 參考物件，例如  "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 某個物件尚未排程或仍在執行時，應該觸發的動作。 | 參考物件，例如 "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 目前物件成功時要執行的動作。 | 參考物件，例如  "onSuccess":\$1"ref":"myActionId"\$1 | 
| parent | 目前物件的父系，其插槽已被繼承。 | 參考物件，例如  "parent":\$1"ref":"myBaseObjectId"\$1 | 
| pipelineLogUri | 用於上傳管道日誌的 Amazon S3 URI （例如 's3://BucketName/Key/')。 | String | 
| region |  Amazon EC2 執行個體應執行之區域的程式碼。根據預設，執行個體執行所在的區域和管道相同。您可以在和相依資料集相同的區域中執行執行個體。 | 列舉 | 
| reportProgressTimeout | 遠端工作連續呼叫 reportProgress 的逾時。如果設定，則不回報指定時段進度的遠端活動，可能會視為已停滯而重試。 | Period | 
| retryDelay | 兩次重試嘗試之間的逾時持續時間。 | Period | 
| runAsUser | 執行 TaskRunner 的使用者。 | String | 
| runsOn | 此物件不允許此欄位。 | 參考物件，例如 "runsOn":\$1"ref":"myResourceId"\$1 | 
| scheduleType |  排程類型可讓您指定管道定義中的物件應該排程在間隔開頭、間隔結尾，還是隨需排程。 數值為： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/datapipeline/latest/DeveloperGuide/dp-object-ec2resource.html)  | 列舉 | 
| securityGroupIds | 一或多個 Amazon EC2 安全群組IDs，用於資源集區中的執行個體。 | String | 
| securityGroups | 一或多個 Amazon EC2 安全群組，用於資源集區中的執行個體。 | String | 
| spotBidPrice | 您 Spot 執行個體每小時的美元上限，這是介於 0 至 20.00 的獨佔小數值。 | String | 
| subnetId | 要在其中啟動執行個體的 Amazon EC2 子網路 ID。 | String | 
| terminateAfter | 在此小時數後終止資源。 | Period | 
| useOnDemandOnLastAttempt | 最後一次嘗試請求 Spot 執行個體時，提出隨需執行個體請求，而不是 Spot 執行個體請求。這可確保即使之前所有的嘗試都失敗，最後一次嘗試也不會中斷。 | Boolean | 
| workerGroup | 此物件不允許此欄位。 | String | 

 


****  

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

 


****  

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