Terraform 入门
介绍如何安装 Redis Cloud provider 并创建订阅。
在这里,您将学习如何使用 Redis Cloud Terraform Provider 来创建订阅和数据库。
先决条件
-
如果您还没有 Redis Cloud 账户,请创建一个。
-
获取您的 Redis Cloud API 密钥。将其设置为以下环境变量:
- 将
REDISCLOUD_ACCESS_KEY
设置为您的 API 账户密钥。 - 将
REDISCLOUD_SECRET_KEY
设置为您的 API 用户密钥。
- 将
-
设置支付方式。
安装 Redis Cloud provider
-
创建一个文件来存放 Terraform 配置,文件名为
main.tf
。 -
选择 Use Provider 并复制那里的 Terraform 代码。将代码粘贴到
main.tf
中并保存文件。provider "rediscloud" { } # Example resource configuration resource "rediscloud_subscription" "example" { # ... }
-
运行
terraform init
。
使用 Terraform 创建 Redis Cloud 订阅
在您的 Terraform 配置文件中,您可以添加资源和数据源来规划和创建订阅和数据库。有关作为 Redis Cloud provider 一部分可以使用的资源和数据源的更多信息,请参阅Redis Cloud Terraform Registry 文档。
本节中的步骤将向您展示如何规划和创建一个包含一个数据库的 Redis Cloud Pro 订阅。
-
使用
rediscloud_payment_method
数据源获取支付方式 ID。# Get credit card details data "rediscloud_payment_method" "card" { card_type = "<Card type>" last_four_numbers = "<Last four numbers on the card>" }
示例
data "rediscloud_payment_method" "card" { card_type = "Visa" last_four_numbers = "5625" }
-
定义一个
rediscloud_subscription
资源来创建订阅。# Create a subscription resource "rediscloud_subscription" "subscription-resource" { name = "subscription-name" payment_method_id = data.rediscloud_payment_method.card.id # If you want to pay with a marketplace account, replace this line with payment_method = 'marketplace'. memory_storage = "ram" # Specify the cloud provider information here cloud_provider { provider = "<Cloud provider>" region { region = "<region>" networking_deployment_cidr = "<CIDR>" } } #Define the average database specification for databases in the subscription creation_plan { memory_limit_in_gb = 2 quantity = 1 replication = true throughput_measurement_by = "operations-per-second" throughput_measurement_value = 20000 } }
示例
resource "rediscloud_subscription" "subscription-resource" { name = "redis-docs-sub" payment_method_id = data.rediscloud_payment_method.card.id # If you want to pay with a marketplace account, replace this line with payment_method = 'marketplace'. memory_storage = "ram" cloud_provider { provider = "GCP" region { region = "us-west1" networking_deployment_cidr = "192.168.0.0/24" } } creation_plan { memory_limit_in_gb = 2 quantity = 1 replication = true throughput_measurement_by = "operations-per-second" throughput_measurement_value = 20000 modules = ["RedisJSON"] } }
-
定义一个
rediscloud_subscription_database
资源来创建数据库。# Create a Database resource "rediscloud_subscription_database" "database-resource" { subscription_id = rediscloud_subscription.subscription-resource.id name = "database-name" memory_limit_in_gb = 2 data_persistence = "aof-every-write" throughput_measurement_by = "operations-per-second" throughput_measurement_value = 20000 replication = true alert { name = "dataset-size" value = 40 } depends_on = [rediscloud_subscription.subscription-resource] }
示例
resource "rediscloud_subscription_database" "database-resource" { subscription_id = rediscloud_subscription.subscription-resource.id name = "redis-docs-db" memory_limit_in_gb = 2 data_persistence = "aof-every-write" throughput_measurement_by = "operations-per-second" throughput_measurement_value = 20000 replication = true modules = [ { name = "RedisJSON" } ] alert { name = "dataset-size" value = 40 } depends_on = [rediscloud_subscription.subscription-resource] }
-
运行
terraform plan
以检查是否存在任何语法错误。$ terraform plan data.rediscloud_payment_method.card: Reading... data.rediscloud_payment_method.card: Read complete after 1s [id=8859] Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # rediscloud_subscription.subscription-resource will be created + resource "rediscloud_subscription" "subscription-resource" { [...] } # rediscloud_subscription_database.database-resource will be created + resource "rediscloud_subscription_database" "database-resource" { [...] } Plan: 2 to add, 0 to change, 0 to destroy.
-
运行
terraform apply
应用更改,并在提示时输入yes
进行确认。这将需要一些时间。在创建订阅和数据库时,您将在终端中看到消息。
rediscloud_subscription.subscription-resource: Creating... rediscloud_subscription.subscription-resource: Still creating... [10s elapsed] rediscloud_subscription.subscription-resource: Still creating... [20s elapsed] rediscloud_subscription.subscription-resource: Still creating... [30s elapsed]
配置完成后,您将在终端中看到一条消息。
Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
查看Redis Cloud 控制台,验证您的订阅和数据库是否已创建。
-
如果您想移除这些示例资源,请运行
terraform destroy
。