使用Terraform脚本部署简单helloworld lambda函数(python)-创建时出错;测试λ“;

使用Terraform脚本部署简单helloworld lambda函数(python)-创建时出错;测试λ“;,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,我正在尝试使用terraform脚本创建lambda函数 我得到错误,说“错误创建lambda函数”,我把屏幕截图的错误也 这是地形脚本: 我在AWS管理控制台中创建了一个角色,并命名为“欢迎Lambda角色”。这就是我在下面的脚本中提到的角色。我不知道这是否是问题所在 provider "aws" { region = "us-west-2" access_key = "xxz" secret_key = &qu

我正在尝试使用terraform脚本创建lambda函数 我得到错误,说“错误创建lambda函数”,我把屏幕截图的错误也

这是地形脚本:

我在AWS管理控制台中创建了一个角色,并命名为“欢迎Lambda角色”。这就是我在下面的脚本中提到的角色。我不知道这是否是问题所在

provider "aws" {
  region     = "us-west-2"
  access_key = "xxz"
  secret_key = "yyyydtEyZtOaQVGF5h"
}
data "archive_file" "welcome" {
  type = "zip"
  source_file = "welcome.py"
  output_path = "outputs/welcome.zip"
}
resource "aws_lambda_function" "test_lambda" {
  filename = "outputs/welcome.zip"
  function_name = "welcome"
  handler = "welcome.hello"

  //created this role manually in AWS console and referred to that role in the next line
  role = "Welcome-Lambda-Role"
 
  //source_code_hash = filebase64sha256("lambda_function_payload.zip")
  runtime = "python3.7"
}
欢迎使用.py文件内容

  def hello(event, context):
     print("Welcome to terraform")

角色
应该是该角色的ARN,而不仅仅是其名称:

data "aws_iam_role" "role" {
  name = "Welcome-Lambda-Role"
}

resource "aws_lambda_function" "test_lambda" {

      filename      = "welcome.zip"
      function_name = "welcome"
      handler       = "welcome.lambda_handler"

      role          = data.aws_iam_role.role.arn
      
      runtime       = "python3.7"

}
或者,如果您只是想硬编码:

resource "aws_lambda_function" "test_lambda" {

      filename      = "welcome.zip"
      function_name = "welcome"
      handler       = "welcome.lambda_handler"

      role          = "arn:aws:iam::xxxx:role/service-role/Welcome-Lambda-Role"
      
      runtime       = "python3.7"

}

谢谢你,马辛。这个错误消失了。出于某种原因,添加到welcome.zip文件的welcome.py文件没有任何内容。这就是为什么我会遇到这个错误。@Jason您没有显示您的
欢迎.py
,可能是它是空的,或者它在不同的位置?您的
archive\u文件
是正确的。很抱歉,我忘了放welcome.py。我把它添加到上面的原始帖子中。对不起,只是在地形上加快了速度。为什么我需要上传welcome.zip。为什么不能是welcome.py文件本身?@Jason Zip是你的。除了
角色
问题之外,您的代码或lambda函数没有任何问题。如果您有其他问题(empty
welcome.py
),则您的问题中不会出现此问题。谢谢。我将通过你共享的链接。感谢你的帮助。一个问题。使用Terraform脚本部署Lambda函数正常吗?我构建了一个CI/CD Jenkins管道来部署terraform脚本。我的计划是使用该管道通过terraform脚本部署Lambda函数。