无服务器框架部署错误:您无权访问此资源

vla*_*irp 5 deployment amazon-web-services serverless-framework

当我使用 AWS 作为提供者部署我的无服务器框架项目时,我得到:

您无权访问此资源。- 请联系支持人员并提供此标识符以引用此问题 BLAHBLAH

我登录到无服务器框架 serverless login

我的 serverless.yaml:

org: vladimirorg
app: vladimirapp
service: backend-rest

provider:
  name: aws
  runtime: nodejs12.x
  apiGateway: {
    shouldStartNameWithService: true
  }

  environment:
    DYNAMODB_TABLE: ${self:service}-${opt:stage, self:provider.stage}
    DYNAMODB_LOCAL_PORT: 9000
  iamRoleStatements:
    - Effect: Allow
      Action:
        - dynamodb:Query
        - dynamodb:Scan
        - dynamodb:GetItem
        - dynamodb:PutItem
        - dynamodb:UpdateItem
        - dynamodb:DeleteItem
      Resource: "arn:aws:dynamodb:#{AWS::Region}:#{AWS::AccountId}:table/${self:provider.environment.DYNAMODB_TABLE}"

functions:
  create:
    handler: src/handlers/create.create
    events:
      - http:
          path: todos
          method: post
          cors: true
          request:
            schema:
              application/json: ${file(src/schemas/create.json)}
...
Run Code Online (Sandbox Code Playgroud)

vla*_*irp 6

我找到了根本原因 - 如果您希望部署无服务器框架应用程序,您必须使用与您在无服务器框架中注册的组织(组织)和应用程序名称(应用程序)完全相同的组织(组织)和应用程序名称(应用程序)。

要查找您当前的应用程序/组织名称,请更改它们或创建新的应用程序/组织登录到无服务器框架的仪表板帐户,https://app.serverless.com/使用您用于部署的相同凭据,并确保您使用的是serverless.yaml文件中的确切组织和应用程序:

org: orgname  <---
app: appname  <--- 
service: backend-rest
...

Run Code Online (Sandbox Code Playgroud)

所以你不能只使用任意的 org/app 名称,你必须使用在 Serverless 框架中注册的确切 org/app。


hax*_*nel 5

我必须将其删除org: <org>,以便它下次sls运行时再次询问我。