gpt4 book ai didi

azure - 使用 Terraform 和函数扩展版本 4 创建函数应用程序

转载 作者:行者123 更新时间:2023-12-03 03:33:33 25 4
gpt4 key购买 nike

我有一些小问题需要解决。

我正在尝试使用 terraform 作为 IaC 创建函数应用程序,我唯一的问题是版本 4 中的函数扩展版本。

当我像这样插入变量时:

functions_extension_version = "~4"

我将此版本作为自定义版本(我正在尝试创建 Dotnet 版本 6,因此它必须是版本 4)

Function App Version

但是当我像这样使用版本 3 时:

functions_extension_version = "~3"

效果很好

Function Version

我知道我的应用服务计划是支持功能扩展版本 4,因为当我尝试手动创建时,它按预期工作。

谢谢

编辑:

完整的 TF 代码:

resource "azurerm_windows_function_app" "function_windows" {
# condition
count = var.to_create ? 1 : 0

# basic info configuration
name = var.name
resource_group_name = var.resource_group_name
location = var.location
storage_account_name = data.azurerm_storage_account.storage_account.name
storage_account_access_key = data.azurerm_storage_account.storage_account.primary_access_key
service_plan_id = var.app_service_plan_id

# function configuration
https_only = true
functions_extension_version = "~4"

site_config {
application_stack {
dotnet_version = var.runtime == "dotnet" ? var.runtime_version : null
java_version = var.runtime == "java" ? var.runtime_version : null
node_version = var.runtime == "node" ? var.runtime_version : null
}

scm_use_main_ip_restriction = true
elastic_instance_minimum = local.elastic_instance_minimum
}

identity {
type = "SystemAssigned"
}
tags = var.tags
}

最佳答案

Your app is pinned to an unsupported runtime version for ‘dotnet’. For better performance, we recommend using one of our supported versions instead: ~3.

您的 terraform 代码没有问题,但我发现问题在于在后端运行的版本

根据@Sandro Pereira的博客,

如果您遇到此类错误或类似警报,则表示您定义的运行时版本使用了不受支持的 .NET Framework 版本。在某些情况下,尽管您的function runtime version = ~4 适用于 .NET Framework v6.0,但实际上它在后端使用 v4.0 运行。

Runtime version ~3 normally runs on top of .NET Framework v4.0. However, runtime version ~4 requires .NET Framework v6.0.

引用terraform registry ,我使用 terraform 创建了函数应用程序的副本并成功部署。

代码片段:

resource "azurerm_function_app" "newfunc" {
name = "test-azure-functions"
location = azurerm_resource_group.newfunc.location
resource_group_name = azurerm_resource_group.newfunc.name
app_service_plan_id = azurerm_app_service_plan.newfunc.id
storage_account_name = "mystorage"
}

enter image description here

在 Azure 门户中成功部署后:

enter image description here

您可以通过检查以下内容来验证您的函数应用正在运行哪个版本的 .NET:

Resource Explorer (azure.com)

验证netFrameworkVersion:

enter image description here

注意:请参阅上述博客了解验证路径

关于azure - 使用 Terraform 和函数扩展版本 4 创建函数应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74137527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com