使用 Terraform 入门
演示如何安装 Redis 云提供程序并创建订阅。
在这里,您将学习如何使用 Redis 云 Terraform 提供程序 创建订阅和数据库。
先决条件
-
如果您还没有,请 创建 Redis 云帐户。
-
获取您的 Redis 云 API 密钥。将它们设置为以下环境变量
- 将
REDISCLOUD_ACCESS_KEY
设置为您的API账户密钥。 - 将
REDISCLOUD_SECRET_KEY
设置为您的API用户密钥。
- 将
-
设置一个支付方式.
安装Redis Cloud提供程序
-
创建一个名为
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
。