4

Amazon AWS SDK for C# をダウンロードしました。Eucalyptus を実行しているプラ​​イベート クラウドの EC2 部分に問題なくアクセスできます。イメージ、インスタンス、ゾーンを一覧表示できます...

これは正常に動作しています:

AmazonEC2 ec2 = AWSClientFactory.CreateAmazonEC2Client("abcdefghijklmnopqrstuvwxyz1234567890", "abcdefghijklmnopqrstuvwxyz1234567890", new AmazonEC2Config().WithServiceURL("http://10.140.54.12:8773/services/Eucalyptus"));

DescribeInstancesRequest ec2Request = new DescribeInstancesRequest();
try
{
    DescribeInstancesResponse ec2Response = ec2.DescribeInstances(ec2Request);
    int numInstances = 0;
    numInstances = ec2Response.DescribeInstancesResult.Reservation.Count;
    textBoxInstancesLog.AppendText("You have " + numInstances + " running instances");
    textBoxInstancesLog.AppendText(ec2Response.ToString());
}
catch (Exception ex)
{
    MessageBox.Show(ex.ToString());
}

しかし、クラウドの Walrus (S3) 部分にアクセスする必要があります。これがセイウチにアクセスしようとする方法です。コードはほとんど同じですが、この呼び出しで例外が発生します。

これは機能していません:

AmazonS3 s3 = AWSClientFactory.CreateAmazonS3Client("abcdefghijklmnopqrstuvwxyz1234567890", "abcdefghijklmnopqrstuvwxyz1234567890", new AmazonS3Config().WithServiceURL("http://10.140.54.12:8773/services/Walrus"));
ListBucketsRequest s3Request = new ListBucketsRequest();
try
{
    ListBucketsResponse s3Response = s3.ListBuckets(s3Request);
    textBoxS3Log.AppendText(s3Response.ToString());
}
catch (Exception ex)
{
    MessageBox.Show(ex.ToString());
}

私はこの例外を受け取ります:

System.Net.WebException: The remote name could not be resolved: 'http'
   at Amazon.S3.AmazonS3Client.processRequestError(String actionName, HttpWebRequest request, WebException we, HttpWebResponse errorResponse, String requestAddr, WebHeaderCollection& respHdrs, Type t, Exception& cause)
   at Amazon.S3.AmazonS3Client.handleHttpWebErrorResponse(S3Request userRequest, WebException we, HttpWebRequest request, HttpWebResponse httpResponse, Exception& cause, HttpStatusCode& statusCode)
   at Amazon.S3.AmazonS3Client.getResponseCallback[T](IAsyncResult result)
   at Amazon.S3.AmazonS3Client.endOperation[T](IAsyncResult result)
   at Amazon.S3.AmazonS3Client.ListBuckets(ListBucketsRequest request)
   at IAASClient.FormMain.buttonS3Test_Click(Object sender, EventArgs e) in X:\work\IAASClient\FormMain.cs:line 107

ユーカリのサイトから:

Eucalyptus は、Amazon EC2 および Amazon S3 と互換性のある API を介してアクセスできる IaaS (Infrastructure as a Service) プライベート クラウドを実装します。

何が欠けていますか?

注: 同じコードは Amazon S3 でも問題なく動作しますが、問題は Eucalyptus Walrus にアクセスすることです。

4

2 に答える 2

0

AWSSDK for .NET は ServiceUrls のポート番号を認識していないようです...先日、SimpleDB クライアント コードでこれに対するパッチを書いたばかりですが、S3 クライアントで実際に見ていません...

ポート 80 で Walrus サービスを一時的にホストし、これが問題であるかどうかを確認するために再テストすることができます。

于 2011-06-09T22:35:28.403 に答える