概述 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

概述

Terraform 提供者是允许 Terraform 与不同 API 进行交互的插件。Terraform P AWS rovider 是用于使用 Terraform 管理 AWS 基础设施即代码 (IaC) 的官方插件。它将 Terraform 语法转换为 AWS API 调用,用于创建、读取、更新和删除资源。 AWS

AWS 提供程序负责处理身份验证、将 Terraform 语法转换为 AWS API 调用以及在中配置资源。 AWS你可以使用 Terraform provider 代码块来配置 Terraform 用来与 API 交互的提供者插件。 AWS 您可以配置多个 P AWS rovider 区块来管理不同 AWS 账户 和地区的资源。

以下是 Terraform 配置示例,该配置使用多个带有别名的 AWS 提供程序块来管理在不同区域和账户中具有副本的亚马逊关系数据库服务 (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区块使用别primary名配置us-west-1区域中的主 AWS 提供商。

  • 第二个provider模块使用别replica名配置us-east-1区域中的辅助 AWS 提供商。此提供程序用于在不同的区域和账户中创建主数据库的只读副本。该assume_role区块用于在副本账户中扮演 IAM 角色。role_arn指定要代入的 IAM 角色的亚马逊资源名称 (ARN),并且session_name是 Terraform 会话的唯一标识符。

  • aws_db_instance.primary资源使用该us-west-1地区的primary提供商创建主 Amazon RDS 数据库。

  • aws_db_instance.read_replica资源使用replica提供程序在us-east-1区域中创建主数据库的只读副本。该replicate_source_db属性引用primary数据库的 ID。