Как получить информацию об оперативной памяти и процессоре с помощью AmazonEC2Client в Asp. Net Core? - PullRequest
0 голосов
/ 06 мая 2020

В моем проекте 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"
]

Я не знаю информацию об оперативной памяти и процессоре внутри типа экземпляра или нет, нет опыта работы с aws. Я хотел бы получить информацию о процессоре и оперативной памяти в соответствии с типом экземпляра. Позже я хотел бы создать метод, который принимает строку instanceType и в соответствии с этим получает оперативную память и процессор. Например: GetRam ("t2.micro") -> 2 ГБ

1 Ответ

0 голосов
/ 06 мая 2020

Вместо использования 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...