作为 IaC 的一部分,A 功能应用 ,让我们将其命名为 FuncAppX 是使用 Terraform 部署的,它有一个内置函数。
我需要使用 Terraform 在函数应用程序中访问相同函数的 Url。我在这里分享相同的屏幕截图以供引用,其中很容易获得“GetFunction Url”,但使用 terraform,我没有办法返回相同的内容,需要将其作为输入传递给另一个函数应用程序。
Function App
Function within FunctionApp
最佳答案
您需要自己构建特定功能端点的 URL。由于具体的函数名称是通过 function.json
定义的,您需要将其复制到您的 Terraform 脚本中。
locals {
function_foo = "foo"
}
该 URL 包含一个 secret 作为查询参数,您可以通过数据源获取它 azurerm_function_app_host_keys
.data "azurerm_function_app_host_keys" "example" {
name = azurerm_function_app.example.name
resource_group_name = azurerm_function_app.example.resource_group_name
depends_on = [azurerm_function_app.example]
}
现在您可以自己构建 URL。output "url" {
value = "https://${azurerm_function_app.example.default_hostname}/api/${local.function_foo}?code=${data.azurerm_function_app_host_keys.example.default_function_key}"
}
请注意,azurerm_function_app_host_keys
值可能不会立即可用,因为具体功能应用程序的部署与 azurerm_function_app
分离。服务创建。根据您的情况,您可能需要添加一些手动同步(例如使用 null_resource
)。
关于azure-functions - 如何获取使用 Terraform 部署的 Function-App 中的 "Function Url"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69255107/