Difference between revisions of "Terraform multiple providers"

From wikieduonline
Jump to navigation Jump to search
(Redirected page to Multiple providers)
Tag: New redirect
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
#redirect [[Multiple providers]]
+
You can optionally define multiple configurations for the same [[provider]], and select which one to use on a per-resource or per-module basis. <ref>https://www.terraform.io/language/providers/configuration</ref>
 +
 
 +
== Example ==
 +
 
 +
 
 +
# 1st provider configuration; resources that begin with `aws_` will use it as the default, and it can be referenced as `aws`.
 +
provider "aws" {
 +
  region = "us-east-1"
 +
}
 +
 +
# 2nd provider configuration for other region ; resources can reference this as `aws.mywestregion`.
 +
provider "aws" {
 +
  alias  = "mywestregion"
 +
  region = "us-west-2"
 +
}
 +
 +
terraform {
 +
  required_providers {
 +
    mycloud = {
 +
      source  = "mycorp/mycloud"
 +
      version = "~> 1.0"
 +
      configuration_aliases = [ mycloud.alternate ]
 +
    }
 +
  }
 +
}
 +
 +
resource "aws_instance" "foo" {
 +
  provider = aws.west
 +
 +
  # ...
 +
}
 +
 
 +
== Errors ==
 +
* [[Error: Duplicate provider configuration]]
 +
 
 +
== Related ==
 +
 
 +
* [[Terraform providers: provider|Terraform providers]]
 +
* <code>[[alias]]</code>
 +
* [[Terraform Associate]]
 +
* [[AWS Roles]]: <code>[[OrganizationAccountAccessRole]]</code>
 +
 
 +
== See also ==
 +
* {{terraform providers}}
 +
* {{Certifications}}
 +
 
 +
[[Category:Terraform]]

Latest revision as of 20:13, 5 April 2023

You can optionally define multiple configurations for the same provider, and select which one to use on a per-resource or per-module basis. [1]

Example[edit]

# 1st provider configuration; resources that begin with `aws_` will use it as the default, and it can be referenced as `aws`.
provider "aws" {
  region = "us-east-1"
}

# 2nd provider configuration for other region ; resources can reference this as `aws.mywestregion`.
provider "aws" {
  alias  = "mywestregion"
  region = "us-west-2"
}

terraform {
  required_providers {
    mycloud = {
      source  = "mycorp/mycloud"
      version = "~> 1.0"
      configuration_aliases = [ mycloud.alternate ]
    }
  }
}

resource "aws_instance" "foo" {
  provider = aws.west

  # ...
}

Errors[edit]

Related[edit]

See also[edit]

  • https://www.terraform.io/language/providers/configuration
  • Advertising: