AWS Облачная карта с AWS S3 SDK - PullRequest
0 голосов
/ 08 января 2020

Облачная карта AWS говорит, что она будет работать с корзинами S3. Что я пытаюсь понять, так это как настроить AWS S3 SDK для использования пространств имен и служб облачной карты при отправке запроса в корзину S3. Где-нибудь есть полный пример, который охватывает настройку и корзину S3, добавление ее в облачную карту, используя AWS S3 SDK для доступа к корзине S3 с помощью карты облака.

Зачем мне это нужно: я в настоящее время пытается настроить среды разработки, рабочей среды и среды разработки с использованием нескольких учетных записей aws и хотел бы, чтобы код оставался неизменным в приложении, но использовал карту облака для сопоставления ресурсов. Я понимаю, как я могу заставить это работать с базой данных и другими URL. Я застреваю, когда мой код использует AWS SDK для доступа к AWS ресурсам.

1 Ответ

0 голосов
/ 10 января 2020

Вам необходимо использовать пакет NuGet AWSSDK.ServiceDiscovery, чтобы разрешить службу из пространства имен вашей облачной карты. После разрешения службы вы используете это значение с клиентом службы 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);
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...