概觀 - AWS 方案指引

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

概觀

地形提供程序是允許地形與不同的 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。