我使用Terraform来分配由请求触发的Lambda函数到AWS上的API网关。这是我的.tf文件:
dsf这正确地设置了Lambda函数,但是API网关有一些问题。当我使用输出URL (https://cqsso4fw67.execute-api.us-east-1.amazonaws.com)时,它给出了以下内容:
curl https://cqsso4fw67.execute-api.us-east-1.amazonaws.com/
{"message":"Internal Server Error"}% 如果我手动删除这个API网关,并在Lambda函数中从AWS控制台创建一个新的API网关,并再次运行curl,我将获得“成功!”(这就是我的兰博达应该做的事)。
smf 有什么想法吗?如何修复.tf文件以正确设置API触发器?
以下是AWS中创建的和Terraform中提供的不同之处。Terraform one在顶端。

发布于 2022-02-09 06:38:54
您显示的TF代码是正确的。失败的最可能原因是您的lambda函数,您还没有显示它。您必须检查lambda函数日志中的CloudWatch,以检查其失败的原因。
编辑:
该职能应返回:
return {
'statusCode': 200,
'body': 'SUCCESS'
} 发布于 2022-02-09 07:20:07
如果有人遇到这个问题,我设法通过大大简化事情来解决它。我用以下内容切换了Terraform文件中的所有API Gateway子句:
resource "aws_apigatewayv2_api" "apigw-terraform" {
name = "terraform-api"
protocol_type = "HTTP"
target = aws_lambda_function.w-scan-terraform.arn
}我所遵循的教程实现了一些比我需要的更复杂的东西。
https://stackoverflow.com/questions/71044759
复制相似问题