首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Terraform :遵守限制时出错

Terraform :遵守限制时出错
EN

Stack Overflow用户
提问于 2020-10-21 06:29:55
回答 2查看 315关注 0票数 0

在terraform中,尝试将bucket作为触发器S3到我的lambda,并赋予权限。对于此用例,创建S3资源并尝试在触发逻辑中引用该lambda函数。但是当我引用下面的错误时,代码就失败了。

代码语言:javascript
复制
# Creating Lambda resource


resource "aws_lambda_function" "test_lambda" {
  filename      = "output/welcome.zip"
  function_name = var.function_name
  role          = var.role_name
  handler       = var.handler_name
  runtime       = var.run_time
}



# Creating s3 resource for invoking to lambda function



resource "aws_s3_bucket" "bucket" {
  bucket = "source-bucktet-testing"
  acl    = "private"

  tags = {
    Name        = "source-bucktet-testing"
    Environment = "Dev"
  }
}


# Adding S3 bucket as trigger to my lambda and giving the permissions


resource "aws_s3_bucket_notification" "aws-lambda-trigger" {
  bucket = "aws_s3_bucket.bucket.id"
  lambda_function {
    lambda_function_arn = "aws_lambda_function.test_lambda.arn"
    events              = ["s3:ObjectCreated:*"]
    filter_prefix       = "file-prefix"
    filter_suffix       = "file-extension"
}
}
resource "aws_lambda_permission" "test" {
  statement_id  = "AllowS3Invoke"
  action        = "lambda:InvokeFunction"
  function_name = "aws_lambda_function.test_lambda.function_name"
  principal = "s3.amazonaws.com"
  source_arn = "arn:aws:s3:::aws_s3_bucket.bucket.id"
}

错误消息:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-21 06:36:26

传递给function_nameaws_lambda_function资源的值无效。AWS Lambda函数名称只能包含字母、数字、连字符或下划线,不能有空格。您需要更改var.function_name的值以符合这些限制。

票数 0
EN

Stack Overflow用户

发布于 2020-10-21 06:40:06

您的var.function_name必须无效。

允许的函数名称格式在here和ARN中进行了说明:

代码语言:javascript
复制
The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 140.

Pattern: (arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\$LATEST|[a-zA-Z0-9-_]+))? 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64454208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档