Я следую этому уроку:
https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/how-to-spot-instances.html
И создал функцию C # Lambda для тестирования создания точечного экземпляра.Рассматриваемая функция:
public async static Task<SpotInstanceRequest> RequestSpotInstance(
AmazonEC2Client ec2Client,
string amiId,
string securityGroupName,
InstanceType instanceType,
string spotPrice,
int instanceCount)
{
var request = new RequestSpotInstancesRequest();
request.SpotPrice = spotPrice;
request.InstanceCount = instanceCount;
var launchSpecification = new LaunchSpecification();
launchSpecification.ImageId = amiId;
launchSpecification.InstanceType = instanceType;
launchSpecification.SecurityGroups.Add(securityGroupName);
request.LaunchSpecification = launchSpecification;
var result = await ec2Client.RequestSpotInstancesAsync(request);
return result.SpotInstanceRequests[0];
}
Однако выполнение функции завершается неудачно с:
START RequestId: c64ea78d-d350-4f24-974c-09f31d16c5fd Version: $LATEST
One or more errors occurred. (Value () for parameter groupId is invalid. The value cannot be empty): AggregateException
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at lambda_method(Closure , Stream , Stream , LambdaContextInternal )
Я подтвердил, что ссылаюсь на группу безопасности, которая является действительной и существует.Я пробовал groupId, имя группы и «Имя» для vale securityGroupId, но возникает та же ошибка.Куда я здесь не так?Я выполнил некоторые поиски, и они указывают, что эта ошибка может быть вызвана использованием идентификатора группы безопасности вместо имени группы, но я попробовал все доступные ссылки для группы безопасности с тем же результатом.