установить правила cors для лазурного хранения через terraform - PullRequest
0 голосов
/ 12 марта 2019

Я искал онлайн, и я не могу найти способ настройки правил cors с помощью terraform.

Я не верю, что он поддерживается в terraform.

Можно установить правила CORS через az cli:

azure storage cors set --blob static 
--cors "[{\"AllowedOrigins\":\"*\",\"AllowedMethods\":\"GET\",\"MaxAgeInSeconds\":\"86400\",\"AllowedHeaders\":\"*\",\"ExposedHeaders\":\"*\"}]"
-a "account-name" -k "account-key" --verbose

Могу ли я раскошелиться от terraform, чтобы назвать это, или есть способ связать их вместе?

Ответы [ 3 ]

0 голосов
/ 12 марта 2019

Не думаю, что вы можете сделать это с помощью Terraform ( proof ).Вы можете использовать шаблоны ARM, как упомянуто, или просто ресурс сценария в Terraform через провайдера, чтобы сделать это для вас (Azure CLI, как вы упомянули).

пример шаблона ARM:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2015-06-15",
      "name": "[concat('storage', uniqueString(resourceGroup().id))]",
      "location": "[resourceGroup().location]",
      "properties": {
        "accountType": "Standard_LRS",
        "cors": {
          "allowedHeaders": [ "*" ],
          "allowedMethods": [ "get", "post", "put" ],
          "allowedOrigins": [ "*" ],
          "exposedHeaders": [ "*" ],
          "maximumAge": 5
        },
        "val": "123"
      }
    }
  ]
}
0 голосов
/ 13 марта 2019

В случае, если кто-то еще сталкивался с этим и хотел бы избежать ужаса шаблона лазурной руки, тогда это было мое исправление, так как на данный момент в terraform ничего нет:

resource "null_resource" "storage" {
  provisioner "local-exec" {
    command = "az storage cors clear --account-name ${azurerm_storage_account.main.name} --services b"
  }

  provisioner "local-exec" {
    command = "az storage cors add --account-name ${azurerm_storage_account.main.name} --origins '*' --methods GET POST PUT --allowed-headers 'Accept-Ranges,Content-Encoding,Content-Length,Content-Type,Range,Authorization,x-ms-blob-content-type,x-ms-blob-type,x-ms-version' --exposed-headers 'Accept-Ranges,Content-Range,Content-Encoding,Content-Length,Content-Type' --max-age 86400 --services b"
  }
}

Мне нужно позвонить az storage cors clear, иначе при каждом запуске создаются новые правила.

0 голосов
/ 12 марта 2019

Вы можете использовать шаблон ресурса и применить этот шаблон с Terraform.

Сконфигурировать CORS с помощью шаблона Azure Resource Manager

https://www.terraform.io/docs/providers/azurerm/r/template_deployment.html

...