【发布时间】: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 部署为一个单元(并且可以包括代理)。说到底,就是一堆文件。
-
完全同意,但我不知道使用terraform是否可行。
-
我看到你正在使用
WEBSITE_USE_ZIP,这很棒。您只需要确保您的 zip 包含您关心的所有功能(和代理)。如果您的包包含整个 Function App 内容,则无需部署多个包。 -
不幸的是,这个包是只读的。但是这里的主要痛苦,我没有找到任何方法来指定本地文件的路径,并且每次我需要将我的内容上传到公共 git 存储库...
-
当您说软件包是只读的时,您能澄清一下您遇到的问题吗?对于 zip,您不应将其存储在 git repo 中,这非常不适合二进制文件。相反,只需将其上传到存储 blob。
标签: azure azure-functions terraform terraform-provider-azure