Назад | Перейти на главную страницу

Как использовать профиль для аутентификации и применения файла terraform

Я хочу иметь возможность развертывать некоторые файлы сценариев в aws lambda с помощью файла terraform.

Вот мой файл:

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.

Как я могу исправить эту проблему?

Возможно, возникла проблема с переменной среды AWS_PROFILE, убедитесь, что параметры AWS_SECRET_ACCESS_KEY и AWS_ACCESS_KEY_ID не установлены. Это гарантирует, что ключи, которые он принимает через переменную среды, взяты из переменной среды AWS_PROFILE.

См. Раздел «Переменная среды» в https://www.terraform.io/docs/providers/aws/index.html статья о том, как установить переменные среды для секретных ключей и ключей доступа.