代码之家  ›  专栏  ›  技术社区  ›  Appu Mistri

ApiGatewayMethod<lambda name>Options-指定的资源标识符无效

  •  0
  • Appu Mistri  · 技术社区  · 4 年前

    我的无服务器。yml如下所示,它已经部署,但当我再次尝试部署以进行一些更改时,会出现以下错误 An error occurred: ApiGatewayMethod<lambda-name>Options - Invalid Resource identifier specified (Service: AmazonApiGateway; Status Code: 404; Error Code: NotFoundException

    无服务器框架版本:2.21.1

    service:
        name: meetup-registration-apis
    custom:
        webpack:
            webpackConfig: ./webpack.config.js
            includeModules: true
    plugins:
        - serverless-dotenv-plugin
        - serverless-offline
        - serverless-webpack
    
    provider:
        name: aws
        runtime: nodejs14.x
        apiGateway:
            minimumCompressionSize: 1024 # Enable gzip compression for responses > 1 KB
        environment:
            AWS_NODEJS_CONNECTION_REUSE_ENABLED: 1
            STORAGE_BUCKET: ${env:S_STORAGE}
        iamRoleStatements:
            - Effect: Allow
              Action:
                  - dynamodb:DescribeTable
                  - dynamodb:Query
                  - dynamodb:Scan
                  - dynamodb:GetItem
                  - dynamodb:PutItem
                  - dynamodb:UpdateItem
                  - dynamodb:DeleteItem
              Resource: *
    functions:
        registerAttendee:
            handler: src/handler.registerAttendee
            events:
                - http:
                      method: post
                      path: registerAttendee
                      cors: true
        getAttendees:
            handler: src/handler.getAttendees
            events:
                - http:
                      method: get
                      path: getAttendees
                      cors: true
    

    我不知道我错在哪里。任何帮助都将不胜感激。

    0 回复  |  直到 4 年前
        1
  •  1
  •   berenbums    4 年前

    您是否可以考虑升级无服务器框架的版本?版本2.21.1已有一年多的历史,使用的是最新版本( v3.7.5 截至2022年3月16日),我能够部署堆栈并进行更改,没有任何问题。

    但是,为了使其与v3兼容,我必须对模板进行以下更新:

    • 将服务定义更改为 service: meetup-registration-apis ,因为服务属性的对象表示法已弃用,从 v3.0.0
    • 将IAM语句中的星号置于引号中( Resource: '*' )
    • 将无服务器dotenv插件替换为 useDotenv: true 设置,在中引入 v3.0.0 。这是可选的,但v3引入了一些 changes 这对该插件产生了重大影响。

    如果更新不是一个选项,请您向已经部署的堆栈添加您正在尝试进行的更改(模板在之前/之后是什么样子的)?

    推荐文章