我一直在尝试这个,但没有任何运气,我有一个用 .NET v6.0 编写的项目,我需要部署到多个 Kubernetes 集群,每个集群都有自己的数据库托管在 Azure 上。使用 Azure CI/CD 管道,我尝试覆盖
appsetting.json
中的连接字符串以匹配不同的 Kubernetes 集群。但是,当我部署此应用程序时,它不会覆盖环境变量中设置的连接字符串。我设置了其他环境变量,它们工作得很好,我只有 connectionstring
的问题
我的
appsetting.json
{
"ConnectionStrings": {
"DefaultConnection": "Server= 192.168.2.68; database=TransactionLogs;user id=sa;password=exTened;MultipleActiveResultSets=True;"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"TransferPay": "input value",
"TransferPayConn": "input value"
}
看起来像这样
在我的 Yaml 清单中,我尝试使用这样的环境变量覆盖此值
env:
- name: Logging__LogLevel__Default
value: Debug
- name: Logging__LogLevel__Microsoft.AspNetCore
value: Debug
- name: TransferPay
value: google.com
- name: TransferPayConn
value: yahoo.com
- name: ConnectionStrings__DefaultConnection
valueFrom:
configMapKeyRef:
name: db-config
key: database_uri
配置映射
apiVersion: v1
kind: ConfigMap
metadata:
name: db-config
namespace: dev
data:
database_uri: "Server= 192.168.2.68; database=TransactionLogs;user id=sa;password=exTened;MultipleActiveResultSets=True;"
我终于明白了,
问题来自.Net项目,缺少数据库模型
.AddEnvironmentVariables()