Difference between revisions of "Terraform multiple providers"

From wikieduonline
Jump to navigation Jump to search
Line 3: Line 3:
 
== Example ==
 
== Example ==
  
<pre>
 
# The default 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"
 
}
 
  
# Additional provider configuration for west coast region; resources can
+
# The default provider configuration; resources that begin with `aws_` will use
# reference this as `aws.west`.
+
# it as the default, and it can be referenced as `aws`.
provider "aws" {
+
provider "aws" {
  alias  = "west"
+
  region = "us-east-1"
  region = "us-west-2"
+
}
}
+
</pre>
+
# Additional provider configuration for west coast region; resources can
 
+
# reference this as `aws.west`.
<pre>
+
provider "aws" {
terraform {
+
  alias  = "west"
  required_providers {
+
  region = "us-west-2"
    mycloud = {
+
}
      source  = "mycorp/mycloud"
+
      version = "~> 1.0"
+
terraform {
      configuration_aliases = [ mycloud.alternate ]
+
  required_providers {
    }
+
    mycloud = {
  }
+
      source  = "mycorp/mycloud"
}
+
      version = "~> 1.0"
</pre>
+
      configuration_aliases = [ mycloud.alternate ]
 +
    }
 +
  }
 +
}
  
 
<pre>
 
<pre>

Revision as of 05:32, 15 September 2022

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

# The default 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"
}

# Additional provider configuration for west coast region; resources can
# reference this as `aws.west`.
provider "aws" {
  alias  = "west"
  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
 
   # ...
 }

Related

See also

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