使用serverless.yaml创建的SimpleDB域

问题描述 投票:2回答:1

所以我创建上使用无服务器框架亚马逊AWS服务器应用较少。对于我们的堆栈,我们创造了一些lambda函数,DynamoDB表,API网关现在我们要添加一个SimpleDB的域名为好。我似乎无法在线上什么样的代码片段添加到serverless.yaml创建SimpleDB的域名找到任何信息。

我写了下面的代码,它创建了域名,但该域名并不如预期

resources:
  Resources:
    LogSimpleDBTable:
      Type: "AWS::SDB::Domain"
      Properties:
        DomainName : ${self:provider.environment.SIMPLEDB}
        Description: "SDB Domain to store data log"

和可变SimpleDB的被定义为

SIMPLEDB: git-pushr-processing-${opt:stage, self:provider.stage}

所以,当我部署使用命令

serverless deploy --stage staging --awsaccountid XXXXX

我希望SimpleDB的表的名称是

GIT-pushr处理分期

相反,我出现以下名称的域

混帐pushr-API分期-LogSimpleDBTable-1P7CQH4SGAWGI

其中序列的最后一位(1P7CQH4SGAWGI)变化每次。

我们使用的是完全相同的模式来命名我们的DynamoDB表,他们似乎得到与正确的名称创建

 DYNAMODB_TABLE: git-pushr-processing-${opt:stage, self:provider.stage}

resources:
  Resources:
    TodosDynamoDbTable:
      Type: 'AWS::DynamoDB::Table'
      DeletionPolicy: Retain
      Properties:
        AttributeDefinitions:
          -
            AttributeName: id
            AttributeType: S
        KeySchema:
          -
            AttributeName: id
            KeyType: HASH
        ProvisionedThroughput:
          ReadCapacityUnits: 1
          WriteCapacityUnits: 1
        TableName: ${self:provider.environment.DYNAMODB_TABLE}
        StreamSpecification:
          StreamViewType: NEW_AND_OLD_IMAGES

我们得到一个DynamoDB表具有以下名称

GIT-pushr处理分期

所以我在做什么错在这里?

amazon-web-services serverless-framework amazon-simpledb serverless
1个回答
0
投票

我不知道如何使无服务器使用您所选择的域名。

然而,有可能引用域中使用Ref: LogSimpleDBTable语法生成

例如。通过域名来拉姆达(使它可作为process.env.SDB_DOMAIN_NAME变量):

functions:
  queueRequests:
    handler: src/consumer.handler
    name: consumer
    environment:
      SDB_DOMAIN_NAME:
        Ref: LogSimpleDBTable

还是在IAM角色语句引用它

provider:
  ...
  iamRoleStatements:
    - Effect: Allow
      Action:
        - sdb:GetAttributes
        - sdb:PutAttributes
      Resource: 
        Fn::Join:
          - ""
          - - "arn:aws:sdb:*:*:domain/"
            - Ref: LogSimpleDBTable
© www.soinside.com 2019 - 2024. All rights reserved.