概要
CloudFormationに待望のリソースインポート機能がリリース1
使い方は、例によってクラメソさんが記事化しているので2、気になったところを追加で確認する。
気になっていること
対象のリソースが存在していなければならない、などいくつかの必須条件はドキュメントにも記載済み3。
では、インポートするリソースと、違うパラメータ設定のテンプレートを使うとどうなるのか。置換されたり、上書きされたりする?
実験
対象はS3 Bucket:hogehoge-fugafuga-poyopoyo
全てデフォルト設定。
テストその1:ユニークキーとなるBucketNameが違うテンプレート
取り込むバケット名とBucketNameが異なる。
AWSTemplateFormatVersion: '2010-09-09'
Resources:
S3Bucket:
Type: 'AWS::S3::Bucket'
DeletionPolicy: 'Retain'
Properties:
BucketName: 'piyopiyo-foo-bar'
失敗。
テストその2:デフォルト値と異なるテンプレート
バージョニングはデフォルトで無効。
AWSTemplateFormatVersion: '2010-09-09'
Resources:
S3Bucket:
Type: 'AWS::S3::Bucket'
DeletionPolicy: 'Retain'
Properties:
BucketName: 'hogehoge-fugafuga-poyopoyo'
VersioningConfiguration:
Status: 'Enabled'
インポートは成功。バージョニングは無効化のまま。
どうやら、反映はされないよう。
その後、テンプレート側をDisabled / Enabledと変更しつつ反映したところちゃんと更新された。
まとめ
リソースインポートによって既存リソースが取り込めるようになってとても便利になった。
取り込みと設定更新は同時に行われないようなので、
- 必須項目だけを記述したテンプレートで取り込み
- 任意項目を追加
の方が安全そう。