Как настроить жизненный цикл хранилища Azure с помощью terraform? - PullRequest
1 голос
/ 25 сентября 2019

Поэтому я использую terraform для провайдера Azure для развертывания моей инфраструктуры.Я просто не могу определить жизненный цикл хранилища.Я хотел бы добавить что-то вроде этого, что я нашел, но не доступен как есть.

Итак, я попробовал это https://github.com/terraform-providers/terraform-provider-azurerm/issues/3316,, и я просмотрел все.Я уверен, что есть способ сказать Azure, чтобы включить жизненный цикл tiertoarchive и tiertodelete… Просто не могу понять это.

Спасибо

Что я ищу:

* ресурс azurerm_storage_management_policy является готовым ресурсом.

resource "azurerm_storage_account" "example" {
  name                     = "myaccount"
  resource_group_name      = "myresourcegroup"
  location                 = "westeurope"
  account_tier             = "Standard"
  account_replication_type = "LRS"
}

resource "azurerm_storage_management_policy" "example" {
  storage_account_name ="${azurerm_storage_account.example.name}"

  rule {
    name = "rule1"
    enabled = true
    type = "Lifecycle"
    definition {
      filters {
        prefix_match = ["container1/wibble"]
        blob_types = ["blockBlob"]
      }
      actions = {
        base_blob {
          tier_to_cool {
            days_after_modification_greater_than = 30
          }
          tier_to_archive { 
            days_after_modification_greater_than = 90
          }
          delete {
              days_after_modification_greater_than = 2555
          }
        snapshot {
          delete {
            days_after_creation_greater_than = 90
          }
        }
      }
    }
  }
}

https://github.com/terraform-providers/terraform-provider-azurerm/issues/3316

1 Ответ

1 голос
/ 27 сентября 2019

Я вижу в вашем комментарии, вы просите PowerShell сделать это.Тогда да, это возможно через powershell в соответствии с этим документ .

Пример кода из документа (вы можете изменить его в соответствии со своими потребностями) работает для меня, и обратите внимание, что вы должны установитьazure powershell модуль az перед запуском сценария:

#Initialize the following with your resource group and storage account names
$rgname = ""
$accountName = ""

#Create a new action object
$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction Delete -daysAfterModificationGreaterThan 2555
$action = Add-AzStorageAccountManagementPolicyAction -InputObject $action -BaseBlobAction TierToArchive -daysAfterModificationGreaterThan 90
$action = Add-AzStorageAccountManagementPolicyAction -InputObject $action -BaseBlobAction TierToCool -daysAfterModificationGreaterThan 30
$action = Add-AzStorageAccountManagementPolicyAction -InputObject $action -SnapshotAction Delete -daysAfterCreationGreaterThan 90

# Create a new filter object
# PowerShell automatically sets BlobType as “blockblob” because it is the only available option currently
$filter = New-AzStorageAccountManagementPolicyFilter -PrefixMatch ab,cd

#Create a new rule object
#PowerShell automatically sets Type as “Lifecycle” because it is the only available option currently
$rule1 = New-AzStorageAccountManagementPolicyRule -Name Test -Action $action -Filter $filter

#Set the policy
$policy = Set-AzStorageAccountManagementPolicy -ResourceGroupName $rgname -StorageAccountName $accountName -Rule $rule1

Пожалуйста, дайте мне знать, если у вас возникнут проблемы при написании / выполнении кода выше.

...