无需修改变量,如何衔接Secrets.json与Azure Key Vault用于ASP.NET Core部署?
关于Secrets.json导入Azure Key Vault及命名的问题解答
1. 无需手动逐个创建Key Vault密钥
你可以通过脚本批量导入Secrets.json的内容,不用手动逐个添加:
- Azure CLI 脚本示例:
在PowerShell中读取Secrets.json并循环创建密钥:$secrets = Get-Content -Path "Secrets.json" | ConvertFrom-Json foreach ($secret in $secrets.PSObject.Properties) { az keyvault secret set --vault-name "你的KeyVault名称" --name $secret.Name --value $secret.Value } - Azure PowerShell 脚本示例:
执行前确保已登录Azure账号($secrets = Get-Content -Path "Secrets.json" | ConvertFrom-Json foreach ($secret in $secrets.PSObject.Properties) { Set-AzKeyVaultSecret -VaultName "你的KeyVault名称" -Name $secret.Name -SecretValue (ConvertTo-SecureString $secret.Value -AsPlainText -Force) }az login或Connect-AzAccount),且拥有Key Vault的写入权限。
2. 无需修改Secrets.json的分组命名
Key Vault完全支持带点分隔的密钥名称(比如AzureBlobStorage.ConnectionString),和ASP.NET Core配置系统的分层命名规则兼容。本地的Secrets.json不用做任何修改,部署时只要配置Azure App Service连接到Key Vault,ASP.NET Core会自动像读取本地Secrets.json一样,识别这些分层命名的密钥,直接通过Configuration["AzureBlobStorage:ConnectionString"]或者绑定到配置类的方式读取,和本地开发的代码逻辑完全一致。
内容的提问来源于stack exchange,提问作者CigarDoug
相关产品推荐
相关产品推荐

