问题
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?
回答1:
You have to connect to the same AWS region in which your pipeline resides. To find out the pipeline's region:
- Go to the list of pipelines in the AWS Management Console.
- Click the magnifying glass icon for your pipeline. This should open the pipeline's details.
- 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
})
来源:https://stackoverflow.com/questions/23226797/aws-elastic-transcoder-pipeline-not-found