我在试图通过terraform脚本部署AWS lambda.py时遇到了错误。我对AWS Terraform非常陌生,目前无法找出错误。
请在下面找到lambda的地形脚本:
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
任何帮助都将非常感激
此错误表明您没有登录到AWS帐户,如果您在本地运行它,请尝试像下面这样传递AWS帐户的安全和访问密钥。
terraform init -backend-config="access_key=<your access key>" -backend-config="secret_key=<your secret key>"
另外,验证"区域"为S3后端提供。