Amazon AWS: не удается войти

Я работал над проектом Amazon EC2, и когда я захожу так:

public bool Login(Credentials credentials, string ownerID, string region)
{
    try
    {
        OwnerID = ownerID;
        CurrentCredentials = credentials;
        CurrentConfigs = new AmazonEC2Config() { RegionEndpoint = RegionEndpoint.GetBySystemName(region) };
        EC2 = AWSClientFactory.CreateAmazonEC2Client(CurrentCredentials, CurrentConfigs);
    }
    catch
    {
        return false;
    }
    return true;
}

А затем попробуйте получить доступ следующим образом:

DescribeInstancesRequest ec2Request = new DescribeInstancesRequest();
ec2Request.InstanceIds = new List<string>() { id };
DescribeInstancesResponse ec2Response = EC2.DescribeInstances(ec2Request);
return ec2Response.Reservations[0].Instances[0];

Я получаю это исключение:

ИСКЛЮЧЕНИЕ:

Encountered a WebException (NameResolutionFailure), the request cannot be retried. Either the maximum number of retries has been exceeded (4/4) or the request is using a non-seekable stream.

ТРАССИРОВКИ СТЕКА:

at Amazon.Runtime.AmazonWebServiceClient.HandleHttpWebErrorResponse(AsyncResult asyncResult, WebException we)
at Amazon.Runtime.AmazonWebServiceClient.getRequestStreamCallback(IAsyncResult result)
at Amazon.Runtime.AmazonWebServiceClient.endOperation[T](IAsyncResult result)
at Amazon.EC2.AmazonEC2Client.DescribeInstances(DescribeInstancesRequest describeInstancesRequest)
at ...

РЕДАКТИРОВАТЬ:

Внутреннее исключение этого исключения:

The remote name could not be resolved: 'ec2.sa-east-1a.amazonaws.com'

Важно отметить, что это дает мне эту ошибку, только когда доступ к региону sa-east-1a. Другой аккаунт у меня в регионе us-west-2 работает отлично. Кроме того, я извлек информацию об учетных данных и регионе из web.config

2 ответа

Решение

Простая ошибка, простое решение: регион sa-east-1, а не sa-east-1a. При входе в систему не следует указывать, какой центр обработки данных использовать, только регион.

В качестве приложения к этому, для тех, кто прибывает сюда, кто не указал центр обработки данных. В моем случае с помощью RegionEndpoint.GetBySystemName("USEast1") против RegionEndpoint.GetBySystemName("US-East-1") был создателем разницы.

Другие вопросы по тегам