【问题标题】:Get environment variables of a different service获取不同服务的环境变量
【发布时间】:2020-10-31 06:23:17
【问题描述】:
我正在使用 Service Fabric。从一项专用服务中,我想检索其他服务的环境变量。有没有办法做到这一点 ? (扫描正在运行的服务/循环/获取环境变量/检查是否设置了指定变量)。
我已经找到了一种读取进程环境块 (here) 的方法,但如果有 Service Fabric 功能可能会更好。
【问题讨论】:
标签:
c#
service
process
environment-variables
azure-service-fabric
【解决方案1】:
您可以从服务清单中获取环境变量,但可以在应用程序清单中覆盖这些变量。
这没有考虑服务在运行时创建的环境变量。
var client = new FabricClient();
var serviceManifest = await client.ServiceManager.GetServiceManifestAsync("Application1Type", "1.0.0",
“服务1包”);
var environmentVariables = XDocument.Parse(serviceManifest)
。子孙()
.Where(x => x.Name == XName.Get("EnvironmentVariable", "http://schemas.microsoft.com/2011/01/fabric"))
.Select(x => 新
{
名称 = x.FirstAttribute.Value,
值 = x.LastAttribute.Value
})
.ToList();