一、前提条件
Serverless Cloud Framework 帮助你将项目快速部署到腾讯云 Serverless 应用中心,因此在部署前,请确认你已经 注册腾讯云账号 并完成 实名认证。
二、扫码一键授权
通过 scf deploy 进行部署时,你可以通过扫描二维码,一键授权并快速部署,详细步骤请参见 部署函数,扫码授权后,会生成临时密钥信息(过期时间为 60 分钟)写入当前目录下的 .env 文件中:
TENCENT_APP_ID=xxxxxx #授权账号的 AppIdTENCENT_SECRET_ID=xxxxxx #授权账号的 SecretIdTENCENT_SECRET_KEY=xxxxxx #授权账号的 SecretKeyTENCENT_TOKEN=xxxxx #临时 token
一键授权时获取的权限详情请参见 scf_QcsRole 角色权限列表。
注意:如果你的账号为腾讯云子账号,扫码部署前需要主账号先进行策略授权配置。配置详情请参见 子账号权限配置。
三、本地密钥授权
为了避免扫码授权过期进行重复授权,你可以采用密钥授权方式。在部署的根目录下创建 .env 文件,并配置腾讯云的 SecretId 和 SecretKey 信息:
# .envTENCENT_SECRET_ID=xxxxxxxxxx #你账号的 SecretIdTENCENT_SECRET_KEY=xxxxxxxx #你账号的 SecretKey
SecretId 和 SecretKey 可以在 API 密钥管理 中获取 。
注意:为了账号安全性,密钥授权时建议使用子账号密钥。子账号必须先被授予相关权限才能进行部署。配置详情请参见 子账号权限配置。
四、永久密钥配置
通过 scf credentials 指令,可以快速设置全局密钥信息永久保存。该指令必须在已经创建好的 scf 项目下进行配置,请确保你已经通过 scf init 或已经手动创建好你的带有 serverless.yml 的项目。
·全部指令参考如下:
scf credentials 管理全局用户授权信息 set 存储用户授权信息 –secretId / -i (必填)腾讯云 CAM 账号 secretId –secretKey / -k (必填)腾讯云 CAM 账号 secretKey –profile / -n {name} 授权名称,默认为 "default" –overwrite / -o 覆写已有授权名称的密钥 remove 移除用户授权信息 –profile / -n {name} (必填)授权名称 list 查看用户授权信息
·配置全局授权信息:
# 通过默认 profile 名称配置授权信息$ scf credentials set –secretId xxx –secretKey xxx# 通过指定 profile 名称配置授权信息$ scf credentials set –secretId xxx –secretKey xxx –profile profileName1# 更新指定 profile 名称里的授权信息$ scf credentials set –secretId xxx –secretKey xxx –profile profileName1 –overwrite
·删除全局授权信息:
$ scf credentials remove –profile profileName1
·查看当前所有授权信息:
$ scf credentials list
·通过全局授权信息部署:
# 通过默认 profile 部署$ scf deploy# 通过指定 profile 部署$ scf deploy –profile newP# 忽略全局变量,扫码部署$ scf deploy –login
五、配置步骤
如果你的操作账号为腾讯云子账号,没有默认操作权限,则需要主账号(或拥有授权操作的子账号)进行如下授权操作:
1. 在 CAM 用户列表 页,选取对应子账号,单击授权。
2. 在弹出的窗口内,搜索并选中 QcloudSLSFullAccess,单击确定,完成授予子账号 Serverless Framework 所有资源的操作权限。
3. 在 CAM 用户列表 页,选取对应子账号,单击用户名称,进入用户详情页。
4. 单击关联策略,在添加策略页面单击从策略列表中选取策略关联 > 新建自定义策略。
关联策略页面:
新建策略页面:
5. 选择按策略语法创建 > 空白模板,填入如下内容,注意角色参数替换为你的主账号 UIN:
{ "version": "2.0", "statement": [ { "action": [ "cam:PassRole" ], "resource": [ "qcs::cam::uin/${填入账号的 uin}:roleName/scf_QcsRole" ], "effect": "allow" }, { "resource": [ "*" ], "action": [ "name/sts:AssumeRole" ], "effect": "allow" } ]}
6. 完成自定义策略配置后,回到第 4 步的授权页面,搜索刚刚创建的自定义策略,单击下一步> 确定,即可授予子账号 scf_QcsRole 的操作权限,此时,你的子账号应该拥有一个自定义策略和一个 QcloudscfFullAccess 的预设策略,可以完成 Serverless Framework 的正常使用。
注意:除了授权调用默认角色 scf_QcsRole 外,也可给子账号授权调用自定义角色。通过自定义角色中的细粒度权限策略,达到权限收缩的目的。详情请参见 指定操作角色配置。
六、scf_QcsRole 角色权限列表
| 策略 | 描述 |
| QcloudCOSFullAccess | COS(对象存储)全读写访问权限 |
| QcloudSCFFullAccess | SCF(云函数)全读写权限 |
| QcloudSSLFullAccess | SSL 证书(SSL)全读写访问权限 |
| QcloudTCBFullAccess | TCB(云开发)全读写权限 |
| QcloudAPIGWFullAccess | APIGW(API 网关)全读写权限 |
| QcloudVPCFullAccess | VPC(私有网络)全读写权限 |
| QcloudMonitorFullAccess | Monitor(腾讯云可观测平台)全读写权限 |
| QcloudslsFullAccess | sls(Serverless Framework)全读写权限 |
| QcloudCDNFullAccess | CDN(内容分发网络)全读写权限 |
| QcloudCKafkaFullAccess | CKafka(消息队列 CKafka)全读写权限 |
| QcloudCodingFullAccess | CODING DevOps 全读写访问权限 |
| QcloudPostgreSQLFullAccess | 云数据库 PostgreSQL 全读写访问权限 |
| QcloudCynosDBFullAccess | 云数据库 CynosDB 全读写访问权限 |
| QcloudCLSFullAccess | 日志服务(CLS)全读写访问权限 |
| QcloudAccessForscfRole | 该策略供 Serverless Framework(sls)服务角色(scf_QCSRole)进行关联,用于 scf 一键体验功能访问其他云服务资源。包含访问管理(CAM)相关操作权限 |