【发布时间】:2018-07-25 11:02:35
【问题描述】:
背景
我在一个项目中使用 Octopus Deploy,并在其中一个进程中使用 Json 配置变量替换。我贡献的 Asp.net 核心项目从 Json 配置中获取 url 和名称,并添加 HttpClient 实例以到达多个端点。
json 看起来像这样:
"HttpClientFactoryServices": [
{
"Name": "ServiceX",
"Url": "http://serviceXurl"
},
{
"Name": "ServiceY",
"Url": "http://serviceYurl"
},
{
"Name": "ServiceZ",
"Url": "http://serviceZurl"
}
]
我想根据 QA 和 Prod 环境编辑这些 Url 部分。 (在八达通上)
我知道 Octopus documentation 中有一个数组对象替换,但我不太愿意说
HttpClientFactoryServices:0 = {"name":"ServiceX", "url":...}
HttpClientFactoryServices:1 = {"name":"ServiceY", "url":...}
由于数组是可以更改的,因此它所包含的对象将来可以具有不同的结构。而且它看起来像是一种解决方法,而不是正确的方法。
问题 有没有办法告诉 Octopus“在数组中的 Name 属性中找到具有 ServiceX 值的对象,并将其“Url”属性设置为 http://serviceX-QA 如果它在 QA 环境中,然后设置为 http:/ /serviceX-prod 如果在 Prod 环境中?
或者您是否建议我更改对 HttpClient 和 Json 配置的方法?
其他信息: 在我切换到 Json 配置中的对象数组之前,我曾经在 HttpClientFactoryServices 下保存嵌套对象。在 Octopus 中添加属性值很容易,即:
HttpClientFactoryServices:ServiceX:Url = "http://serviceX"
但在项目代码中,我必须编写“从 Json 获取 serviceX,读取其 Url,将其添加为名为 ServiceX 的 httpClient 命名服务”的代码。遍历一系列服务看起来更好。
【问题讨论】:
标签: asp.net-core octopus-deploy