You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform中如何通过aws_lambda_function引用S3并上传Node.js源码包

从S3部署Node.js Lambda的Terraform配置优化

你的现有配置已经实现了从S3加载Lambda源码包的核心功能,这里给出优化建议和关键注意点:

优化后的配置代码

resource "aws_lambda_function" "terraform_lambda_func" {
  s3_bucket     = var.bucket_name
  s3_key        = "${var.zip_file_name}.zip"
  function_name = var.lambdaFunctionName
  role          = aws_iam_role.okta-iam-v1.arn
  handler       = "index.handler"
  runtime       = "nodejs16.x"

  # 可选配置:根据业务需求调整
  memory_size = 256  # 内存默认128MB,按需调高
  timeout     = 10   # 超时默认3秒,按需延长
}

重要注意事项

  • 确保S3桶与Lambda函数处于同一AWS区域,跨区域会导致源码加载失败
  • 验证aws_iam_role.okta-iam-v1已附加Lambda执行必需的权限策略,比如AWSLambdaBasicExecutionRole(用于日志输出)
  • 若需源码更新时自动触发Lambda重新部署,可添加source_code_hash参数:
    # 本地文件哈希(若本地有源码包副本)
    source_code_hash = filebase64sha256("${path.module}/${var.zip_file_name}.zip")
    
    # 或直接引用S3对象的ETag(需先定义aws_s3_bucket_object资源)
    # source_code_hash = aws_s3_bucket_object.lambda_source.etag
    

内容的提问来源于stack exchange,提问作者Madhawa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 20:55:32