[解決済み] クラウド形成リソース作成における複数条件
2022-02-10 04:12:06
質問事項
プラットフォーム条件を使って、AWSでスピンアップされる環境の種類を制御しています。共有リソースはたくさんあるが、いくつかの条件によってプリベイクされたAMIを持つ特定のEC2インスタンスが必要だ。
"Parameters": {
"Platform": {
"Description": "Select platform type - linux or windows",
"Default": "linux",
"Type": "String",
"AllowedValues": [ "linux", "windows", "both" ],
"ConstraintDescription": "Must enter either linux, windows, or both"
},
そして
conditions
.
"Conditions" : {
"LinuxPlatform" : {"Fn::Equals" : [{"Ref" : "Platform"}, "linux"]},
"WindowsPlatform" : {"Fn::Equals" : [{"Ref" : "Platform"}, "windows"]},
"BothPlatform" : {"Fn::Equals" : [{"Ref" : "Platform"}, "both"]}
},
リソースで、linuxかwindowsのどちらかを使ってWindowsかLinuxのEc2作成をトリガーするか、両方を使って宣言されたすべてのec2リソースをデプロイしたいのですが、どうすればいいですか?
を使って以下のように試してみました。
fn:or
をいくつか使っています。
"Fn::Or": [{"Condition": "LinuxPlatform"}, {"Condition": "BothPlatform" }],
そして...
"Condition" : {
"Fn::Or" : [
{"Condition" : "LinuxPlatform"},
{"Condition" : "BothPlatform"}
]
}
aws cliを使用してデプロイと検証を行おうとすると、以下のエラーが発生します。
aws cloudformation validate-template --template-body file://./cloudformation/deploy.json
A client error (ValidationError) occurred when calling the ValidateTemplate operation: Template format error: Every Condition member must be a string.
リソース作成を制御するために、複数の条件を評価することは可能でしょうか?もし可能でなければ、何か代替案はありますか?
解決方法は?
を追加してみてください。
"MyCondition": {"Fn::Or": [{"Condition": "LinuxPlatform"}, {"Condition": "BothPlatform" }]}
の下にある
Conditions
というように
"Conditions" : {
"LinuxPlatform" : {"Fn::Equals" : [{"Ref" : "Platform"}, "linux"]},
"WindowsPlatform" : {"Fn::Equals" : [{"Ref" : "Platform"}, "windows"]},
"BothPlatform" : {"Fn::Equals" : [{"Ref" : "Platform"}, "both"]},
"MyCondition": {"Fn::Or": [{"Condition": "LinuxPlatform"}, {"Condition": "BothPlatform" }]}
},
関連
-
[解決済み] AWS S3 Bucketの名前を変更する方法
-
[解決済み] S3からモデルをロードしようとすると、チェーン内の任意のプロバイダからAWS認証情報をロードできない - エラー - が発生する
-
[解決済み] CloudFormation Stack Errors with REST API Doesn't Contain Any Methods
-
[解決済み] MSCK REPAIR TABLEは裏で何をしているのか、なぜこんなに遅いのか?
-
[解決済み] ec2 インスタンスのステータスチェックに失敗しました
-
[解決済み] 新しいIAM管理者ユーザーに "この操作を実行する権限がありません "と表示される
-
[解決済み] ウェブサイトがAmazonネームサーバーを持っているが、別のサーバーでホストされている方法
-
[解決済み] AWS DynamoDBから10ms以下のレスポンスタイムを得るには?
-
[解決済み] kubectlエラー EKSクラスタにアクセスする際、サーバーにログインする必要がある(Unauthorized)。
-
[解決済み】LightsailとEC2の違いは何ですか?[クローズド]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】DynamoDBMapperとTable for DynamoDB Tablesの違いとは?
-
[解決済み] AWS::CloudFormation::Init どのように動作するのでしょうか?
-
[解決済み] AMI保管コスト
-
[解決済み] DynamoDBでカラムを追加する方法
-
[解決済み] プライマリネームサーバが親に登録されていない
-
[解決済み] DynamoDB Upsert - Update or Create?
-
[解決済み] s3バケットから複数ファイルをコピーする
-
[解決済み] Terraform AWS Provider の有効なクレデンシャルソースが見つかりません。
-
[解決済み] CIDRアドレスがVPCのCIDRアドレスに含まれない
-
[解決済み] Amazon API GatewayからAWS Lambdaにクエリストリングやルートパラメータを渡す方法