当前位置: 首页 > 知识库问答 >
问题:

由于未找到处理程序错误,无法部署aws sam堆栈

越昊穹
2023-03-14

使用sam在嵌套目录中部署带有处理程序的lambda时遇到问题。

我执行以下步骤:

>

  • 包装:

    sam包——模板。yaml——打包的输出模板文件。yaml--s3铲斗

    创建我在下一步中使用的packaged.yaml。

    部署:

    AWS部署模板文件 /Users/localuser/Do/learn-sam/dynamo-stream-lambda/packaged.yaml

    错误

    Failed to create the changeset: Waiter ChangeSetCreateComplete failed: Waiter encountered a terminal failure state Status: FAILED. Reason: Transform AWS::Serverless-2016-10-31 failed with: Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [PublishNewBark] is invalid. Missing required property 'Handler'.
    

    云信息/SAM模板

    AWSTemplateFormatVersion: '2010-09-09'
    Transform: 'AWS::Serverless-2016-10-31'
    
    Globals:
      Function:
        Runtime: nodejs8.10
        Timeout: 300
    
    Resources:
      PublishNewBark:
        Type: AWS::Serverless::Function
        FunctionName: publishNewBark
        CodeUri: .
        Handler: src/index.handler
        Role: "<ROLE_ARN>"
        Description: Reads from the DynamoDB Stream and publishes to an SNS topic
        Events:
          - ReceiveBark:
              Type: DynamoDB
              Stream: !GetAtt BarkTable.StreamArn
              StartingPosition: TRIM_HORIZON
              BatchSize: 1
    
    
      BarkTable:
        Type: AWS::DynamoDB::Table
        Properties:
          TableName: BarkTable
          KeySchema:
            - KeyType: HASH
              AttributeName: id
          AttributeDefinitions:
            - AttributeName: id
              AttributeType: S
          StreamSpecification:
            StreamViewType: NEW_AND_OLD_IMAGES
          ProvisionedThroughput:
            WriteCapacityUnits: 5
            ReadCapacityUnits: 5
    
      WooferTopic:
        Type: AWS::SNS::Topic
        Properties:
          DisplayName: wooferTopic
          TopicName: wooferTopic
          Subscription:
            - Endpoint: <my_email>
              Protocol: email
    

    目录结构

    root_directory/事件/(对于示例事件)策略/(对于使用CLI为lambda创建的IAM角色)src/index.jspackage.jsonnode_modulestemplate.yaml

    处理程序代码

    async function handler (event, context) {
      console.log(JSON.stringify(event, null, 2))
      return {}
    }
    
    module.exports = {handler}
    
  • 共有1个答案

    邢臻
    2023-03-14

    我相信您必须将除资源类型之外的所有内容都放在“属性”下。

    您的函数声明应该是:

    PublishNewBark:
        Type: AWS::Serverless::Function
        Properties:
            FunctionName: publishNewBark
            CodeUri: .
            Handler: src/index.handler
            Role: "<ROLE_ARN>"
            Description: Reads from the DynamoDB Stream and publishes to an SNS topic
            Events:
              - ReceiveBark:
                  Type: DynamoDB
                  Stream: !GetAtt BarkTable.StreamArn
                  StartingPosition: TRIM_HORIZON
                  BatchSize: 1
    
     类似资料:
    • 我试图为我的react本机应用程序部署一个云功能,当数据库中出现新节点时,它会向用户发送通知。为此,我使用了Expo的Push API,如下所示:https://docs . Expo . io/versions/v 32 . 0 . 0/guides/Push-notifications,并遵循以下教程:https://www.youtube.com/watch?v=R2D6J10fhA4 我已

    • 使用上述配置,我能够在localhost启动应用程序使用dev_appserver.py.它localhost:8080index.html静态文件夹内提供服务。然而,当我部署应用程序时,fooapp.appspot.com结果为404。我在日志中看到下面的消息。未找到处理程序引用的静态文件:静态/index.html

    • 在Tomcat服务器中部署代码后,我在浏览器中查看所有页面时都收到一条找不到的错误消息。 例如:- 未找到 /BOOKS/web/Index.html。 我在网络文件夹下有Index.html的文件。这是一个Spring-MVC框架应用程序。 下面是错误日志详细信息。 错误日志 请帮帮忙。

    • 截至昨天下午,我们的Javascript单元测试套件已经开始失败。在出现一系列“未找到模块”错误后,所有测试均未运行,webpack报告生成失败。这是我们的构建堆栈: 节点6.11.5(是的,我知道,非常古老)业力1.7.1 Webpack 2.2.1 React 15.6.2 我们使用Karma运行单元测试。大多数测试套件都涉及React,所以我们使用Webpack来构建一切。为此,我们导入我们

    • 我正在使用STS(eclipse插件)和maven开发Spring MVC应用程序。 为了创建这个项目,我按照STS向导创建了一个新的“Spring MVC项目”。之后,我向其他项目和库添加了一些依赖项。 但是,当我现在尝试将项目部署到STS的集成vFabric服务器时,我有时会遇到一个异常: 当发出“maven clean”,然后是“maven安装”并重新启动服务器时,有时不会引发异常,并且应用

    • 我正在使用css加载程序,出现以下错误: 错误/src/pages/home/index。未找到js 模块:错误:无法解析“/Users/jian/Documents/sina/webpack barbarrian test”中的“css加载程序” @/src/pages/home/index。js 2:0-20 @multi/webpack barbarian/node_模块/webpack开发