2016-10-19 6 views
2

私は '新しい' YAML形式で雲の作成テンプレートを作成していますが、UserDateセクション内で発生するRefステートメントの翻訳方法はわかりません。 userdata内のデータは、ユニットファイルを含むCoreOSのクラウド設定です。テンプレートはJSONでうまく動作しますが、YAMLのRefステートメントをどのように構築するのか分かりません。次のようにYAML CloudFormatテンプレートのUserDataからの参照役割

私のユーザデータセクションの上部には、次のとおりです。これは、パラメータを参照

UserData: 
    Fn::Base64: 
     !Sub | 

、これがテンプレートによって作成されたダイナミックIAM役割を参照するようになっている

Environment=NRSYSMOND_license_key=${NewRelicLicenseKey} 

正常に動作します。 CFは

Environment=IAM_ROLE=${!Ref InstanceRole} 
スワップアウトされていなかった、それはそれを意味する変数 を解析することはできませんので、これはCoreOSにエラーが発生し

Environment=IAM_ROLE=${InstanceRole} 

役割のIDと値を交換していないようです

同じCFテンプレートで作成された場合、ロールなどのオブジェクトをuserdataセクションから参照することはできませんか?代入は、AWS :: *リソースを使用する場合や、パラメータを使用する場合に問題ありません。あなたは以下のようにInstanceRoleというリソースを持っている場合は

+0

私の知る限り、InstanceRoleはnameプロパティをリソース与え、値が動作しないことを返さなければことを期待している場合は、私がしたいhttp://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-sub.html

UserData: Fn::Base64: !Sub - | Environment=IAM_ROLE=${InstanceRole} - InstanceRole: Ref: InstanceRole 

の下部に、もう少し説明知っている –

答えて

2

は:

Resources: 
    InstanceRole: 
    Type: "AWS::IAM::Role" 
    Properties: 
     etcetc 

あなたがお勧め何をすることができるはずですが、しかし、あなたはまた、次のように置換される変数に参考値を渡すことができます。あなたは

関連する問題