gpt4 book ai didi

c# - 即使没有基础架构设置,如何禁用 Azure 功能?

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

我正在为我的函数使用 Azure 队列触发器。但该功能的基础设施(例如队列、Blob 存储)尚未到位。因此,Azure 存储连接字符串也将为空。但在运行 Function App 时,它需要连接字符串并在运行时引发异常。即使我使用 [Disable("MY_TIMER_DISABLED")] 属性禁用了该函数。

异常

System.ArgumentNullException: Value cannot be null. (Parameter 'connectionString')

我发现的原因是,在运行 Function App 时,Startup 正在调用所有 Functions,然后它正在读取与这些 Functions 关联的属性。因此,在初始调用时,即使该功能已禁用,它也需要队列、连接字符串等。

public class UserDataRetryFunction()
{
[FunctionName(UserDataRetryFunction)]
[Disable("AzureWebJobs.UserDataRetryFunction.Disabled")]
public async Task RetryData([QueueTrigger("%RetryQueueName%", Connection = "%ConnectionStrings:StorageConnectionString%")])
{
// Process the Queue Message
}
}

appsetings.json

{
"IsEncrypted": false,
"RetryQueueName" : "retry-response-queue",
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"AzureWebJobs.UserDataRetryFunction.Disabled": "true"
},
"ConnectionStrings": {
"StorageConnectionString" : "",
}
}

我尝试了很多文档和网站,但无法找到解决方案。

下面列出了我评估过的一些链接。

最佳答案

您设置的行为是预期的。在 Azure 中,禁用函数仅意味着禁用触发器,正如您已完成的操作以及 link 中详细说明的那样。你引用了。这会禁用触发器,但不会停止整个功能。

如果您想停止整个功能,可以在 Azure 门户中执行此操作。

您还可以按如下方式使用 AZ CLI:

az functionapp stop --name MyFunctionApp --resource-group MyResourceGroup

使用 PowerShell,您可以使用以下命令停止函数:

Stop-AzFunctionApp -Name MyAppName -ResourceGroupName MyResourceGroupName

关于c# - 即使没有基础架构设置,如何禁用 Azure 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67861662/

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