

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 概觀
<a name="overview"></a>

地形提供程序是允許地形與不同的 API 進行交互的插件。Terraform AWS 提供者是用於管理 AWS 基礎設施作為代碼（IaC）與 Terraform 的官方插件。它將 Terraform 語法轉換為 AWS API 調用以創建，讀取，更新和刪除資源。 AWS 

 AWS 提供者處理驗證、將 Terraform 語法轉換為 AWS API 呼叫，以及在中佈建資源。 AWS您可以使用 Terraform 程式`provider`碼區塊來設定 Terraform 用來與 API 互動的提供者外掛程式。 AWS 您可以設定多個 AWS Provider 區塊，以管理跨不同區域 AWS 帳戶 和區域的資源。

以下是一個範例 Terraform 組態，它使用多個 AWS 提供者區塊和別名來管理在不同區域和帳戶中具有複本的 Amazon 關聯式資料庫服務 (Amazon RDS) 資料庫。主要和次要提供者採用不同的 AWS Identity and Access Management (IAM) 角色：

```
# Configure the primary AWS Provider
provider "aws" {
  region = "us-west-1"
  alias  = "primary"
}

# Configure a secondary AWS Provider for the replica Region and account
provider "aws" {
  region      = "us-east-1"
  alias       = "replica"
  assume_role {
    role_arn     = "arn:aws:iam::<replica-account-id>:role/<role-name>"
    session_name = "terraform-session"
  }
}

# Primary Amazon RDS database
resource "aws_db_instance" "primary" {
  provider = aws.primary

  # ... RDS instance configuration
}

# Read replica in a different Region and account
resource "aws_db_instance" "read_replica" {
  provider = aws.replica

  # ... RDS read replica configuration
  replicate_source_db = aws_db_instance.primary.id
}
```

在此範例中：
+ 第一個區`provider`塊會使用別名設定`us-west-1`區域中的主要 AWS 提供者。`primary`
+ 第二個區`provider`塊會使用別名設定`us-east-1`區域中的次要 AWS 提供者。`replica`此提供者用於在不同的區域和帳戶中建立主要資料庫的僅供讀取複本。該`assume_role`區塊用於在複本帳戶中扮演 IAM 角色。`role_arn`指定要承擔的 IAM 角色的 Amazon 資源名稱 (ARN)，並且`session_name`是 Terraform 工作階段的唯一識別碼。
+ 資`aws_db_instance.primary`源會使用`us-west-1`區域中的`primary`提供者建立主要的 Amazon RDS 資料庫。
+ 資`aws_db_instance.read_replica`源會使用提供者在`us-east-1`區域中建立主要資料庫的僅`replica`供讀取複本。`replicate_source_db`屬性會參照`primary`資料庫的 ID。