【发布时间】:2021-10-05 09:57:14
【问题描述】:
我在尝试通过 terraform 脚本部署 AWS lambda.py 时遇到错误。我对 AWS Terraform 非常陌生,目前无法找出错误。
请在下面找到 lambda 的 terroform 脚本:
resource "null_resource" "push_invoke_container" {
depends_on = [aws_ecr_repository.<xx>_ecr]
triggers = {
dockerfile = "${sha256(file("./lambda/Dockerfile"))}"
app_code = "${sha256(file("./lambda/main.py"))}"
}
provisioner "local-exec" {
command = "sh ./lambda/deploy.sh ${aws_ecr_repository.<xx>_ecr.name} ${aws_ecr_repository.<xx>_ecr.repository_url}"
}
}
resource "aws_lambda_function" "invoker" {
package_type = "Image"
depends_on = [aws_ecr_repository.lambda_ecr, null_resource.push_invoke_container]
function_name = "${var.app_prefix}_invoker_lambda_${var.environment}_test"
image_uri = "${aws_ecr_repository.lambda_ecr.repository_url}:latest" #"${aws_ecr_repository.lambda_ecr.repository_url}:latest"
role = var.invoker_lambda_role_arn_crawler
timeout = 90
tracing_config {
mode = "Active"
}
environment {
variables = {
CLUSTER = "${aws_ecs_cluster.<xx>.id}",
LAUNCH_TYPE = "FARGATE",
ASSIGN_PUBLIC_IP = "DISABLED",
SUBNETS = "${var.subnet_id}",
SECURITY_GROUPS = "${aws_security_group.<xx>_ecs_security_group.id}",
TASK_DEFINITION = "${aws_ecs_task_definition.<xx>.arn}"
}
}
}
通过terraform init 运行上述脚本时,我收到以下错误:
Error: error configuring S3 Backend: error validating provider credentials: error calling sts:GetCallerIdentity: RequestError: send request failed
│ caused by: Post "https://sts.amazonaws.com/": dial tcp 52.xx.yyy.zzz:443: i/o timeout
任何帮助将不胜感激
【问题讨论】:
-
我认为这与 Lambda 代码无关。在我看来,您似乎无法连接到 AWS API。您是否在使用代理或类似的网络中?还是一些过热的防火墙?
-
我们没有使用任何代理。你也能解释一下我热心的防火墙。我不认为我们正在使用任何类型的防火墙。上面的脚本有什么问题吗?我的 lambda 代码运行良好。
-
看看错误就知道了。对我来说,它看起来与您的代码没有任何关系。但这很容易验证。如果您删除该代码,它会再次起作用吗?但是查看错误,您无法谈论 AWS STS。你得到一个超时。这通常会发生,因为您遇到了网络问题。
标签: amazon-web-services docker aws-lambda terraform-provider-aws