Azure Functions 的每个环境配置?
Per environment configurations for Azure Functions?
对于本地开发,我可以做 Environment.GetEnvironmentVariable("ApiKey")
并且在我的 local.settings.json
文件中我会有一个 JSON 属性 ApiKey: "abc123"
.
但是当我将我的函数从 Visual Studio 或从 Azure Pipeline 发布到暂存或生产中时。他们应该根据环境和 KeyVault 读取配置值。
我使用过 Consul 本地安装,这很容易。对于 Azure,我不确定什么才是正确的方法。使用带有环境标签的 Azure 应用程序配置服务或进入每个功能实例并手动添加配置并使用 KeyVault 映射一些配置?
host.json
您不需要使用 KeyVault 来存储这些秘密。
在 Azure 门户中打开您的 Function App,然后
Settings -> Application Settings -> New Application Setting
填写的地方
Name: ApiKey
Value: thankscasper
您可以像在本地一样访问它们。
KeyVault
如果您确实想使用 KeyVault,请为 Function App 设置一个 system-assigned 托管身份
根据 KeyVault 的访问策略
授予托管身份 get 密钥权限
如果您存储的密钥名为 X
,您可以使用
从密钥库访问它
Environment.GetEnvironmentVariable("X", EnvironmentVariableTarget.Process);
对于本地开发,我可以做 Environment.GetEnvironmentVariable("ApiKey")
并且在我的 local.settings.json
文件中我会有一个 JSON 属性 ApiKey: "abc123"
.
但是当我将我的函数从 Visual Studio 或从 Azure Pipeline 发布到暂存或生产中时。他们应该根据环境和 KeyVault 读取配置值。
我使用过 Consul 本地安装,这很容易。对于 Azure,我不确定什么才是正确的方法。使用带有环境标签的 Azure 应用程序配置服务或进入每个功能实例并手动添加配置并使用 KeyVault 映射一些配置?
host.json
您不需要使用 KeyVault 来存储这些秘密。 在 Azure 门户中打开您的 Function App,然后
Settings -> Application Settings -> New Application Setting
填写的地方
Name: ApiKey
Value: thankscasper
您可以像在本地一样访问它们。
KeyVault
如果您确实想使用 KeyVault,请为 Function App 设置一个 system-assigned 托管身份
根据 KeyVault 的访问策略
授予托管身份 get 密钥权限如果您存储的密钥名为 X
,您可以使用
Environment.GetEnvironmentVariable("X", EnvironmentVariableTarget.Process);