首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SimpleDB创建serverless.yaml域

使用SimpleDB创建serverless.yaml域
EN

Stack Overflow用户
提问于 2018-01-01 07:46:30
回答 1查看 272关注 0票数 2

因此,我正在使用Serverless Framework在Amazon上创建一个服务器较少的应用程序。对于我们的堆栈,我们创建了许多Lambda函数、DynamoDB表、API,现在我们还想添加一个simpleDB域。我似乎在网上找不到任何关于添加到serverless.yaml中以创建SimpleDB域的代码片段的信息。

我编写了下面的代码,它创建了域,但是域的名称并不像预期的那样

代码语言:javascript
复制
resources:
  Resources:
    LogSimpleDBTable:
      Type: "AWS::SDB::Domain"
      Properties:
        DomainName : ${self:provider.environment.SIMPLEDB}
        Description: "SDB Domain to store data log"

变量SimpleDB定义为

代码语言:javascript
复制
SIMPLEDB: git-pushr-processing-${opt:stage, self:provider.stage}

所以当我使用命令进行部署时

代码语言:javascript
复制
serverless deploy --stage staging --awsaccountid XXXXX

我希望SimpleDB表的名称是

git.推送-处理-分期

相反,我得到了一个具有以下名称的域

git-pushr-api-staging-LogSimpleDBTable-1P7CQH4SGAWGI

最后一段序列(1P7CQH4SGAWGI)每次都会发生变化。

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

代码语言:javascript
复制
 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.推送-处理-分期

那我在这里做错什么了?

EN

回答 1

Stack Overflow用户

发布于 2019-02-06 16:57:12

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

但是,可以引用使用Ref: LogSimpleDBTable语法生成的域。

例如,将域名传递给lambda (将其作为process.env.SDB_DOMAIN_NAME变量提供):

代码语言:javascript
复制
functions:
  queueRequests:
    handler: src/consumer.handler
    name: consumer
    environment:
      SDB_DOMAIN_NAME:
        Ref: LogSimpleDBTable

或者在IAM角色语句中引用它

代码语言:javascript
复制
provider:
  ...
  iamRoleStatements:
    - Effect: Allow
      Action:
        - sdb:GetAttributes
        - sdb:PutAttributes
      Resource: 
        Fn::Join:
          - ""
          - - "arn:aws:sdb:*:*:domain/"
            - Ref: LogSimpleDBTable
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48047990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档