我希望能够使用 terraform 文件将一些脚本文件部署到 aws lambda。
这是我的文件:
terraform {
required_version = "0.11.7"
}
variable "region" {}
provider "aws" {
region = "${var.region}"
version = "2.00"
}
// Zip the scripts folder (thus creating a package) before supplying it to the lambda function.
data "archive_file" "package_zip" {
type = "zip"
source_dir = "${path.root}/scripts/" # Path from top level module.
output_path = "./sources.zip"
}
resource "aws_lambda_function" "anthony_test_lambda" {
filename = "lambda_function_payload.zip"
function_name = "anthony_test_lambda"
role = "new-role"
handler = "lambda_function.lambda_handler"
source_code_hash = "${data.archive_file.package_zip.output_base64sha256}"
runtime = "python3.7"
}
我想让剧本尽可能地灵活,因为将来我可能不是唯一一个负责剧本的人。
我希望能够使用 AWS 配置文件来驱动该过程。以下是我尝试的:
export AWS_PROFILE=a_team
tf apply
我收到此错误:
* provider.aws: No valid credential sources found for AWS Provider.
Please see https://terraform.io/docs/providers/aws/index.html for more information on
providing credentials for the AWS Provider
我无法使用 AWS 访问密钥 ID 和密钥。
我该如何修复此问题?
答案1
AWS_PROFILE 环境变量可能存在问题,请确保未设置 AWS_SECRET_ACCESS_KEY 和 AWS_ACCESS_KEY_ID。这将确保通过环境变量获取的密钥来自 AWS_PROFILE 环境变量。
请参阅环境变量部分https://www.terraform.io/docs/providers/aws/index.html有关如何为您的秘密和访问密钥设置环境变量的文章。