首页 > 解决方案 > 向多个帐户提供 Terraform

问题描述

我使用 terraform 将 lambda 部署到一个 aws 帐户,并使用 s3 触发器在另一个帐户中部署 lambda。因此,我创建了两个单独的文件夹,每个文件夹都保存特定帐户的状态。

但是,我想将所有内容合并到一个模板中。有可能做到吗?例子:

provider "aws" {
  profile = "${var.aws_profile}"
  region  = "eu-west-1"
}

provider "aws" {
  alias  = "bucket-trigger-account"
  region = "eu-west-1"
  profile = "${var.aws_bucket_trigger_profile}
}

我希望 aws bucket-trigger-account 提供以下资源。我该怎么做?

resource "aws_s3_bucket_notification" "bucket_notification" {
  bucket = "${var.notifications_bucket}"

  lambda_function {
    lambda_function_arn = "arn:aws:lambda:eu-west-1-xxx"
    events              = ["s3:ObjectCreated:*"]
    filter_suffix       = ".test"
  }
}

标签: terraformterraform-provider-aws

解决方案


发现只需在资源上使用提供者参数,您就可以为该资源使用不同的提供者:provider = "aws.bucket-trigger-account"


推荐阅读