Azure 函数应用程序设置在部署后为空
Azure function App settings is null after deployment
这是我的场景:
- 我有一个 c# blob 触发器 azure 函数(alwaysON 设置为 true)。
- 我正在设置函数应用程序的 apps设置使用
新 AzureRmResource ps cmdlet。
- 我正在通过调用 "https://$functionAppName.scm.azurewebsites.net/api/zip/site/wwwroot" 上的 PUT Rest 调用来部署 azure 函数以上传一个 zip 文件(其中包含 run.csx、function.json 和 bin/*.dll 文件)。
- 我使用 CloudConfigurationManager.GetSetting(settingKey) 获取 *.dll 文件中的 apps设置。我对这些 apps 设置进行 IsNullOrWhiteSpace 检查以抛出 ConfigurationErrorsException。
问题:部署后,总是第一次触发 azure 函数失败。如果 appsetting 是 IsNullOrWhiteSpace,它会因 ConfigurationErrorsException 异常而失败。
在第一个失败的触发器大约一分钟后,所有后续触发器开始成功。
是不是加载apps设置需要时间?
你们中有人遇到过这样的问题吗?这个 workaround/solution 是什么?
您不应在 Azure 应用服务中使用 CloudConfigurationManager
,因为该组件是为云服务(一种不同的 Azure 产品)设计的。您应该避免完全引用该程序集。
相反,只需使用 ConfigurationManager.AppSettings["YourSetting"]
访问您的应用设置。
这是我的场景:
- 我有一个 c# blob 触发器 azure 函数(alwaysON 设置为 true)。
- 我正在设置函数应用程序的 apps设置使用 新 AzureRmResource ps cmdlet。
- 我正在通过调用 "https://$functionAppName.scm.azurewebsites.net/api/zip/site/wwwroot" 上的 PUT Rest 调用来部署 azure 函数以上传一个 zip 文件(其中包含 run.csx、function.json 和 bin/*.dll 文件)。
- 我使用 CloudConfigurationManager.GetSetting(settingKey) 获取 *.dll 文件中的 apps设置。我对这些 apps 设置进行 IsNullOrWhiteSpace 检查以抛出 ConfigurationErrorsException。
问题:部署后,总是第一次触发 azure 函数失败。如果 appsetting 是 IsNullOrWhiteSpace,它会因 ConfigurationErrorsException 异常而失败。 在第一个失败的触发器大约一分钟后,所有后续触发器开始成功。
是不是加载apps设置需要时间? 你们中有人遇到过这样的问题吗?这个 workaround/solution 是什么?
您不应在 Azure 应用服务中使用 CloudConfigurationManager
,因为该组件是为云服务(一种不同的 Azure 产品)设计的。您应该避免完全引用该程序集。
相反,只需使用 ConfigurationManager.AppSettings["YourSetting"]
访问您的应用设置。