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: Allow 或 Effect: 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,部署完成后,就会出现如下所示:

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

3. 验证

相关文章
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容