一、前提条件
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 Cloud 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 的操作权限,此时,你的子账号应该拥有一个自定义策略和一个 QcloudSLSFullAccess 的预设策略,可以完成 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 Cloud Framework)全读写权限。 |
| QcloudCDNFullAccess | CDN(内容分发网络)全读写权限。 |
| QcloudCKafkaFullAccess | CKafka(消息队列 CKafka)全读写权限。 |
| QcloudCodingFullAccess | CODING DevOps 全读写访问权限。 |
| QcloudPostgreSQLFullAccess | 云数据库 PostgreSQL 全读写访问权限。 |
| QcloudCynosDBFullAccess | 云数据库 CynosDB 全读写访问权限。 |
| QcloudCLSFullAccess | 日志服务(CLS)全读写访问权限。 |
| QcloudAccessForscfRole | 该策略供 Serverless Cloud Framework(sls)服务角色(scf_QCSRole)进行关联,用于 SCF 一键体验功能访问其他云服务资源。包含访问管理(CAM)相关操作权限。 |
十二、关联步骤
1. 再次确认你的子账号已完成 QcloudCODINGFullAccess 策略的添加。
2. 使用子账号登录 CODING 控制台,选择 腾讯云子账号 登录。
3. 输入腾讯云子账号信息,并完成登录。
4. 单击 个人信息,选择 个人账户设置,单击 绑定设置,在第三方服务绑定-腾讯云中,完成子账号的关联,完成关联的页面展示如下:
注意:如使用子账号登录时,提示“你已被锁定,如需解锁请联系管理员”,请按照如下步骤解锁:
注意:1. 使用管理员账户登录,选择 团队设置中心 – 全局设置 – 成员管理 模块。
注意:2. 在成员列表中找到需解锁的团队成员,单击 更多,选择 解锁成员。
注意: