如何使用Terraform部署现有的Azure功能

时间:2019-06-05 07:48:58

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

我有一个使用Visual Studio在本地创建的天蓝色功能。我正在尝试使用terraform部署azure函数,但是它引发了错误

我正在尝试的代码如下所示:

resource "azurerm_function_app" "testDeployTF" {
  name                      = "testDeployADddecendant"
  location                  = "${azurerm_resource_group.rg-testDeployTF.location}"
  resource_group_name       = "${azurerm_resource_group.rg-testDeployTF.name}"
  app_service_plan_id       = "${azurerm_app_service_plan.sp-testDeployTF.id}"
  storage_connection_string = "DefaultEndpointsProtocol=https;AccountName=xxxx;AccountKey=xxxxxxxxxxx;EndpointSuffix=core.windows.net"

  app_settings {
    HASH            = "${base64sha256(file("FunctionApp1.zip"))}"
    WEBSITE_USE_ZIP = "https://${decendant.sa-testDeployTF.name}.blob.core.windows.net/${azurerm_storage_container.sc-testDeployTF.name}/${azurerm_storage_blob.sb-testDeployTF.name}${data.azurerm_storage_account_sas.sas-testDeployTF.sas}"

  }
}

如果我删除了app_setting,那么代码会创建一个新的空函数,但是我想要的是我需要一个新函数,并将其放在我的本地代码中。

当我使用app_seettings时,以上代码引发以下错误:

错误:不支持的块类型

在Terraformscript.tf第78行的资源“ azurerm_function_app”“ testDeployTF”中:   78:app_settings {

这里不希望出现“ app_settings”类型的块。

2 个答案:

答案 0 :(得分:1)

对于您的问题,您仅可以使用Terraform创建一个空的Azure函数,而不使用您的代码。另外,当您在本地使用Visual Studio时,它会为您创建一个空函数,然后使用azure-function-core-tool为您复制代码。

您可以查看有关azure-function-core-tool的详细信息。并且当您使用Azure CLI时,它还需要使用该工具,请参阅Create your first function from the command line中的步骤。

答案 1 :(得分:0)

我在谷歌搜索 terraform 错误时偶然发现了这个问题。您可以在 app_settings 后简单地添加一个等号。

app_settings = {
  Key = "Value"
}