[英]How to replace region with own enum in AmazonEC2Client in c#?
[英]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.