我在下面有这个Azure函数,它具有一些静态变量,这些变量是从Azure函数设置中的“连接字符串”部分提取的。 从下面的代码中,您可以看到我为每个键和/或数据库仅提取了一个连接字符串。每个都与我的Azure函数设置区域中的一个值相关,如下图所示。
但是现在我希望能够指定测试字符串和生产字符串! 如何在不进入Azure设置和手动更改隐藏字符串值的情况下执行此操作?我应该使用#if DEBUG
这样的预处理程序语句吗SELECT
COUNT(thing) AS value,
CASE
WHEN (COALESCE(step1,0)+COALESCE(step2,0)+COALESCE(step3,0)+COALESCE(step4,0)+COALESCE(step5,0)+COALESCE(step6,0)+COALESCE(step7,0)) BETWEEN 0 AND 0.1 THEN '0-0.1'
WHEN (COALESCE(step1,0)+COALESCE(step2,0)+COALESCE(step3,0)+COALESCE(step4,0)+COALESCE(step5,0)+COALESCE(step6,0)+COALESCE(step7,0)) BETWEEN 0.1 AND 0.2 THEN '0.1-0.2'
WHEN (COALESCE(step1,0)+COALESCE(step2,0)+COALESCE(step3,0)+COALESCE(step4,0)+COALESCE(step5,0)+COALESCE(step6,0)+COALESCE(step7,0)) BETWEEN 0.2 AND 0.3 THEN '0.2-0.3'
WHEN (COALESCE(step1,0)+COALESCE(step2,0)+COALESCE(step3,0)+COALESCE(step4,0)+COALESCE(step5,0)+COALESCE(step6,0)+COALESCE(step7,0)) BETWEEN 0.3 AND 0.4 THEN '0.3-0.4'
WHEN (COALESCE(step1,0)+COALESCE(step2,0)+COALESCE(step3,0)+COALESCE(step4,0)+COALESCE(step5,0)+COALESCE(step6,0)+COALESCE(step7,0)) BETWEEN 0.4 AND 0.5 THEN '0.4-0.5'
-- ad infinitum
END AS metric
FROM table
GROUP BY metric
答案 0 :(得分:1)
首先,请注意提示
仅当您使用实体框架时,连接字符串才应与功能应用程序一起使用。对于其他情况,请使用“应用程序设置”。
即使您的代码也能正常工作,我的建议是在Application settings
上方的Connection strings
部分中添加密钥,并以ConfigurationManager.AppSettings["settingName"]
进行读取。
关于您的问题,请考虑使用slots(功能的预览功能)。
创建一个测试插槽,默认情况下它会从生产插槽复制设置。根据需要修改设置。
将设置固定为slot settings(测试插槽和生产插槽)。
如果您不想使用广告位,请将测试和生产设置都使用不同的前缀(例如test_SendGridApiKey
和prod_SendGridApiKey
)添加到“应用程序设置”中。然后添加一个额外的prefix
设置来确定要读取的键,我们当然需要手动修改prefix
。
例如,添加三个设置,两个键:test_SendGridApiKey
和prod_SendGridApiKey
,以及一个值为prefix
的{{1}}。
然后在功能代码中,我们调用下面的代码以获取测试键
test
在“应用程序”设置中将var prefix = ConfigurationManager.AppSettings["prefix"];
var settingName = "SendGridApiKey";
var sendGridApiKey = ConfigurationManager.AppSettings[$"{prefix}_{settingName}"]`;
更改为prefix
后,我们将获得生产密钥。