2

我的应用程序中有一个 ruby​​ 文件,我需要从 amazon Web 服务数据管道调用并执行一个 ruby​​ 文件作为后台作业

我在下面给出了json文件

    #json file
    {  "objects": [
    {
      "id": "ScheduleId4",
      "startDateTime": "2013-08-01T00:00:00",
      "name": "schedule",
      "type": "Schedule",
      "period": "15 Minutes"
    },
    {
      "id": "DataNodeId2",
      "schedule": {
        "ref": "ScheduleId4"
      },
      "name": "Input",
      "directoryPath": "s3://pipeline_test/input/",
      "type": "S3DataNode"
    },
    {
      "id": "ActivityId1",
      "input": {
        "ref": "DataNodeId2"
      },
      "schedule": {
        "ref": "ScheduleId4"
      },
      "stdout": "s3://pipeline_test/logs",
      "scriptUri": "s3://pipeline_test/input/sample.sh",
      "name": "Shell",
      "runsOn": {
        "ref": "ResourceId5"
      },
      "stderr": "s3://pipeline_test/logs",
      "type": "ShellCommandActivity",
      "output": {
        "ref": "DataNodeId3"
      },
      "stage": "true"
    },
    {
      "terminateAfter": "1 Hours",
      "id": "ResourceId5",
      "schedule": {
        "ref": "ScheduleId4"
      },
      "name": "Resource1",
      "logUri": "s3://pipeline_test/logs/",
      "type": "Ec2Resource"
    },
    {
      "id": "Default",
      "scheduleType": "timeseries",
      "name": "Default",
      "role": "DataPipelineDefaultRole",
      "resourceRole": "DataPipelineDefaultResourceRole"
    },
    {
      "id": "DataNodeId3",
      "schedule": {
        "ref": "ScheduleId4"
      },
      "directoryPath": "s3://pipeline_test/output1/",
      "name": "Output",
      "type": "S3DataNode"
    }
  ]
}

样本.sh

 echo "Hello"
 ruby sample.rb

样本.rb

 puts "Hello world"

我已经给出了 sample.sh 文件的正确路径。我仍然不会让 sample.rb 调用或不调用。任何人都告诉我一步一步地遵循它,因为我是亚马逊网络服务数据管道的新手。

帮我解决它。

4

1 回答 1

1

Data Pipeline 启动的默认图像实际上并没有 ruby​​。您必须先构建自己的映像并手动安装 ruby​​。然后,通过 instanceId 在您的资源中引用该图像

于 2015-02-03T18:15:55.703 回答