問題タブ [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.

0 投票する
2 に答える
1621 参照

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 をサポートしていません

0 投票する
1 に答える
924 参照

amazon-cloudformation - AWS CDK - 低レベルの cfn コンストラクトで「プレースホルダー」トークンを使用する方法

AWS Timestream DB とその中のテーブルを定義するために (typescript で) CDK を使用しています。

AWS がデータベースの名前を設定できるようにしたい (ハードコーディングを避けたい)。問題は、テーブル構成でそのデータベース名を参照する方法です。

CDK ユーザーは、AWS で作成されるまで (テーブルを定義する CDK コードが実行された後)、実際のデータベース名が定義されていないことを認識します。この目的のために、CDK はプレースホルダートークンのアイデアを作成しました (私の強調)。

より高いレベルのCDK コンストラクトでは、プレースホルダー Token が既に定義されていることを知っています。これは、低レベルの cfnコンストラクトには当てはまらないようです。

説明するサンプルコードを次に示します。

このコードは、より高いレベルの dynamo コンストラクトとラムダを使用して動作します。

これは私が AWS Timestream 用に書いているコードで、トークンは生成されません:

私の質問:

  1. 理由: 下位レベルの構成がトークンを生成しないのはなぜですか。
  2. 方法:トークンを作成して割り当てることはできると思いますdb.databaseNameが、実行時にトークンにデータを入力する方法がわかりませんcdk deploy

トークンを生成して入力するためのサンプル コードに関するヘルプをいただければ幸いです。