2017-12-30 81 views
0

複数の環境をサポートするCloudFormationテンプレートを作成しようとしています。各envには2つまたは3つの証明書をロードバランサーリスナーに割り当てる必要があります。AWS :: ElasticLoadBalancingV2 :: Listener AWS :: ElasticLoadBalancingV2 :: Listener任意の証明書リスト

しかし、Cloudformは証明書のリスト(doc)の単純なリストを受け入れないため、パラメータを使用してオブジェクトのリストを渡す方法を理解することに苦労しています。 Cloudformationを作成するには、「foreachの」を持っていない

  • 許容タイプではありません、それは「何かの」リストでなければなりません。各パラメータはタイプ
  • 「リスト」を持たなければならない

    1. :と思われます各証明書からのオンザフライでの「証明書オブジェクト」。

    は、私は、この例のテンプレート(link)に出会いましたが、ここでの問題は、2つの明示的な証明書を使用することによって解決される - 私は

    はREFについては、私は必要な証明書の任意のリストを動的に入力できるようにする必要がありますARN1、ARN2、Arn_nは "リスト型" パラメータから来

    Certificates: - Certificate: Arn1 - Certificate: Arn2 - Certificate: Arn_n

    :このような何か(擬似コード)を注入することができるようにします。

    私は、「foreach」や、パラメータリスト内のアイテムごとに1つの「オブジェクト」を生成するのに役立つ何か「foreach」などがあるか、「リッチ」パラメータオブジェクトを渡す方法はありますか?

  • 答えて

    1

    CloudFormationでは、パラメータタイプとしてCommaDelimitedListを使用できます。その後、カンマで区切ったリストの形でこれを供給することができます:

    ARN1、ARN2を、

    arn3リストは任意です。リスナーのCertificatesプロパティに直接入力してください:

    "Certificates" : { "Ref" : "MyListParam" } 
    
    +0

    ありがとうございました!私は制限が何であるかをもう少し明確にするために質問を更新しました。 – Trondh

    +0

    私は問題を参照してください。したがって、このソリューションは直接動作しません。 CloudFormationは 'foreach'型の構造を持っていません。あなたは条件付きであなたが望むことをすることができるかもしれません。 –

    +0

    ありがとう! Anoughを使って雲の情報を適用するので、代わりにJinja2の魔法を使いました。ちょうどこのように実装されたことに驚きました。 – Trondh