无服务器框架 - 如何将模块资源合并到云形成中

时间:2015-10-11 07:24:30

标签: amazon-web-services serverless-framework

我在将module/awsm.json合并到resources-cf.json时遇到问题。我尝试的任何东西都不会合并它们。这是我的步骤

  1. jaws project create
  2. cd new-project-name
  3. jaws module create greetings hello
  4. 修改greetings/awsm.json添加LambdaIamPolicyDocumentStatements和资源。与https://github.com/dekz/awsm-users/blob/master/awsm.json类似。
  5. " jaws deploy resources"不会更新云形成并产生 -

    JAWS: Resources Deployer  "dev": Deploying resources to region "us-west-2"...  
    JAWS: Resources Deployer  "dev - us-west-2":  Performing Cloudformation     stack update.  This could take a while depending on how many resources you     are updating...  
    JAWS: Resources Deployer  "dev - us-west-2":  Cloud formation stack update failed because of the following error...  
    { [ValidationError: No updates are to be performed.]
      cause: 
       { [ValidationError: No updates are to be performed.]
         message: 'No updates are to be performed.',
         code: 'ValidationError',
         time: Sun Oct 11 2015 00:13:53 GMT-0700 (MST),
         statusCode: 400,
         retryable: false,
         retryDelay: 30 },
      isOperational: true,
      code: 'ValidationError',
      time: Sun Oct 11 2015 00:13:53 GMT-0700 (MST),
      statusCode: 400,
      retryable: false,
      retryDelay: 30 }
    

    重新部署lambda和endpoint也不会更新云形成资源。

    将更改纳入resources-cf.json并将其应用于AWS的正确流程是什么?

2 个答案:

答案 0 :(得分:1)

目前,在1.3.3上,没有自动生成resources-cf.json的{​​{1}},正如我预期的那样。

来自Gitter channel

  awsm-module的资源部分可以在第一次安装时通过post安装步骤更新主文件cf文件,但现在就是这样。当您手动向模块添加更改时,目前没有工具可以执行相同的操作。现在,必须手动将这些更改移动到相应的resources-cf文件中。 JAWS的未来版本应该支持允许从存储在awsm-modules中的信息重建资源-ref文件的命令,因为有些人要求该功能。

答案 1 :(得分:0)

当我遇到类似的问题时,我遇到了这个问题。就我而言,设置区域和阶段已成功部署。

您确定没有将资源部署到不同的阶段和/或区域,这就是AWS为您提供验证错误的原因(即,在该区域/阶段,您的堆栈已经是最新的) ?

这是我跑的:

jaws deploy resources staging us-east-1

编辑我的cloudformation/staging/us-east-1/resources-cf.json文件后。

然后我通过AWS Web Console确认更改确实有效。