![](/img/trans.png)
[英]How can I get the resource group name from within Service Fabric on Microsoft Azure
[英]how to get name of node on which my code is executing in azure fabric service?
如何在Azure Fabric Cluster中獲取運行我的代碼的計算機的名稱以進行日志記錄?
我在帶有一些節點的結構集群中運行ac#代碼。 我想記錄一些信息以及機器名稱。 我正在使用FabricRuntime,但它沒有幫助我。 做這個的最好方式是什么 ?
謝謝。
使用ServiceContext的NodeContext屬性。
因此,給定服務(有狀態或無狀態)或actorservice的上下文,您可以調用context.NodeContext.NodeName
來檢索節點名稱。
ServiceContext
還具有許多其他屬性,可用於日志記錄。
有關獲取節點和服務詳細信息的完整示例,請參閱此 repo。
好吧,我遇到了同樣的情況,我發現使用Fabric客戶端非常有幫助。 因為我現在正在學習它; 答案可能缺乏一些廣泛的細節。 這是一個示例代碼,您可以進一步查找此鏈接的詳細信息並根據要求使用它
var fabricClient = new FabricClient();
var apps = fabricClient.QueryManager.GetApplicationListAsync().Result;
foreach (var app in apps)
{
System.Diagnostics.Debug.WriteLine($"Discovered application:'{app.ApplicationName}");
var services = fabricClient.QueryManager.GetServiceListAsync(app.ApplicationName).Result;
foreach (var service in services)
{
System.Diagnostics.Debug.WriteLine($"Discovered Service:'{service.ServiceName}");
var partitions = fabricClient.QueryManager.GetPartitionListAsync(service.ServiceName).Result;
if (service.ServiceKind != System.Fabric.Query.ServiceKind.Stateful )
{
continue;
}
}
在查詢服務結構以獲取所需信息時非常有用。 現在,對於節點的情況,您可以像這樣簡單地通過查詢管理器進行查詢,並進一步使用節點信息進行更深入的查詢。
var nodes = fabricClient.QueryManager.GetNodeListAsync().Result;
我希望它能幫助像我這樣的人仍然在同一個問題上。
FabricRuntime.GetNodeContext().NodeName
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.