Skip to content

Latest commit

 

History

History
269 lines (207 loc) · 20.9 KB

alias.md

File metadata and controls

269 lines (207 loc) · 20.9 KB
title description position category
别名 alias
别名 alias
2
发布&配置

Alias 命令

alias 命令是对函数别名操作的命令;主要包括别名的查看、发布、修改、删除等功能。

命令解析

当执行命令alias -h/alias --help时,可以获取帮助文档。

在该命令中,包括了四个子命令:

alias get 命令

alias get 命令,是获取服务指定别名详情的命令。

当执行命令alias get -h/alias get --help时,可以获取帮助文档。

参数解析

参数全称 参数缩写 Yaml 模式下必填 Cli 模式下必填 参数含义
region - 选填 必填 地区,取值范围:cn-hangzhou, cn-beijing, cn-beijing, cn-hangzhou, cn-shanghai, cn-qingdao, cn-zhangjiakou, cn-huhehaote, cn-shenzhen, cn-chengdu, cn-hongkong, ap-southeast-1, ap-southeast-2, ap-southeast-3, ap-southeast-5, ap-northeast-1, eu-central-1, eu-west-1, us-west-1, us-east-1, ap-south-1
service-name - 选填 必填 服务名
alias-name - 必填 必填 别名

当前命令还支持部分全局参数(例如-a/--access, --debug等),详情可参考 Serverless Devs 全局参数文档

操作案例

  • 有资源描述文件(Yaml)时,可以直接执行s alias get --alias-name aliasName进行指定的别名详情获取;
  • 纯命令行形式(在没有资源描述 Yaml 文件时),需要指定服务所在地区以及服务名称,例如s cli fc alias get --region cn-hangzhou --service-name fc-deploy-service --alias-name pre

上述命令的执行结果示例:

fc-deploy-test:
  aliasName:               pre
  versionId:               1
  description:             test publish version
  additionalVersionWeight:
  createdTime:             2021-11-08T06:51:36Z
  lastModifiedTime:        2021-11-08T06:54:02Z

alias list 命令

alias list 命令,是进列举别名列表的命令。

当执行命令alias list -h/alias list --help时,可以获取帮助文档。

参数解析

参数全称 参数缩写 Yaml 模式下必填 Cli 模式下必填 参数含义
region - 选填 必填 地区,取值范围:cn-hangzhou, cn-beijing, cn-beijing, cn-hangzhou, cn-shanghai, cn-qingdao, cn-zhangjiakou, cn-huhehaote, cn-shenzhen, cn-chengdu, cn-hongkong, ap-southeast-1, ap-southeast-2, ap-southeast-3, ap-southeast-5, ap-northeast-1, eu-central-1, eu-west-1, us-west-1, us-east-1, ap-south-1
service-name - 选填 必填 服务名
table - 选填 选填 是否以表格形式输出

当前命令还支持部分全局参数(例如-a/--access, --debug等),详情可参考 Serverless Devs 全局参数文档

操作案例

  • 有资源描述文件(Yaml)时,可以直接执行s alias list获取别名列表;
  • 纯命令行形式(在没有资源描述 Yaml 文件时),需要指定服务所在地区以及服务名称,例如s cli fc alias list --region cn-hangzhou --service-name fc-deploy-service

上述命令的执行结果示例:

fc-deploy-test:
  -
    aliasName:               pre
    versionId:               1
    description:             test publish version
    additionalVersionWeight:
    createdTime:             2021-11-08T06:51:36Z
    lastModifiedTime:        2021-11-08T06:54:02Z

如果指定了--table参数,输出示例:

  ┌───────────┬───────────┬──────────────────────┬──────────────────────┬──────────────────────┬─────────────────────────┐
  │ aliasName │ versionId │     description      │     createdTime      │   lastModifiedTime   │ additionalVersionWeight │
  ├───────────┼───────────┼──────────────────────┼──────────────────────┼──────────────────────┼─────────────────────────┤
  │ pre       │ 1         │ test publish version │ 2021-11-08T06:51:36Z │ 2021-11-08T06:54:02Z │                         │
  └───────────┴───────────┴──────────────────────┴──────────────────────┴──────────────────────┴─────────────────────────┘

alias publish 命令

alias publish 命令,是对别名进行发布和更新的命令。

当执行命令alias publish -h/alias publish --help时,可以获取帮助文档。

参数解析

参数全称 参数缩写 Yaml 模式下必填 Cli 模式下必填 参数含义
region - 选填 必填 地区,取值范围:cn-hangzhou, cn-beijing, cn-beijing, cn-hangzhou, cn-shanghai, cn-qingdao, cn-zhangjiakou, cn-huhehaote, cn-shenzhen, cn-chengdu, cn-hongkong, ap-southeast-1, ap-southeast-2, ap-southeast-3, ap-southeast-5, ap-northeast-1, eu-central-1, eu-west-1, us-west-1, us-east-1, ap-south-1
service-name - 选填 必填 服务名
description - 选填 选填 别名描述
alias-name - 必填 必填 别名
gversion - 选填 选填 灰度版本 Id。灰度版本权重填写时必填
version-id - 选填 选填 版本 Id。如果指定 version-id 和 version-latest,则会出现交互选择指定哪个版本
version-latest - 选填 选填 绑定当前服务最新的版本,优先级低于 version-id
weight - 选填 选填 灰度版本权重。灰度版本 Id 填写时必填
resolve-policy - 选填 选填 灰度方式。取值如下:Random:随机灰度,为默认值。Content:规则灰度。
route-policy - 选填 选填 灰度规则。满足灰度规则条件的流量,会被路由至灰度实例。查看更多

