作者: | 来源:互联网 | 2023-09-01 14:04
当我使用 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)}
...
回答
我找到了根本原因 - 如果您希望部署无服务器框架应用程序,您必须使用与您在无服务器框架中注册的组织(组织)和应用程序名称(应用程序)完全相同的组织(组织)和应用程序名称(应用程序)。
要查找您当前的应用程序/组织名称,请更改它们或创建新的应用程序/组织登录到无服务器框架的仪表板帐户,https://app.serverless.com/
使用您用于部署的相同凭据,并确保您使用的是serverless.yaml
文件中的确切组织和应用程序:
org: orgname <---
app: appname <---
service: backend-rest
...
所以你不能只使用任意的 org/app 名称,你必须使用在 Serverless 框架中注册的确切 org/app。