【问题标题】:Deploy azure function using terraform使用 terraform 部署 azure 函数
【发布时间】:2022-03-30 01:23:53
【问题描述】:

我有一个如何使用 terraform 部署 azure 功能的示例。但是,不幸的是,它只部署了 zip 包。还有其他方法吗?如何将多个包部署到一个函数中?如何使用 terraform 配置代理?

resource "azurerm_function_app" "azure_function_scenario1_hop2" {
      name                      = "scenario1-hop2-azure-function"
      location                  = "${var.location}"
      resource_group_name       = "${var.resource_group_name}"
      app_service_plan_id       = "${var.app_service_plan_id}"
      storage_connection_string = "${var.storage_connection_string}"

      app_settings {
        APPINSIGHTS_INSTRUMENTATIONKEY = "${var.instrumentation_key}"
        HASH                           = "${base64sha256(file("./../bin/scenario1_hop2_node.zip"))}"
        WEBSITE_USE_ZIP                = "https://github.com/lmolotii/azure-functions-playgroud/raw/master/scenario1_hop2_node.zip"
      }
    }

【问题讨论】:

  • 不熟悉 Terraform,但通常,您永远不应该尝试部署单个功能。相反,您应该将 function app 部署为一个单元(并且可以包括代理)。说到底,就是一堆文件。
  • 完全同意,但我不知道使用te​​rraform是否可行。
  • 我看到你正在使用WEBSITE_USE_ZIP,这很棒。您只需要确保您的 zip 包含您关心的所有功能(和代理)。如果您的包包含整个 Function App 内容,则无需部署多个包。
  • 不幸的是,这个包是只读的。但是这里的主要痛苦,我没有找到任何方法来指定本地文件的路径,并且每次我需要将我的内容上传到公共 git 存储库...
  • 当您说软件包是只读的时,您能澄清一下您遇到的问题吗?对于 zip,您不应将其存储在 git repo 中,这非常不适合二进制文件。相反,只需将其上传到存储 blob。

标签: azure azure-functions terraform terraform-provider-azure


【解决方案1】:

azurerm 提供程序的 3.0 版开始,您可以使用 Terraform 部署函数。您只需要此处记录的azurerm_function_app_function 资源:https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/function_app_function

【讨论】:

    猜你喜欢
    • 2019-04-12
    • 2020-04-21
    • 2020-10-16
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-21
    • 1970-01-01
    相关资源
    最近更新 更多