【问题标题】:AWS Cloud Map with AWS S3 SDK带有 AWS S3 开发工具包的 AWS 云地图
【发布时间】:2020-04-26 03:30:39
【问题描述】:

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

为什么我需要这个: 我目前正在尝试使用多个 aws 帐户设置开发、阶段和生产环境,并希望代码在应用程序中保持不变,但使用云地图来映射资源。我了解如何使用数据库和其他 url 进行这项工作。当我的代码使用 AWS 开发工具包访问 AWS 资源时,我遇到了困难。

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-sdk aws-cloudmap


    【解决方案1】:

    您必须使用 AWSSDK.ServiceDiscovery NuGet 包从您的 Cloud Map 命名空间解析服务。解析服务后,您可以将该值用于 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);
                    }
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-24
      • 2018-08-01
      • 1970-01-01
      • 2019-06-26
      • 1970-01-01
      相关资源
      最近更新 更多