2012-05-03 4 views
2

ノードのaws-libモジュールを使用しています。私はノードAPIの周りにかなり薄いラッパーであることを理解しています。例えば、実行コール( "CreateTags")はAPIに書かれているようにCreateTags呼び出しをラップします。ノードAWS-lib:CreateTagsアクションが 'Webサービスに対して無効です'

RunInstanceやDescribeInstancesなどの他のAPI関数を正常に呼び出すことができます。しかしCreateTagsは、問題が発生します。

ec2.call("CreateTags", { 
    'ResourceId.1':notmyrealresourceid, 
    'Tag.1.Key':'Name' 
    'Tag.1.Value':'Somemachine' 
}, function(err, result){ 
    if (err) { 
    console.log('Failure tagging image'); 
    console.log(err) 
    } 
}) 

はerrに次のように応答します。

The action CreateTags is not valid for this web service. 

APIは間違いなくCreateTagsが存在して言及しています。どうすればそれを動作させることができますか?私は何が欠けていますか? ありがとう!

答えて

1

var ec2Clientの現在のmasterブランチの定義を参照してください、aws-libではオプションAmazon EC2 API「バージョン」パラメータのための疑わしいデフォルトに由来するように見える:

// Amazon EC2 API handler which is wrapped around the genericAWSClient 
    var ec2Client = function(obj) { 
    var aws = genericAWSClient({ 
     host: obj.host, path: obj.path, accessKeyId: obj.accessKeyId, 
     secretAccessKey: obj.secretAccessKey, secure: obj.secure 
    }); 
    obj.call = function(action, query, callback) { 
     query["Action"] = action 
     query["Version"] = obj.version || '2009-11-30' 
     query["SignatureMethod"] = "HmacSHA256" 
     query["SignatureVersion"] = "2" 
     return aws.call(action, query, callback); 
    } 
    return obj; 
    } 

、するために選択EC2 APIバージョンのデフォルトでありますかなり古代の '2009-11-30'(現在は '2012-04-01')、タグサポートはAPIバージョン '2010-08-31'にのみ導入されています(Release: Amazon EC2 on 2010-09-19 - バージョン独立の概要はAmazon Elastic Compute Cloud API Reference内のDocument History)。

したがって、十分に新しいEC2 APIバージョンを提供するだけで済みます。

+0

ありがとうSteffen! 'ec2 = aws.createEC2Client(access_key、secret_access_key、{'version': '2012-03-01'})' – mikemaccana

1

パラメータに余分な意図しないスペースがないことを確認してください。例えば

https://ec2.amazonaws.com/?Action=RunInstances&ImageId=ami-7ba91a12&MaxCount=3&MinCount=1&Placement.AvailabilityZone=us-east-1b&Monitoring.Enabled=true&AWSAccessKeyId=AKIAJTLX2WXU44OXMBKQ&Version=2012-07-20 &タイムスタンプ= 2012-09-19T21:07:32 & SignatureVersion = 2 &のSignatureMethod = HMACSHA256 &署名= XXXXXXXXXXXXXXXXXXXXX

それとも、そのエラーメッセージが表示されます。バージョン以外の他のパラメータのスペースでもこのエラーが発生します。

ec2ツールの最新リリースは、このWebサイトで入手できます。 http://aws.amazon.com/developertools/351

+0

+1の残りの部分を許可するためのオプションを指定して、この問題を修正しました。世界は知っている。 – mikemaccana