获取不同服务的环境变量

Get environment variables of a different service

我正在使用 Service Fabric。我想从一项专用服务中检索其他服务的环境变量。有没有办法做到这一点 ? (扫描运行服务/循环/获取环境变量/检查是否设置了指定变量)。

我已经找到了读取进程环境块的方法 (here),但如果有 Service Fabric 函数,它可能会更好。

您可以从服务清单中获取环境变量,但可以在应用程序清单中覆盖这些变量。 这没有考虑服务在运行时创建的环境变量。

var client = new FabricClient();
var serviceManifest = await client.ServiceManager.GetServiceManifestAsync("Application1Type", "1.0.0",
    "Service1Pkg");

var environmentVariables = XDocument.Parse(serviceManifest)
    .Descendants()
    .Where(x => x.Name == XName.Get("EnvironmentVariable", "http://schemas.microsoft.com/2011/01/fabric"))
    .Select( x => new
    {
        Name = x.FirstAttribute.Value,
        Value = x.LastAttribute.Value
    })
    .ToList();