I have an Elastic Transcoder pipeline configured, and it has successfully processed jobs created via the AWS Management Console. However, when using the Ruby API, the pipeline doesn't appear to exist:

et = AWS::ElasticTranscoder::Client.new
puts et.list_pipelines.inspect
# {:pipelines=>[], :request_id=>"e9e5ae2b-ca43-11e3-969d-530832cf62dd"}

Similarly, calling create_job with the correct :pipeline_id raises an error, claiming AWS returned a 404 for that pipeline ID.

According to the documentation, this does not indicate a permissions error. A permissions error should return a 403. But just to be sure, I set the IAM user's permissions to superuser as follows:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "*",
      "Resource": "*"
    }
  ]
}

Why would the pipeline not be found?

有帮助吗?

解决方案

You have to connect to the same AWS region in which your pipeline resides. To find out the pipeline's region:

  1. Go to the list of pipelines in the AWS Management Console.
  2. Click the magnifying glass icon for your pipeline. This should open the pipeline's details.
  3. Find the region in the ARN string. For example, us-west-2.

Then, when you connect to AWS, do it like this:

AWS.config({
  :access_key_id => 'abc',
  :secret_access_key => '123',
  :region => 'us-west-2' # Or whatever your region is
})
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top