Serverless 入门(八)- DynamoDB 数据库(下)

  • Serverless 入门(六)- DynamoDB 数据库(上)
  • Serverless 入门(七)- DynamoDB 数据库(中)

前两篇文章都在介绍如何在本地操作 DynamoDB,今天讲一讲如何配置线上数据库,然后如何将将项目部署到 AWS 服务器上。

1. 配置 serverless.yml

打开 serverless.yml 文件,添加如下配置:

provider:
  name: aws
  runtime: nodejs8.10
  stage: dev
  region: ap-northeast-2
  # 项目权限
  iamRoleStatements:
    - Effect: Allow
      Action:
        - dynamodb:* # 表的所有权限
      Resource: "*" # 所有区域和所有表的权限

访问 DynamoDB 需要凭证,这些凭证必须有权访问 AWS 资源,如 DynamoDB table 或 Elastic Compute Cloud (Amazon EC2) 实例。

1.1 iamRoleStatements

iamRoleStatements 表示 IAM 角色声明。什么是 IAM?它是 AWS Identity and Access Management (IAM) 的 Web 服务,可以使用 IAM 控制对哪个用户进行身份验证 (登录) 和授权 (具有权限) 以使用资源。

1.2 Effect

Effect 用来描述是否同意授权该配置,用法分别为:Effect: AllowEffect: Deny

1.3 Action

Action 下是一个数组结构,用来描述 dynamodb 的权限,例如:

- dynamodb:DescribeTable
- dynamodb:Query
- dynamodb:Scan
- dynamodb:GetItem
- dynamodb:PutItem
- dynamodb:UpdateItem
- dynamodb:DeleteItem

上面的描述等价于 - dynamodb:*

是不是只能描述 dynamodb 的权限呢? 答案是:NO

还能进行组合配置,如下所示:

- dynamodb:ListTables
- dynamodb:DescribeTable
- lambda:InvokeFunction
- cloudwatch:*
- s3:ListBucket
- s3:PutObject
- sns:*
1.4 Resource

Resource 值中的 Amazon 资源名称 (ARN) 指定了适用这些权限的表,如下所示:

- Resource: arn:aws:dynamodb:ap-northeast-2:account-id:table/Movies

该策略用于为针对 ap-northeast-2 区域中的Movies表(由 account-id 指定的 AWS 账户所有)的 DynamoDB 操作授予权限。account-id 一般是由数字组成,如:
arn:aws:dynamodb:ap-northeast-2:123456789012:table/Movies

如果想偷懒或测试用一下,可配置为:- Resource: arn:aws:dynamodb:ap-northeast-2:123456789012:*, 表示为 ap-northeast-2 地区所有的表有权限。

懒到家就直接: Resource: "*",表示对 AWS 所有地区所有表都有权限。

2. 部署项目

部署项目特别简单,只需执行:serverless deploy -v,部署完成后,就会出现如下所示:

Serverless 入门(八)- DynamoDB 数据库(下)_第1张图片

如果不想看详细的部署过程,可将 -v 去掉

3. 验证

Serverless 入门(八)- DynamoDB 数据库(下)_第2张图片
相关文章
  • Serverless 入门(一) - 创建 IAM https://www.jianshu.com/p/9fb731a799e2
  • Serverless 入门(二) - HelloWord https://www.jianshu.com/p/ddf2ffda5f63
  • Serverless 入门(三)- 初始项目解读 https://www.jianshu.com/p/8baba2a8fe9f
  • Serverless 入门(四)- 如何调试 https://www.jianshu.com/p/58d30915de8a
  • Serverless 入门(五)- 常用命令 https://www.jianshu.com/p/28f001ea9d9d
  • Serverless 入门(六)- DynamoDB 数据库(上) https://www.jianshu.com/p/c313b61d1cbf
  • Serverless 入门(七)- DynamoDB 数据库(中) https://www.jianshu.com/p/05e7f4ccd6fe
  • Serverless 入门(八)- DynamoDB 数据库(下) https://www.jianshu.com/p/0f9f1561ec46
  • Serverless 入门(九)- 权限 https://www.jianshu.com/p/97228749d761

你可能感兴趣的:(Serverless 入门(八)- DynamoDB 数据库(下))