【问题标题】:Create SimpleDB domain using serverless.yaml使用 serverless.yaml 创建 SimpleDB 域
【发布时间】:2018-06-11 09:25:57
【问题描述】:

所以我正在使用无服务器框架在 Amazon AWS 上创建一个无服务器应用程序。 对于我们的堆栈,我们创建了许多 Lambda 函数、DynamoDB 表、API 网关,现在我们还想添加一个 simpleDB 域。 我似乎无法在线找到任何有关将哪些代码 sn-p 添加到 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-processing-staging

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

git-pushr-api-staging-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-processing-staging

那么我在这里做错了什么?

【问题讨论】:

    标签: amazon-web-services serverless-framework amazon-simpledb serverless


    【解决方案1】:

    我不知道如何让 serverless 使用您选择的域名。

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

    例如将域名传递给 lambda(使其作为 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
    

    【讨论】:

      猜你喜欢
      • 2012-02-14
      • 1970-01-01
      • 2011-10-30
      • 2010-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      • 2014-02-09
      相关资源
      最近更新 更多