Config 命令

config命令是密钥信息相关的命令,包括密钥的配置、密钥的查看以及密钥的修改、删除等。

命令解析

当执行s config -h之后,可以进行相关帮助信息的查看:

Usage: s config [commands] [options]

Configure venders account, including Alibaba Cloud, Baidu Cloud, Huawei Cloud, Tencent Cloud, etc.

📖 Document: https://github.com/Serverless-Devs/Serverless-Devs/tree/master/docs/zh/command/config.md

Options:
  -h, --help  Display help for command

Commands:
  add         ➕ Add an account
  get         ✔️ Get accounts
  delete      ✖️ Delete an account

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

config add 命令

通过config add命令,可以进行密钥的配置,使用者可以通过不同厂商的默认密钥模板进行密钥配置,也可以通过Custom选项进行自定义密钥配置。

通过-h/--help可以查看到配置帮助:

Usage: s config add [commands] [name]

You can add an account

    Example:
        $ s config add
        $ s config add --AccessKey ****** --SecretKey ******
        $ s config add --AccessKeyID ****** --AccessKeySecret ****** --AccountID ****** --SecurityToken ******
        $ s config add --keyList key1,key2,key3 --valueList value1,value2,value3

    Configuration parameters template for vendors:
        alibaba: AccountID, AccessKeyID, AccessKeySecret
        aws: AccessKeyID, SecretAccessKey
        baidu: AccessKeyID, SecretAccessKey
        huawei: AccessKey, SecretKey
        google: PrivateKeyData
        tencent: AccountID, SecretID, SecretKey

🧭 How to get the key: https://github.com/Serverless-Devs/docs/tree/master/zh/others/provider-config

Options:
  --AccountID [AccountID]              AccountID of key information
  --AccessKeyID [AccessKeyID]          AccessKeyID of key information
  --AccessKeySecret [AccessKeySecret]  AccessKeySecret of key information
  --SecurityToken [SecurityToken]      SecurityToken of key information
  --SecretAccessKey [SecretAccessKey]  SecretAccessKey of key information
  --AccessKey [AccessKey]              AccessKey of key information
  --SecretKey [SecretKey]              SecretKey of key information
  --SecretID [SecretID]                SecretID of key information
  --PrivateKeyData [PrivateKeyData]    PrivateKeyData of key information
  -kl , --keyList [keyList]            Keys of key information, like: -kl key1,key2,key3
  -il , --infoList [infoList]          Values of key information, like: -il info1,info2,info3
  -a, --access [aliasName]             Key pair alias, if the alias is not set, use default instead
  -f                                   Mandatory overwrite key information
  -h, --help                           Display help for command

参数解析

参数全称参数缩写是否必填参数含义
AccountID-选填部分云厂商配置密钥所需要的默认字段
AccessKeyID-选填部分云厂商配置密钥所需要的默认字段
AccessKeySecret-选填部分云厂商配置密钥所需要的默认字段
SecurityToken-选填部分云厂商配置密钥所需要的默认字段
SecretAccessKey-选填部分云厂商配置密钥所需要的默认字段
AccessKey-选填部分云厂商配置密钥所需要的默认字段
SecretKey-选填部分云厂商配置密钥所需要的默认字段
SecretID-选填部分云厂商配置密钥所需要的默认字段
PrivateKeyData-选填部分云厂商配置密钥所需要的默认字段
keyListkl选填在默认字段无法满足配置诉求时,可以通过keyListinfoList进行批量自定义配置
infoListil选填在默认字段无法满足配置诉求时,可以通过``keyListinfoList`进行批量自定义配置
accessa选填密钥的别名
f-选填强制修改/覆盖已经配置的密钥信息

操作案例

可以通过config add直接进行密钥的添加:

$ s config add 

? Please select a provider: (Use arrow keys)
❯ Alibaba Cloud (alibaba) 
  AWS (aws) 
  Azure (azure) 
  Baidu Cloud (baidu) 
  Google Cloud (google) 
  Huawei Cloud (huawei) 
  Tencent Cloud (tencent) 
  Custom (others) 

当使用者选择某个选项之后,系统会进行交互式引导:

s config add 

? Please select a provider: Alibaba Cloud (alibaba)
? AccessKeyID **********
? AccessKeySecret **********
? Please create alias for key pair. If not, please enter to skip default

也可以通过命令式直接进行密钥的添加:

$ s config add --AccessKeyID ****** --AccessKeySecret ****** 

或者添加自定义内容:

$ s config add -kl key1,key2,key3 -il info1,info2,info3
  • 常见云厂商密钥配置内容
alibaba:    AccountID, AccessKeyID, AccessKeySecret,
aws:        AccessKeyID, SecretAccessKey,
baidu:      AccessKeyID, SecretAccessKey,
huawei:     AccessKeyID, SecretAccessKey,
azure:      KeyVaultName, TenantID, ClientID, ClientSecret,
tencent:    AccountID, SecretID, SecretKey,
google:     PrivateKeyData
  • 通过环境变量获取密钥方法: 这一部分可能会根据不同的文档有不同的可能性,所以需要参考对应的文档进行环境变量对应的Key-Value确定。
  • 常见云厂商密钥获取地址:

config get 命令

通过config get命令,您可以获得配置过的账号信息。

通过-h/--help可以查看到配置帮助:

$ s config get -h

Usage: s config get [options] [name]

You can get accounts.
 
     Example:
        $ s config get
        $ s config get -a demo
 

Options:
  -a, --access [aliasName]  Key pair alia, if the alias is not set, use default instead
  -h, --help                Display help for command

参数解析

参数全称参数缩写是否必填参数含义
accessa选填密钥的别名

操作案例

如果想要获取某个已经配置的密钥详情,可以通过config get进行获取,例如,想要获取别名为test的密钥信息,就可以执行:

$ s config get -a test
test:
  AccountID: 146**********468
  AccessKeyID: LTA******************f5Q
  AccessKeySecret: qDN************************Xp7

如果想获得全部的一配置的密钥信息,可以直接通过config get不加参数的形式获取:

$ s config get
default:
  AccountID: 158**********465
  AccessKeyID: LTA******************ZCW
  AccessKeySecret: mDL************************odO
test:
  AccountID: 146**********468
  AccessKeyID: LTA******************f5Q
  AccessKeySecret: qDN************************Xp7
release:
  AccountID: 176**********635
  AccessKeyID: LTA******************Yy3
  AccessKeySecret: LhT************************VB5

config delete 命令

通过config delete命令,您可以删除配置过的账号信息。

通过-h/--help可以查看到配置帮助:

$ s config delete -h

Usage: s config delete [options] [name]

You can delete an account.

     Example:
        $ s config delete -a demo


Options:
  -a, --access [aliasName]  Key pair alias, if the alias is not set, use default instead
  -h,--help                 Display help for command

参数解析

参数全称参数缩写是否必填参数含义
accessa必填密钥的别名

操作案例

如果想要删除某个已经配置的密钥,可以通过config delete进行删除,例如,想要删除别名为test的密钥信息,就可以执行:

$ s config delete -a test
Key [test] has been successfully removed

注意事项

通过环境变量设置密钥

详情可以参考:开发者工具设计文档 中的 通过环境变量设置密钥

关于配置密钥的使用顺序

详情可以参考:开发者工具设计文档 中的 密钥使用顺序与规范

在 GitHub 上编辑本页面 更新时间: Thu, May 19, 2022