开始使用 Terraform
展示如何安装Redis Cloud提供商并创建订阅。
在这里,您将学习如何使用Redis Cloud Terraform Provider来创建订阅和数据库。
先决条件
-
Create a Redis Cloud account 如果您还没有账户,请创建一个。
-
获取您的Redis Cloud API密钥。将它们设置为以下环境变量:
- 将
REDISCLOUD_ACCESS_KEY
设置为您的API账户密钥。 - 将
REDISCLOUD_SECRET_KEY
设置为您的 API 用户密钥。
- 将
-
设置一个支付方式。
安装Redis云提供商
-
创建一个文件来包含名为
main.tf
的Terraform配置。 -
选择使用提供商并复制位于那里的Terraform代码。将代码粘贴到
main.tf
中并保存文件。provider "rediscloud" { } # Example resource configuration resource "rediscloud_subscription" "example" { # ... }
-
运行
terraform init
。
使用Terraform创建Redis Cloud订阅
在您的Terraform配置文件中,您可以添加资源和数据源来规划和创建订阅和数据库。有关可以作为Redis Cloud提供商一部分使用的资源和数据源的更多信息,请参阅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
。