Gav*_*Yap 13 aws-lambda terraform
任何人都可以参考或向我展示如何使用 Terraform 创建 AWS Lambda 触发器的示例吗?
在AWS控制台中,单击函数名称并选择配置选项卡后,您可以创建触发器,例如SNS触发器
Asr*_*lah 15
对于 sns,您需要创建 sns 订阅
\nresource "aws_sns_topic_subscription" "user_updates_lampda_target" {\n topic_arn = \xe2\x80\x9csns topic arn\xe2\x80\x9d\n protocol = "lambda"\n endpoint = \xe2\x80\x9clambda arn here\xe2\x80\x9d\n}\nRun Code Online (Sandbox Code Playgroud)\n要允许 Lambda 函数从 Kinesis、DynamoDB 和 SQS 获取事件,您可以使用事件源映射
\nresource "aws_lambda_event_source_mapping" "example" {\n event_source_arn = aws_dynamodb_table.example.stream_arn\n function_name = aws_lambda_function.example.arn\n starting_position = "LATEST"\n}\nRun Code Online (Sandbox Code Playgroud)\n
ako*_*sky 14
对于 SNS 触发器,还需要为 lambda 添加基于资源的策略,以允许 SNS 订阅执行它。
从 AWS 控制台创建触发器时,这是自动完成的。使用 Terraform 时,需要添加 aws_lambda_permission:
resource "aws_sns_topic_subscription" "my_sns_subscription" {
topic_arn = aws_sns_topic.my_sns_topic.arn
protocol = "lambda"
endpoint = aws_lambda_function.my_lambda_function.arn
}
resource "aws_lambda_permission" "with_sns" {
statement_id = "AllowExecutionFromSNS"
action = "lambda:InvokeFunction"
function_name = aws_lambda_function.my_lambda_function.function_name
principal = "sns.amazonaws.com"
source_arn = aws_sns_topic.my_sns_topic.arn
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10130 次 |
| 最近记录: |