ラムダ関数名に変数を使用したい。例えば:
variable "lambda_function_name" {
default = "my-project-lambda-func"
}
resource "aws_lambda_function" "${var.lambda_function_name}" {
filename = "${data.archive_file.package-zip.output_path}"
function_name = "this_is_a_test"
handler = "lambda_function.simple_handler"
source_code_hash = "${data.archive_file.package-zip.output_base64sha256}"
runtime = "python3.7"
tags = "${var.tags}"
timeout = 300
}
変数を使用してSNSサブスクリプションを作成したい:
resource "aws_sns_topic_subscription" "call_lambda_by_sns" {
topic_arn = "${module.myproject_event_sns.arn}"
protocol = "lambda"
endpoint = "${aws_lambda_function.${var.lambda_rotate_db_function_name}.arn}"
}
terraform validateを実行すると、このエラーがスローされます
aws_sns_topic_subscription [call_lambda_by_sns]の設定の読み取りエラー:1:23の解析エラー:「}」が必要ですが、無効なシーケンス「$」が見つかりました
だから私は別の方法を試しました:
resource "aws_sns_topic_subscription" "call_lambda_by_sns" {
topic_arn = "${module.myproject_event_sns.arn}"
protocol = "lambda"
endpoint = "aws_lambda_function.${var.lambda_rotate_db_function_name}.arn"
}
ここで、エンドポイントラインがこのエラーを引き起こします。
Error: Error parsing address 'aws_lambda_function.${var.lambda_rotate_db_function_name}': invalid resource address "aws_lambda_function.${var.lambda_rotate_db_function_name}"
では、ここで変数を使用できるようにするための構文は何ですか?
これは、いくつかの問題を修正した後に完了することができます
リソース名に補間を使用できないため、変更してください
resource "aws_lambda_function" "${var.lambda_function_name}" {
ハードコードされた一般的な値に
resource "aws_lambda_function" "default" {
補間内で補間を使用できないため、変更してください
endpoint = "${aws_lambda_function.${var.lambda_rotate_db_function_name}.arn}"
総称名を使用するにはdefault
、上から
endpoint = "${aws_lambda_function.default.arn}"
ワーキングテラフォーム
variable "lambda_function_name" {
default = "my-project-lambda-func"
}
resource "aws_lambda_function" "default" {
filename = "${data.archive_file.package-zip.output_path}"
function_name = "this_is_a_test"
handler = "lambda_function.simple_handler"
source_code_hash = "${data.archive_file.package-zip.output_base64sha256}"
runtime = "python3.7"
tags = "${var.tags}"
timeout = 300
}
resource "aws_sns_topic_subscription" "call_lambda_by_sns" {
topic_arn = "${module.myproject_event_sns.arn}"
protocol = "lambda"
endpoint = "${aws_lambda_function.default.arn}"
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加