使用 Terraform 入门

演示如何安装 Redis 云提供程序并创建订阅。

在这里,您将学习如何使用 Redis 云 Terraform 提供程序 创建订阅和数据库。

先决条件

  1. 安装 Terraform.

  2. 如果您还没有,请 创建 Redis 云帐户

  3. 启用 Redis 云 API.

  4. 获取您的 Redis 云 API 密钥。将它们设置为以下环境变量

    • REDISCLOUD_ACCESS_KEY设置为您的API账户密钥。
    • REDISCLOUD_SECRET_KEY设置为您的API用户密钥。
  5. 设置一个支付方式.

安装Redis Cloud提供程序

  1. 创建一个名为main.tf的文件来包含Terraform配置。

  2. 访问Redis Cloud Terraform Registry

  3. 选择使用提供程序并复制位于那里的Terraform代码。将代码粘贴到main.tf中并保存文件。

    provider "rediscloud" {
    }
    
    # Example resource configuration
    resource "rediscloud_subscription" "example" {
       # ...
    }
    
  4. 运行terraform init

使用Terraform创建Redis Cloud订阅

在您的Terraform配置文件中,您可以添加资源和数据源来计划和创建订阅和数据库。有关您可以用作Redis Cloud提供程序一部分的资源和数据源的更多信息,请参阅Redis Cloud Terraform Registry文档

本节中的步骤向您展示如何计划和创建一个具有一个数据库的Redis Cloud Pro订阅。

  1. 使用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"
    }
    
  2. 定义一个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"]
         }
    }
    
  3. 定义一个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]
    
    }
    
  4. 运行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.
    
  5. 运行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控制台以验证您的订阅和数据库创建。

  6. 如果要删除这些示例资源,请运行terraform destroy

更多信息

RATE THIS PAGE
Back to top ↑