【问题标题】:Azure Static Web App - Application Settings using TerraformAzure 静态 Web 应用程序 - 使用 Terraform 的应用程序设置
【发布时间】:2021-11-24 19:57:42
【问题描述】:

使用 Terraform,我创建了一个 Azure 静态 Web 应用程序,如下所示。但是documentation 没有演示如何为资源设置应用程序设置。对于普通的 Azure 函数应用程序,我们可以看到 app_settings 参数。但是如何为使用 Terraform 创建的 azure static web 应用设置应用设置?

resource "azurerm_static_site" "example" {
  name                = "example"
  resource_group_name = "example"
  location            = "West Europe"
}

我喜欢设置参数 AAD_CLIENT_IDAAD_CLIENT_SECRET 来为 Azure 静态 Web 应用程序配置身份提供程序,就像在 microsoft documention 中一样。

【问题讨论】:

    标签: terraform terraform-provider-azure


    【解决方案1】:

    截至目前(2021 年 11 月 24 日),Azure 静态 Web 应用程序上的应用程序设置是开放的feature request。随着该功能添加到 Terraform,我将更新此答案。

    【讨论】:

    • 值得一提的是,现在在此功能请求下提供了一种解决方法。
    【解决方案2】:

    我相信查看您所查看的 Terraform 文档(链接:https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/static_site),静态 Web 应用程序非常基本,并且不接受应用程序设置参数。

    另外根据 Azure 博客:https://devblogs.microsoft.com/devops/comparing-azure-static-web-apps-vs-azure-webapps-vs-azure-blob-storage-static-sites/ 如果您有一个 Web 应用程序,您想做的不仅仅是托管一个静态站点,那么您需要使用一个功能齐全的 Web 应用程序。也许 Hashi Corp 认为这意味着它本质上是一个用于托管前端页面的基本 Web 应用程序?不确定...

    按照这个理论,要在 Terraform 中进行应用设置,你需要从外观上制作一个 Azure Web 应用:

    如果您需要有关如何使用应用程序设置编写 Web 应用程序的任何指导,这是我的一个示例。您可能知道,但请参考这里。

    resource "azurerm_app_service_plan" "websiteappserviceplan" {
      name                = "appserviceplan_mysite"
      location            = azurerm_resource_group.rg.location
      resource_group_name = azurerm_resource_group.rg.name
    
      sku {
        tier = "Basic"
        size = "B1"
      }
    }
    
    resource "azurerm_app_service" "web_app" { 
      name                = var.webapp_name
      location            = azurerm_resource_group.rg.location
      resource_group_name = azurerm_resource_group.rg.name
      app_service_plan_id = azurerm_app_service_plan.websiteappserviceplan.id
    
    
      app_settings = {
        "KEY_VAULT_URL"             = azurerm_key_vault.myvault.vault_uri
        "SUPPORTS_SAFEGUARDING"     = "1"
        "SUPPORTS_TECHNICIAN"       = "1"
      }
    
      client_affinity_enabled = true
    
      site_config {
        always_on                 = true
        min_tls_version           = "1.2"
        dotnet_framework_version  = "v5.0"
        app_command_line          = "dotnet EventManagement.Web.dll"
        ftps_state                = "Disabled"
        use_32_bit_worker_process = true
        http2_enabled             = true
        websockets_enabled        = true
      }
    
      logs {
        detailed_error_messages_enabled = true
        failed_request_tracing_enabled  = true
        application_logs {
          azure_blob_storage {
            level             = "Information"
            sas_url           = format("https://${azurerm_storage_account.website_log_storage.name}.blob.core.windows.net/${azurerm_storage_container.website_logs_container.name}%s", data.azurerm_storage_account_blob_container_sas.website_logs_container_sas.sas)
            retention_in_days = 365
          }
        }
    
        http_logs {
          azure_blob_storage {
            sas_url           = format("https://${azurerm_storage_account.website_log_storage.name}.blob.core.windows.net/${azurerm_storage_container.website_logs_container.name}%s", data.azurerm_storage_account_blob_container_sas.website_logs_container_sas.sas)
            retention_in_days = 365
          }
        }
    
      }
    
      connection_string {
        name  = "StorageAccount"
        type  = "Custom"
        value = azurerm_storage_account.website_log_storage.primary_connection_string
      }
    
      identity {
        type = "SystemAssigned"
      }
    }

    【讨论】:

      猜你喜欢
      • 2011-05-21
      • 2022-01-24
      • 2022-08-23
      • 2012-11-30
      • 2020-06-23
      • 1970-01-01
      • 1970-01-01
      • 2019-08-10
      • 1970-01-01
      相关资源
      最近更新 更多