2回答
- 新しい順
- 投票が多い順
- コメントが多い順
0
パラメータを変更した後に「sam build」でビルドは行いましたか?
実行していない場合は実行してみてください。
また、正しいsamconfig.tomlを開いて編集 (例えば違うディレクトリにあるファイルを編集していないかなど) しているかなども確認してみてください。
0
この問題を解決するには、いくつかの点を確認し、修正する必要があります。
- samconfig.tomlファイルの形式: 現在の設定では、parameter_overridesの形式が正しくありません。正しい形式は以下のようになります:
[dev.deploy.parameters]
parameter_overrides = "SysMailAddr=foo_no_reply@foo.bar.com"
パラメータオーバーライドは、キーと値のペアを含む単一の文字列として指定する必要があります。
- デプロイコマンド: 現在のデプロイコマンドは正しいですが、パラメータが正しく渡されているか確認するために、--parameter-overridesオプションを明示的に使用することもできます:
sam deploy --config-file samconfig.toml --config-env dev --no-fail-on-empty-changeset --parameter-overrides SysMailAddr=foo_no_reply@foo.bar.com
- テンプレートでのパラメータの使用: テンプレート内で、パラメータを環境変数として設定していることを確認してください。例えば:
Resources: MyFunction: Type: AWS::Serverless::Function Properties: Environment: Variables: SYSTEM_MAIL_ADDRESS: !Ref SysMailAddr
- 変更の確認: デプロイ時に変更セットを確認するオプションを使用することで、パラメータが正しく適用されているか確認できます:
sam deploy --config-file samconfig.toml --config-env dev --no-fail-on-empty-changeset --confirm-changeset
これらの修正を行った後、再度デプロイを実行してください。パラメータが正しく反映され、Lambdaの環境変数が更新されるはずです。変更が反映されない場合は、CloudFormationのスタックイベントを確認し、エラーメッセージがないか確認してください。
Sources
AWS SAM CLI configuration file - AWS Serverless Application Model
sam deploy - AWS Serverless Application Model
The AWS SAM CLI - AWS Serverless Application Model
回答済み 2年前
agentにparameter_overridesの形式が正しくありませんと指摘されましたが、 以下のURLにあるように、配列で指定可能ということで利用しています。 https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-sam-cli-config.html
関連するコンテンツ
- AWS公式更新しました 5年前

ありがとうございます。 LambdaのBuildはNodeJsのServerless Frameworkの方で実施していたのでsam buildは実施していませんでした。 都合、時間が必要ですが試してみます。 また報告させていただきます。
原因がわかりました。buildではなかったのですが、ヒントになりました。ありがとうございます。
samconfig.tomlにparameter_overridesを記載しているのに、 codepiplineのbuildspec.ymlに記載されているsam deployにもパラメータでparameter_overridesを渡していました。(以下のように) そのため、コマンドパラメータ側が優先されてしまっていました。