Управление разработкой / постановкой / производством на DynamoDB? - PullRequest
19 голосов
/ 26 марта 2012

Мы начинаем использовать DynamoDB, и нам нужны отдельные среды для разработки / постановки / производства.Мы не можем найти естественный способ сделать это - мы просто создаем отдельные учетные записи AWS?Или мы используем ту же учетную запись, но добавляем глупые префиксы в наши таблицы («dev-products», «staging-products», «prod-products»)?

Ответы [ 5 ]

11 голосов
/ 27 марта 2012

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

Другие варианты использования нескольких учетных записей могут заключаться в управлении разрешениями и улучшении тестирования.Разделение учетных записей помогает проводить тестирование, поскольку вы можете на 100% воспроизвести производственную учетную запись и включать и выключать ее, когда вам нужно протестировать новые функции.Я говорил с Amazon Premium Support об этой проблеме, и они сказали, что это кажется стандартной практикой для крупных компаний.Некоторые крупные компании имеют много аккаунтов.На моей работе у нас только 3, и я считаю это более полезным каждый день.

6 голосов
/ 01 апреля 2012

Не забывайте, значительно улучшенный IAM от Amazon для контроля доступа. Это в значительной степени дает вам те же преимущества отдельных учетных записей. (Отдельные учетные записи все еще возможны, если вы хотите иметь разные уровни платной поддержки.)

Мудрое наименование, я предпочитаю name.environment.wh независимо.

5 голосов
/ 17 февраля 2016

Я не могу понять, почему нет решения AWS для обработки версий DB, таких как производство и тестирование, в DynamoDB !?Наличие нескольких учетных записей AWS - сложная задача.

Также становится большой проблемой префиксировать имена таблиц, если вы получаете элементы с помощью атрибута класса c # [DynamoDBTable("Users")] и извлекаете данные с помощью DynamoDBContext.Load<User>(userId);

Поскольку значения атрибутов не могут изменяться во время выполнения, я закончил с этим решением, используя условные символы компиляции и установив константы, которые можно использовать в качестве значения атрибута класса.

public static class DynamoDbTablesConfiguration
{
        #if Debug
            public const string UserTable = "Users_Dev";
        #endif

        #if Release
            public const string UserTable = "Users_Production";
        #endif
}

[DynamoDBTable(DynamoDbTablesConfiguration.UserTable)]
public class User
{
}

Убедитесь, что вы установили "условные символы компиляции "значение по правому клику на проекте> Свойства> Построение>" условные символы компиляции ".

Не идеальное решение, но я не вижу здесь других вариантов, если я не хочу создавать другоеАккаунт AWS.

4 голосов
/ 23 сентября 2013

Amazon теперь предоставляет сервер, который вы можете запускать локально.Вы можете скачать его здесь .

2 голосов
/ 27 марта 2012

Я не вижу ничего, что находится "над" таблицами, которые можно создать для каждого имеющегося у вас экземпляра (dev / staging / prod) (например, для реляционной базы данных, в которой все таблицы находятся в одной БД).

В приложении, над которым я работаю, мы используем префиксы к таблицам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...