当前命令还支持部分全局参数(例如-a/--access, --debug等),详情可参考 Serverless Devs 全局参数文档

操作案例

  • 有资源描述文件(Yaml)时,可以直接执行s alias publish进行版本的发布或者更新;
  • 纯命令行形式(在没有资源描述 Yaml 文件时),需要指定服务所在地区以及服务名称,例如 s cli fc alias publish --region cn-hangzhou --service-name fc-deploy-service --alias-name pre --version-id 1

上述命令的执行结果示例:

fc-deploy-test:
  aliasName:               pre
  versionId:               1
  description:
  additionalVersionWeight:
  createdTime:             2021-11-08T06:51:36Z
  lastModifiedTime:        2021-11-08T06:51:36Z

如果需要对别名进行升级,只需要指定别名之后,进行相对应的参数更新,例如针对上述的pre别名,指定--description参数后再次执行上述命令,执行示例:

fc-deploy-test:
  aliasName:               pre
  versionId:               1
  description:             test publish version
  additionalVersionWeight:
  createdTime:             2021-11-08T06:51:36Z
  lastModifiedTime:        2021-11-08T06:54:02Z

如果指定规则灰度,执行命令 s alias publish --alias-name pre --version-id 1 --gversion 2 --route-policy '{"policyItems":[{"type":"Param","value":"2","Key":"test","operator":"="}],"condition":"AND"}';可以跳转更详细的学习视屏

Publish 主版本获取逻辑

  • 指定 version-id:直接使用指定的 version-id
  • 未指定 version-id,但是指定了 version-latest:获取版本列表,取下标 0 的版本号(版本列表默认倒序,下标 0 就是最大的版本号)
  • 未指定 version-id 和 version-latest:获取版本列表,如果仅有一个版本直接使用此版本号;如果是多个版本,那么会产生交互让用户选择

alias rollback 命令

alias rollback 命令,是对指定别名的版本进行回退的命令。

当执行命令alias rollback -h/alias rollback --help时,可以获取帮助文档。

参数解析

参数全称 参数缩写 Yaml 模式下必填 Cli 模式下必填 参数含义
region - 选填 必填 地区,取值范围:cn-hangzhou, cn-beijing, cn-beijing, cn-hangzhou, cn-shanghai, cn-qingdao, cn-zhangjiakou, cn-huhehaote, cn-shenzhen, cn-chengdu, cn-hongkong, ap-southeast-1, ap-southeast-2, ap-southeast-3, ap-southeast-5, ap-northeast-1, eu-central-1, eu-west-1, us-west-1, us-east-1, ap-south-1
service-name - 选填 必填 服务名
description - 选填 选填 别名描述
alias-name - 必填 必填 别名。需要是已发布的别名。
version-id - 选填 选填 版本 Id。三种形式:1. 指定 version-id; 2. 使用HEAD^^形式,如:HEAD^表示回退到上一个版本,HEAD^^表示回退到上上一个版本,以此类推;3. 使用HEAD~数字形式,如:HEAD~1表示回退到上一个版本,HEAD~2表示回退到上上一个版本
gversion - 选填 选填 灰度版本 Id。灰度版本权重填写时必填
weight - 选填 选填 灰度版本权重。灰度版本 Id 填写时必填

当前命令还支持部分全局参数(例如-a/--access, --debug等),详情可参考 Serverless Devs 全局参数文档

操作案例

  • 有资源描述文件(Yaml)时,可以直接执行s alias rollback进行指定别名的版本回退;
  • 纯命令行形式(在没有资源描述 Yaml 文件时),需要指定服务所在地区以及服务名称,例如 s cli fc alias rollback --region cn-hangzhou --service-name fc-deploy-service --alias-name pre --version-id 1
  1. 执行s version list查看版本列表:
  -
    versionId:        6
    description:
    createdTime:      2022-07-02T01:53:02Z
    lastModifiedTime: 2022-07-02T01:53:02Z
  -
    versionId:        4
    description:
    createdTime:      2022-06-27T12:30:35Z
    lastModifiedTime: 2022-06-27T12:30:35Z
  -
    versionId:        3
    description:
    createdTime:      2022-06-27T11:41:50Z
    lastModifiedTime: 2022-06-27T11:41:50Z
  -
    versionId:        1
    description:
    createdTime:      2022-06-25T04:09:04Z
    lastModifiedTime: 2022-06-25T04:09:04Z
  1. 执行s alias list查看别名列表:
  -
    aliasName:               test1
    versionId:               6
    description:
    additionalVersionWeight:
    createdTime:             2022-06-25T04:10:26Z
    lastModifiedTime:        2022-07-02T08:38:22Z
  1. 执行s alias rollback --alias-name test1 --version-id HEAD^^,将 test1 回退到上上个版本,查看别名 test1 的详情:
  aliasName:               test1
  versionId:               3
  description:
  additionalVersionWeight:
  createdTime:             2022-06-25T04:10:26Z
  lastModifiedTime:        2022-07-02T08:47:46Z

权限与策略说明

  • alias listalias get 命令所需要的权限策略: AliyunFCReadOnlyAccess

  • alias publish 命令所需要的权限策略:

    {
      'Version': '1',
      'Statement':
        [
          {
            'Action': ['fc:CreateAlias', 'fc:UpdateAlias'],
            'Effect': 'Allow',
            'Resource': 'acs:fc:<region>:<account-id>:services/<serviceName>/aliases/*',
          },
        ],
    }