Terraform 中的 Azure SQL 备份设置

Mar*_*ous 4 terraform azure-sql-server terraform-provider-azure

尝试在 Terraform 文件中设置参数来备份 Azure SQL 服务器。

\n\n

在AWS中我可以添加一个密钥,例如:

\n\n
      allocated_storage = 1000\n      engine_version = \xe2\x80\x9c13.00.4451.0.v1\xe2\x80\x9d\n      backup_window = \xe2\x80\x9c18:00-18:30\xe2\x80\x9d\n      backup_retention_period = 14\n
Run Code Online (Sandbox Code Playgroud)\n\n

我找不到类似的密钥来备份 Azure SQL。以下是我在 Terraform Docs 和网络上找到的备份密钥:

\n\n
  resource "azurerm_sql_server" "some_erver" {\n    administrator_login          = "some_login"\n    administrator_login_password = "some_password"\n    location                     ="some_location"\n    name                         = "some_server"\n    resource_group_name          = "some_resource"\n    version                      = "some_version"\n\n  tags = {\n    environment  = "t"\n    stack-name   = "name"\n    stack-number = "number"\n    app-number   = "app-number"\n    logicmonitor = "bool"\n  }\n  backup {\n    frequency = "Daily"\n    time      = "04:00"\n  }\n\n  retention_daily {\n    count = 30\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是 Terraform Apply 管道失败并显示一条消息:

\n\n
     Error: azurerm_sql_server.enxtz256-db01: : invalid or unknown key: backup\n\n     Error: azurerm_sql_server.enxtz256-db01: : invalid or unknown key: retention_daily\n
Run Code Online (Sandbox Code Playgroud)\n\n

任何帮助将非常感激

\n

Neb*_*tic 5

我想指出的是,根据开发团队(来源)的说法azurerm_sql_database,不再更新。相反,所有新功能都添加到azurerm_mssql_database,它实际上部署了相同的数据库类型。根据 Terraform文档azurerm_mssql_database支持短期备份(时间点恢复)以及长期备份。这可以通过以下内联块来管理:

long_term_retention_policy支持以下内容:

week_retention -(可选)ISO 8601 格式的 LTR 备份的每周保留策略。有效值介于 1 到 520 周之间。例如 P1Y、P1M、P1W 或 P7D。

Monthly_retention -(可选)ISO 8601 格式的 LTR 备份的每月保留策略。有效值介于 1 到 120 个月之间。例如 P1Y、P1M、P4W 或 P30D。

yearly_retention -(可选)ISO 8601 格式的 LTR 备份的年度保留策略。有效值在 1 到 10 年之间。例如 P1Y、P12M、P52W 或 P365D。

week_of_year -(可选)以 ISO 8601 格式进行年度备份的一年中的第几周。值必须介于 1 到 52 之间。

short_term_retention_policy支持以下内容:

Retention_days -(必需)时间点恢复配置。值必须介于 7 到 35 之间。

如果您来自azurerm_sql_database并想迁移到azurerm_mssql_database您可以按照以下步骤操作。我自己做过这个,而且很简单。

  • 运行:terraform state rm“azurerm_sql_database.database”
  • 将资源更改为azurerm_mssql_database,包括相应的字段
  • 运行: terraform import azurerm_mssql_database.database "/very/long/database/id"
  • 运行:terraform apply

https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/mssql_database