読者です 読者をやめる 読者になる 読者になる

Studio3104::BLOG.new

uninitialized constant Studio3104 (NameError)

aws marketplaceのAMIをSDKで扱うためにしておかなくてはならないこと


AWS SDK for Rubyを用いて、以下のようなコードでCentOS6の最新のAMI IDをマーケットプレイスから取得して、インスタンスを作成しようとしましたが、

image = AWS.memoize do
  amazon_linux = ec2.images.with_owner("aws-marketplace").
    filter("root-device-type", "ebs").
    filter("architecture", "x86_64").
    filter("name", "CentOS-6*")
  amazon_linux.to_a.sort_by(&:name).last
end

こんなエラーが出ました。
WEBサイトからサブスクライブしないとイケナイらしいです。めんどくさいですね。

/home/satoshi/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/aws-sdk-1.7.1/lib/aws/core/client.rb:318:in `return_or_raise': In order to use this AWS Marketplace product you need to accept terms and subscribe. To do so please visit https://aws.amazon.com/marketplace/pp?sku=7w73f3vx0zywcfq1izrshkpjl (AWS::EC2::Errors::OptInRequired)
	from /home/satoshi/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/aws-sdk-1.7.1/lib/aws/core/client.rb:419:in `client_request'
	from (eval):3:in `run_instances'
	from /home/satoshi/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/aws-sdk-1.7.1/lib/aws/ec2/instance_collection.rb:265:in `create'
	from -:55:in `<main>'

エラーメッセージのURLにアクセスして、「continue」をクリック。

「Launch with EC2 Console」タブをクリックし、「Accept Terms」をクリック。

完了。コレでAPI経由でCentOSインスタンスを作れるようになりました。


※画像がi386なのは例だからです。