使用 AWS S3 开发工具包的 AWS 云地图



AWS云地图表示它将与S3存储桶一起使用。我正在努力理解的是,在向 S3 存储桶发出请求时,如何将 AWS S3 开发工具包设置为使用云映射命名空间和服务。是否有一个完整的示例,涵盖设置和 S3 存储桶,将其添加到云地图,使用 AWS S3 开发工具包使用云地图访问 S3 存储桶。

为什么我需要这个: 我目前正在尝试使用多个 aws 账户设置开发、暂存和生产环境,并希望代码在应用程序中保持不变,但使用云映射来映射资源。我了解如何使它与数据库和其他 url 一起工作。当我的代码使用 AWS 开发工具包访问 AWS 资源时,我陷入困境。

您必须使用 AWSSDK。服务发现 NuGet 包,用于从云映射命名空间解析服务。解析服务后,您将该值与 S3 服务客户端一起使用。下面是发现 mystorage 服务的简单示例,该服务是一个 S3 存储桶,然后将该值与 S3 一起使用。

using System;
using System.Collections.Generic;
using System.Threading.Tasks;

using Amazon;
using Amazon.S3;
using Amazon.S3.Model;

using Amazon.ServiceDiscovery;
using Amazon.ServiceDiscovery.Model;

namespace ServiceDiscoveryTest
{
class Program
{
static async Task Main(string[] args)
{
using(var discoveryClient = new AmazonServiceDiscoveryClient(RegionEndpoint.USEast1))
using(var s3Client = new AmazonS3Client(RegionEndpoint.USEast1))
{
var discoveryResponse = await discoveryClient.DiscoverInstancesAsync(new DiscoverInstancesRequest
{
NamespaceName = "dev",
ServiceName = "mystorage",
QueryParameters = new Dictionary<string, string> 
{ 
{ "Version", "1.0" } 
}
});

var listResponse = await s3Client.ListObjectsAsync(new ListObjectsRequest
{
BucketName = discoveryResponse.Instances[0].InstanceId
});

foreach(var s3Object in listResponse.S3Objects)
{
Console.WriteLine(s3Object.Key);
}
}
}
}
}

最新更新