首页 > 解决方案 > 无服务器框架部署错误:您无权访问此资源

问题描述

当我使用 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)}
...

标签: amazon-web-servicesdeploymentserverless-framework

解决方案


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

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

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

因此,您不能只使用任意 org/app 名称,您必须使用在无服务器框架中注册的确切 org/app。


推荐阅读