如何使用配置文件进行身份验证并应用 Terraform 文件

如何使用配置文件进行身份验证并应用 Terraform 文件

我希望能够使用 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有关如何为您的秘密和访问密钥设置环境变量的文章。

相关内容