1

我正在尝试使用亚马逊弹性转码器对工作进行转码,但它不断给我以下错误:

/gems/aws-sdk-v1-1.66.0/lib/aws/core/client.rb:375:in `return_or_raise':找不到指定的管道:account=XXXXXXXXX,pipelineId=xxxxxxxxx。(AWS::ElasticTranscoder::Errors::ResourceNotFoundException)

我的简化代码如下:

transcoder = AWS::ElasticTranscoder::Client.new(
  region: "us-west-1",
  access_key_id: AWS_ACCESS_KEY,
  secret_access_key: AWS_SECRET_KEY
)

transcoder.create_job(
  pipeline_id: '0123456789123-sample",
  input: {
    key: "input_key.mp4",
    frame_rate: 'auto',
    resolution: 'auto',
    aspect_ratio: 'auto',
    interlaced: 'auto',
    container: 'auto'
  },
  output: {
    key: "output_key.mp4",
    preset_id: '1351620000001-000010'
  }
)

我在网上查了一下,找到了一些资源,特别是这里这里

两者基本上都说管道区域和“创建作业区域”必须完全匹配。我在亚马逊管理控制台中创建的管道,经过验证,是“北加州”(“us-west-1”),并且似乎可以使用脚本登录。但是,我不知道在哪里,专门在“transcoder.create_job”部分设置区域。有人知道吗?我似乎无法在文档中找到它。

4

2 回答 2

2

好的,

我发现出了什么问题。我的脚本中有错误的 pipeline_id。您可以在 aws 管理面板的管道屏幕上单击带有放大镜的一张纸的小图标以查找 pipeline_id。我将该 id 放在我的 CreateJob 脚本中,瞧,它起作用了!

于 2016-01-15T09:00:08.467 回答
1

我正在为 Python 使用 boto3 sdk 并且遇到了同样的错误。看起来我服务器上的默认区域名称与我的管道不同。我所做的是添加 region_name 参数并添加管道的区域。

import boto3

client = boto3.client('elastictranscoder', region_name='us-west-2')
list_pipelines = client.list_pipelines()

print list_pipelines
于 2016-12-14T22:07:53.190 回答