簡體   English   中英

如何在 Asp.Net Core 中使用 AmazonEC2Client 獲取 ram 和 cpu 信息?

[英]How to get ram and cpu info using AmazonEC2Client in Asp.Net Core?

在我的 Asp.Net Core 3.1 項目中,我使用 AmazonEC2Client 獲取有關 AWS 實例的信息。 我實現了獲取實例列表的輔助方法。方法如下所示:

         public static async Task<List<string>> AwsList(string awsAccessKeyId, string 
         awsSecretAccessKey)
        {
            AmazonEC2Client client = new AmazonEC2Client(awsAccessKeyId,awsSecretAccessKey, 
            RegionEndpoint.EUWest1);
            bool done = false;
            var instanceIds = new List<string>();
            DescribeInstancesRequest request = new DescribeInstancesRequest();
            while (!done)
            {
                DescribeInstancesResponse response = await 
                client.DescribeInstancesAsync(request);
                foreach ( Reservation reservation in response.Reservations)
                {
                    foreach (Instance instance in reservation.Instances)
                    {
                        instanceIds.Add(instance.InstanceType);
                    }
                }

                request.NextToken= response.NextToken;

                if (response.NextToken == null)
                {
                    done = true;
                }
            }
            return instanceIds;
        }

Json 結果是:

[
    "t3a.xlarge",
    "t2.medium",
    "t2.medium",
    "t2.micro",
    "t3a.xlarge",
    "t2.medium",
    "t3a.xlarge",
    "t3a.xlarge",
    "t3a.xlarge"
]

我不知道實例類型內的 ram 和 cpu 信息,沒有使用 aws 的經驗。 我想根據實例類型獲取 cpu 和 ram 信息。 稍后我想創建一個接受字符串 instanceType的方法,並根據這個獲取 ram 和 cpu。 例如:GetRam("t2.micro") -> 2gb

除了使用DescribeInstanceRequests 之外,還需要使用DescribeInstanceTypesRequest和適當的響應。

foreach ( var instanceType in response.InstanceTypes.Where(x => x.InstanceType  == name))
{
       instanceIds.Add(instanceType.MemoryInfo.SizeInMiB); // ram
       instanceIds.Add(instanceType.VCpuInfo.DefaultVCpus); //cpu
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM