DynamoDb повторно использует ScalableTarget для нескольких таблиц с использованием облачной информации - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь добавить автоматическое масштабирование для нескольких таблиц DDB, поскольку все таблицы будут иметь одинаковый шаблон трафика, конфигурация автоматического масштабирования для них будет идентична.Я знаю способ сделать это путем создания ScalableTargets для каждой таблицы, но, поскольку я хочу, чтобы все таблицы использовали одну и ту же конфигурацию, мне было интересно, возможно ли повторно использовать масштабируемые цели

  WriteCapacityScalableTarget:
    Type: "AWS::ApplicationAutoScaling::ScalableTarget"
    Properties:
      MaxCapacity: 30
      MinCapacity: 5
      ResourceId:
        Fn::Join:
          - /
          - - table
            - Ref: FooTable
      RoleARN:
        Fn::GetAtt: DynamoDBAutoScalingRole.Arn
      ScalableDimension: "dynamodb:table:WriteCapacityUnits"
      ServiceNamespace: dynamodb

  WriteScalingPolicy:
    Type: "AWS::ApplicationAutoScaling::ScalingPolicy"
    Properties:
      PolicyName: WriteAutoScalingPolicy
      PolicyType: TargetTrackingScaling
      ScalingTargetId:
        Ref: WriteCapacityScalableTarget
      TargetTrackingScalingPolicyConfiguration:
        TargetValue: 80 
        ScaleInCooldown: 10 
        ScaleOutCooldown: 10 
        PredefinedMetricSpecification:
          PredefinedMetricType: DynamoDBWriteCapacityUtilization

  DynamoDBAutoScalingRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - application-autoscaling.amazonaws.com
            Action:
              - 'sts:AssumeRole'
      Path: /
      Policies:
        - PolicyName: root
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              - Effect: Allow
                Action:
                  - 'dynamodb:DescribeTable'
                  - 'dynamodb:UpdateTable'
                  - 'cloudwatch:PutMetricAlarm'
                  - 'cloudwatch:DescribeAlarms'
                  - 'cloudwatch:GetMetricStatistics'
                  - 'cloudwatch:SetAlarmState'
                  - 'cloudwatch:DeleteAlarms'
                Resource: "*"

Этоработает нормально, чтобы включить автоматическое масштабирование для одной таблицы, но когда я пытаюсь сделать то же самое с несколькими таблицами, это терпит неудачу, я пытаюсь это как -

  WriteCapacityScalableTarget:
    Type: "AWS::ApplicationAutoScaling::ScalableTarget"
    Properties:
      MaxCapacity: 30
      MinCapacity: 5
      ResourceId:
        Fn::Join:
          - /
          - - table
            - Ref: FooTable
            - table 
            - Ref: BarTable
      RoleARN:
        Fn::GetAtt: DynamoDBAutoScalingRole.Arn
      ScalableDimension: "dynamodb:table:WriteCapacityUnits"
      ServiceNamespace: dynamodb

выше цель не удается создать, мы можем повторно использовать масштабируемуюцели для индексов одинаково, но возможно ли это для нескольких таблиц?Если да, как этого добиться?

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