Почему мой шаблон CloudFormation продолжает давать сбой при сборке простой DynamoDB с одним ключом раздела?

Использовать UNAVAILABLE_ATTRIBUTE отменить метод init и реализовать initPrivate

+ (instancetype)shareInstance;

- (instancetype)init UNAVAILABLE_ATTRIBUTE;
+ (instancetype)new UNAVAILABLE_ATTRIBUTE;

реализовать

+ (instancetype)shareInstance {
    static MyClass *shareInstance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        shareInstance = [[super allocWithZone:NULL] initPrivate];
    });
    return shareInstance;
}

- (instancetype)initPrivate {
    self = [super init];
    if (self) {

    }
    return self;
}

//  MARK: Rewrite
+ (id)allocWithZone:(struct _NSZone *)zone {
    return [MyClass shareInstance];
}

- (id)copyWithZone:(NSZone *)zone
{
    return self;
}
0
задан John Rotenstein 18 January 2019 в 08:59
поделиться

2 ответа

Я просто использовал замечательный Консольный рекордер для AWS - Chrome Web Store для генерации шаблона и получил:

AWSTemplateFormatVersion: "2010-09-09"
Resources:
    dynamodb1a42db5:
        Type: "AWS::DynamoDB::Table"
        Properties:
            TableName: "test-env-wb-portal-roles"
            BillingMode: "PROVISIONED"
            KeySchema: 
              - 
                AttributeName: "name"
                KeyType: "HASH"
            ProvisionedThroughput: 
                ReadCapacityUnits: 5
                WriteCapacityUnits: 5
            SSESpecification: 
                Enabled: false

Кажется, что KeySchema - это список словарей, которая должна быть отделена от значений словаря.

См. Примеры кода YAML: AWS :: DynamoDB :: Table - AWS CloudFormation

0
ответ дан John Rotenstein 18 January 2019 в 08:59
поделиться

Я думаю, что настоящей проблемой было отсутствующее свойство ProvisionedThroughput .

Документ AWS говорит, что ProvisionedThroughput требуется, если вы установили BillingMode как PROVISIONED (это также значение по умолчанию для BillingMode)

Когда вы использовали Консольный рекордер для AWS - Chrome Web Store , аддон также генерировал свойство ProvisionedThroughput.

Итак, этот код верен:

AttributeDefinitions:
- AttributeName: name
  AttributeType: S

, но если вы действительно хотите решить проблему, правильный ответ - добавить свойство ProvisionedThroughput или изменить BillingMode

0
ответ дан Ligio 18 January 2019 в 08:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: