[serverless-framework]将应用程序部署到新阶段会尝试更新旧阶段

DrkStr

我们有一个简单的无服务器应用程序,其中包含dynamo DB表,一些lambda和API端点。目前,我们已在开发阶段部署了该应用。

我们在部署到产品阶段时遇到了一些麻烦。

这是serverless.yaml文件。

service: lookups
# app and org for use with dashboard.# serverless.com
app: lookups
org: xxxxxx

provider:
  name: aws
  runtime: python3.8
  environment:
    DYNAMO_DB_LOOKUP_TABLE_NAME: lookup_${self:provider.stage}
    S3_BUCKET: com.yyyyy.lookups.${self:provider.stage}
  iamRoleStatements:
    - Effect: Allow
      Action:
        - dynamodb:PutItem
        - dynamodb:UpdateItem
        - dynamodb:GetItem
      Resource: "arn:aws:dynamodb:${self:provider.region}:*:table/${self:provider.environment.DYNAMO_DB_LOOKUP_TABLE_NAME}"

functions:
  createOrUpdateLookups:
    handler: createOrUpdateLookups.createOrUpdateLookups
    description: create or update lookup entry in dynamodb
    environment:
      lookupTable: ${self:provider.environment.DYNAMO_DB_LOOKUP_TABLE_NAME}
    events:
      - s3:
          bucket: ${self:provider.environment.S3_BUCKET}
          event: s3:ObjectCreated:*
          rules:
            - suffix: .json
  getLookup:
    handler: getLookup.getLookup
    description: get persigned url for a lookup by location and lookup type
    environment:
      lookupTable: ${self:provider.environment.DYNAMO_DB_LOOKUP_TABLE_NAME}
      lookupBucket: ${self:provider.environment.S3_BUCKET}
    events:
      - http:
          path: v1/lookup
          method: get
          request:
            parameters:
              querystrings:
                location: true
                lookupType: true



resources:
  Resources:
    lookupTable:
      Type: AWS::DynamoDB::Table
      DeletionPolicy: Retain
      Properties:
        TableName: ${self:provider.environment.DYNAMO_DB_LOOKUP_TABLE_NAME}
        AttributeDefinitions:
          - AttributeName: location
            AttributeType: S
          - AttributeName: lookup
            AttributeType: S
        KeySchema:
          - AttributeName: location
            KeyType: "HASH"
          - AttributeName: lookup
            KeyType: "RANGE"
        ProvisionedThroughput:
            ReadCapacityUnits: 1
            WriteCapacityUnits: 1

我们使用以下cli命令将其部署到开发阶段:

serverless deploy

这在lookups-devCloudFormtion中创建了一个堆栈,该堆栈称为DymanoDB表DB表,其名称为lookup-devlambdas,其名称为lookups-dev-createOrUpdateLookupsand lookups-dev-getLookup

现在,当尝试使用此cli命令部署到称为prod的新阶段时

serverless deploy --stage prod

我们收到一个错误消息,说明表lookups-dev已存在于具有lookups-dev堆栈的堆栈ID的堆栈中。

这是完整的错误:

发生错误:lookupTable-堆栈arn:aws:cloudformation:us-east-1:aaaaabbbbbbbccccccdddddd:stack / lookups-dev / wwwwwww-wwwwwww-wwwwwwaws中已经存在lookup_dev。

问题:当我们已经在开发阶段部署了应用程序时,如何将其部署到新阶段。

加雷斯·麦康斯基

发生的事情是,您需要确保表的名称在不同的阶段进行更改。我看到您习惯${self:provider.stage}尝试执行此操作,但所有操作都是使用provider部分下的stage值,并且因为您尚未设置,所以它使用了devalways的默认值我建议在提供程序下添加以下行,以便您具有以下内容:

provider:
  stage: ${opt:stage, 'dev'}

这意味着,如果您使用--stage在CLI上传递阶段,则会将provider.stage设置为该值或默认为dev。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将使用Sharp库的macOS的Serverless Framework应用程序部署到AWS?

来自分类Dev

使用Serverless在部署阶段(CodePipeline)将秘密传递给lambda吗?

来自分类Dev

serverless-appsync-plugin“管道”部署错误

来自分类Dev

将AWS Lambda与Aurora Serverless结合

来自分类Dev

如何将本地应用程序连接到AWS Aurora Serverless

来自分类Dev

如何将Serverless 0.X中的“项目”迁移到Serverless 1.0?

来自分类Dev

具有无服务器离线阶段的aws-serverless-express中断路由

来自分类Dev

启动AWS Serverless Framework无法安装入门示例

来自分类Dev

将“ AWS :: Lambda :: Function”转换为“ AWS :: Serverless :: Function”

来自分类Dev

如何将条件放入serverless.yml文件中?

来自分类Dev

如何在Serverless Framework的`serverless.yml`文件中获取URL端点详细信息作为变量?

来自分类Dev

AWS Serverless 资源从 v0.5 部署到 v1.0

来自分类Dev

如何将NODE_EXTRA_CA_CERTS的值传递给通过Serverless部署的AWS Lambda?

来自分类Dev

serverless-s3-sync仅将特定文件夹同步到s3

来自分类Dev

是否可以使用Serverless在两个区域中部署API Gateway和Lambda?

来自分类Dev

AWS Lambda + Angular Web应用抛出“错误:找不到模块'@ vendia / serverless-express'”

来自分类Dev

Java,for循环中的更新阶段

来自分类Dev

将CSV从S3加载到AWS RDS Aurora MySQL Serverless

来自分类Dev

如何将消息从js库发送到Azure SignalR Serverless中的组

来自分类Dev

Aurora Serverless的“停滞时间”

来自分类Dev

Zend:将应用程序设置为开发阶段

来自分类Dev

在“调用应用程序”阶段将inputText标记为无效

来自分类Dev

分阶段推广到100%时,应用程序不在开发者控制台上更新

来自分类Dev

扩展Java EE应用程序的阶段

来自分类Dev

使用GitHub Actions上的serverless-python-requirements插件下载依赖项会引发“找不到Python 3.7”

来自分类Dev

C ++如何将源代码生成的映射包括到应用程序中以进行预编译阶段

来自分类Dev

如何将应用程序更新部署到生产Spring / Hibernate应用程序?

来自分类Dev

AWS中的Cloudformation / Serverless与Terraform

来自分类Dev

将应用程序部署到Azure

Related 相关文章

  1. 1

    如何将使用Sharp库的macOS的Serverless Framework应用程序部署到AWS?

  2. 2

    使用Serverless在部署阶段(CodePipeline)将秘密传递给lambda吗?

  3. 3

    serverless-appsync-plugin“管道”部署错误

  4. 4

    将AWS Lambda与Aurora Serverless结合

  5. 5

    如何将本地应用程序连接到AWS Aurora Serverless

  6. 6

    如何将Serverless 0.X中的“项目”迁移到Serverless 1.0?

  7. 7

    具有无服务器离线阶段的aws-serverless-express中断路由

  8. 8

    启动AWS Serverless Framework无法安装入门示例

  9. 9

    将“ AWS :: Lambda :: Function”转换为“ AWS :: Serverless :: Function”

  10. 10

    如何将条件放入serverless.yml文件中?

  11. 11

    如何在Serverless Framework的`serverless.yml`文件中获取URL端点详细信息作为变量?

  12. 12

    AWS Serverless 资源从 v0.5 部署到 v1.0

  13. 13

    如何将NODE_EXTRA_CA_CERTS的值传递给通过Serverless部署的AWS Lambda?

  14. 14

    serverless-s3-sync仅将特定文件夹同步到s3

  15. 15

    是否可以使用Serverless在两个区域中部署API Gateway和Lambda?

  16. 16

    AWS Lambda + Angular Web应用抛出“错误:找不到模块'@ vendia / serverless-express'”

  17. 17

    Java,for循环中的更新阶段

  18. 18

    将CSV从S3加载到AWS RDS Aurora MySQL Serverless

  19. 19

    如何将消息从js库发送到Azure SignalR Serverless中的组

  20. 20

    Aurora Serverless的“停滞时间”

  21. 21

    Zend:将应用程序设置为开发阶段

  22. 22

    在“调用应用程序”阶段将inputText标记为无效

  23. 23

    分阶段推广到100%时,应用程序不在开发者控制台上更新

  24. 24

    扩展Java EE应用程序的阶段

  25. 25

    使用GitHub Actions上的serverless-python-requirements插件下载依赖项会引发“找不到Python 3.7”

  26. 26

    C ++如何将源代码生成的映射包括到应用程序中以进行预编译阶段

  27. 27

    如何将应用程序更新部署到生产Spring / Hibernate应用程序?

  28. 28

    AWS中的Cloudformation / Serverless与Terraform

  29. 29

    将应用程序部署到Azure

热门标签

归档