問題タブ [aws-cloudformation-custom-resource]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-cloudformation - AWS SAM テンプレートで Fn::GetAtt エラーを取得する
AWS Serverless Application Model テンプレートで、以下のように SNS トピックとサブスクリプションを宣言しました:-
そして、同じテンプレート ファイルで次のように、Lambda 関数の環境で SNS トピック ARN を使用します。
出力 (SAM テンプレート):-
ただし、次のエラーが発生します:-
13:30:30 エラー: スタックの変更セットを作成できませんでした: my-stack、例: ウェイター ChangeSetCreateComplete が失敗しました: ウェイターが端末障害状態ステータス: 失敗しました。理由: テンプレート エラー: リソース MyTopic は Fn::GetAtt の属性タイプ Arn をサポートしていません
amazon-cloudformation - AWS CDK - 低レベルの cfn コンストラクトで「プレースホルダー」トークンを使用する方法
AWS Timestream DB とその中のテーブルを定義するために (typescript で) CDK を使用しています。
AWS がデータベースの名前を設定できるようにしたい (ハードコーディングを避けたい)。問題は、テーブル構成でそのデータベース名を参照する方法です。
CDK ユーザーは、AWS で作成されるまで (テーブルを定義する CDK コードが実行された後)、実際のデータベース名が定義されていないことを認識します。この目的のために、CDK はプレースホルダートークンのアイデアを作成しました (私の強調)。
より高いレベルのCDK コンストラクトでは、プレースホルダー Token が既に定義されていることを知っています。これは、低レベルの cfnコンストラクトには当てはまらないようです。
説明するサンプルコードを次に示します。
このコードは、より高いレベルの dynamo コンストラクトとラムダを使用して動作します。
これは私が AWS Timestream 用に書いているコードで、トークンは生成されません:
私の質問:
- 理由: 下位レベルの構成がトークンを生成しないのはなぜですか。
- 方法:トークンを作成して割り当てることはできると思います
db.databaseName
が、実行時にトークンにデータを入力する方法がわかりませんcdk deploy
。
トークンを生成して入力するためのサンプル コードに関するヘルプをいただければ幸いです。