LoginSignup
0

More than 5 years have passed since last update.

OpsWorks (Chef 11.10) 内のカスタムレシピでaws-sdk-v2を使う方法

Posted at

背景

OpsWorks (Chef 11.10) でカスタムレシピを利用しようとすると、aws-sdkのバージョンがv1のため、最近のサービスをAPIから利用できませんでした。
以下、v2を利用するための手順です。

手順

aws-sdk-v2をgem install

具体的には以下のカスタムレシピをまず実行しときます。

install_aws_sdk_v2.rb
chef_gem "aws-sdk" do
  version "2.10.55"
  action :install
end

利用するときにaws-sdk-v2をrequire

aws-sdk で require してしまうと、v1が読み込まれてしまいます。
v2を利用するためには、 aws-sdk-resources を指定すれば良いです。
以下はv1では利用できなかったALB連携の例。

require 'aws-sdk-resources'

region = node["opsworks"]["instance"]["region"]
ec2_instance_id = node["opsworks"]["instance"]["aws_instance_id"]

client = ::Aws::ElasticLoadBalancingV2::Client.new(region: region)

target_to_attach = {
  target_group_arn: "xxxx",
  targets: [{ id: ec2_instance_id }]
}

client.register_targets(target_to_attach)

これでv2を利用できました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0