Провайдер Terraform для создания таблиц кассандры

Я хочу создать таблицы базы данных cassandra через terraform в Azure. У меня уже есть относительные пространства клавиш.

В моем развертывании используется azurerm, однако их провайдер не хватает ресурсов cassandra-tables. На данный момент я могу развертывать таблицы cassandra только через пользовательский интерфейс Azure на портале или с помощью Сценарии Azure CLI, однако это не лучшее решение по ряду причин.

Есть ли провайдер, который мог бы мне в этом помочь? Я оглядываюсь по сторонам, но мне кажется, что я мало что могу использовать.

@MattSchuchard Это немного спорно; мои два цента заключаются в том, что если они поддерживают пространства ключей cassandra, а не таблицы cassandra, это немного похоже на отсутствующую функцию.   —  person Liquid — Reinstate Monica    schedule 27.01.2021

@MattSchuchard, поставщик ресурсов Cosmos DB, поддерживает создание таблиц cassandra. Реализацию GO для CreateUpdate можно найти здесь. github.com/Azure/azure-sdk-for-go/blob/master/services/preview/   —  person Liquid — Reinstate Monica    schedule 27.01.2021

См. также:  Как работает зона доступности Aws ecs fargate?
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 2
  1. Liquid - Reinstate Monica

    По какой-то причине похоже, что hashicorp никогда не реализовывал таблицу cassandra в своем провайдере. Их исходный код является отсутствует реализация для него.

    Предлагаю зарегистрировать новую ошибку в их репо. Вы можете сделать это здесь

    github.com/terraform-providers/terraform-provider-azurerm/pull/ Должен быть объединен на этой неделе. person Liquid — Reinstate Monica; 02.02.2021

  2. Liquid - Reinstate Monica

    По-видимому, обходным путем может быть развертывание ресурса в Azure как ARM с помощью ARM-провайдер в инкрементальном режиме.

     resource "azurerm_resource_group_template_deployment" "example" {
       depends_on = [module.cassandratest]
    
       name                = "example-cassandra-tables"
       resource_group_name = azurerm_resource_group.test.name
       deployment_mode     = "Incremental"
       template_content    = templatefile("resources/templatecosmos.json", {
         cosmos_db_account_name    = "test-cassandra-2",
         keyspace_name             = "keyspace1",
         table_name                = "test-table-2",
         autoscale_max_throughput  = 4000
       })
     }
    

    Шаблоны CosmosDB Cassandra документированы здесь </ а>. Пример содержимого resources / templatecosmos.json:

    {
     "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
     "contentVersion": "1.0.0.0",
     "parameters": {
        "accountName": {
           "type": "string",
           "defaultValue": "${cosmos_db_account_name}",
           "metadata": {
              "description": "Cosmos DB account name, max length 44 characters"
           }
        },
        "keyspaceName": {
           "type": "string",
           "defaultValue": "${keyspace_name}",
           "metadata": {
              "description": "The name for the Cassandra Keyspace"
           }
        },
        "tableName": {
           "type": "string",
           "defaultValue": "${table_name}",
           "metadata": {
              "description": "The name for the Cassandra table"
           }
        },
        "autoscaleMaxThroughput": {
           "type": "int",
           "defaultValue": "[int(${autoscale_max_throughput})]",
           "minValue": 4000,
           "maxValue": 1000000,
           "metadata": {
              "description": "Maximum autoscale throughput for the Cassandra table"
           }
        }
     },
     "variables": {
        "accountName": "[toLower(parameters('accountName'))]",
        "databaseRef": "[resourceId('Microsoft.DocumentDB/databaseAccounts', parameters('accountName'))]",
        "keyspaceRef": "[resourceId('Microsoft.DocumentDB/databaseAccounts/cassandraKeyspaces', parameters('accountName'), parameters('keyspaceName'))]"
     },
      "resources": [
        {
           "type": "Microsoft.DocumentDb/databaseAccounts/cassandraKeyspaces/tables",
            "name": "[concat(variables('accountName'), '/', parameters('keyspaceName'), '/', parameters('tableName'))]",
            "apiVersion": "2020-04-01",
            "properties": {
               "resource": {
                  "id": "[concat(parameters('tableName'))]",
                  "schema": {
                     "columns": [
                        {
                           "name": "loadid",
                           "type": "uuid"
                        }
                     ],
                     "partitionKeys": [
                        { "name": "machine" },
                        { "name": "cpu" },
                        { "name": "mtime" }
                     ],
                     "clusterKeys": [
                        {
                           "name": "loadid",
                           "orderBy": "asc"
                        }
                     ]
                  }
               },
               "options": {
                  "autoscaleSettings": { 
                     "maxThroughput": "[parameters('autoscaleMaxThroughput')]" 
                  }
               }
            }
         }
     ]
    } 
    

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: