# 配置密钥信息

在Serverless Devs Tool中，您可以通过两种方法进行密钥信息的配置。

- [通过指令配置](#通过指令配置)
- [通过文件配置](#通过文件配置)
- [如何使用密钥信息](#如何使用密钥信息)
- [密钥信息使用顺序](#密钥信息使用顺序)

## 通过指令配置

Serverless Devs Tool提供了相对完整的多云账号配置能力，您可以配置包括阿里云、百度云、华为云、AWS、Google Cloud、Azure以及腾讯云等在内的多个云厂商的永久密钥。

> 配置的详细方法以及过程，您可以参考[config指令文档](../commands/config.md)

通过`s config add`指令，您可以添加云厂商账号信息。

目前本工具支持的全局配置厂商包括（按字母先后顺序排序）：

|  云厂商   | 英文名  | 简写  |
|  ----  | ----  |  ----  |
| 阿里云  | Alibaba Cloud |  alibaba |
| AWS  | AWS |  aws |
| Azure  | Azure |  azure |
| 百度云  | Baidu Cloud |  baidu |
| Google Cloud  | Google Cloud |  google |
| 华为云  | Huawei Cloud |  huawei |
| 腾讯云  | Tencent Cloud |  tencent |

### 交互式添加

当您输入`s config add`指令后，系统将会进入交互式添加页面，您此时可以选择一个云厂商进行交互式添加。

- 选择云厂商
    ![](https://images.serverlessfans.com/s-tool/zh/s-config-add.jpg)

- 按照要求输入对应参数
    ![](https://images.serverlessfans.com/s-tool/zh/s-config-add-select.jpg)

    > 这里需要额外注意，最后一个交互内容是别名，这个内容是一个选填内容，如果不填写则默认是`default`，理论上`云厂商+别名`的组合是唯一的。
- 最后系统会让您预览结果，并将输入存储到系统中
    ![](https://images.serverlessfans.com/s-tool/zh/s-config-add-select-result.jpg)

### 命令式添加

通过命令添加密钥信息，您可以更加简单、轻松、快速的配置账号密钥信息。以阿里云为例：

![](https://images.serverlessfans.com/s-tool/zh/s-config-add-direct.jpg)
 
针对不同云厂商，这里有不同的设置：

```
 alibaba: AccountID, AccessKeyID, AccessKeySecret
 aws: AccessKeyID, SecretAccessKey
 baidu: AccessKeyID, SecretAccessKey
 huawei: AccessKey, SecretKey
 tencent: AccountID, SecretID, SecretKey
```

## 通过文件配置

当然，在某些特殊的组件中，默认的Config指令可能没有办法满足您的诉求，此时您可以通过在当前项目目录下创建密钥文件的方法，来进行密钥的配置：

例如：

您可以在项目目录下创建`access.yaml`文件，配置密钥信息，您有一个项目目录：

```
|- Project
|   | - access.yaml    密钥配置文件
|   | - template.yaml  资源描述文件
|   | - 项目其他文件
```

您可以创建`access.yaml`配置密钥信息，例如：

```
# access.yaml

密钥信息名字1：
    Key1: Value1
    Key2: Value2

密钥信息名字2：
    Key1: Value1
    Key2: Value2
```

通过这种方法，您可以配置自定义密钥信息，当然您也可以通过这种方法，解决临时密钥信息配置问题。

## 如何使用密钥信息

使用密钥信息的方法很简单，您只需要在项目中填写好密钥的名字即可，例如在项目`MyTest1`中使用了`test`组件，此时配置密钥信息，只需要在`Provider`处指定云厂商（此处指定的是百度云），在`Access`中指定密钥别名即可：

```yaml
MyTest1:
  Component: test
  Provider: baidu
  Access: demo
  Properties:
    Region: 项目相关信息
```

> 如果您在设置的时候没有使用别名，`Access`处可以不填写，或者填写`default`

> 如果您需要使用当前项目的密钥信息，您可以直接使用密钥名称即可。

## 密钥信息使用顺序

当用户使用某云厂商之后，项目中存在临时密钥信息，全局中存在别名一致的密钥信息，系统使用策略如下：

![](https://images.serverlessfans.com/s-tool/zh/s-config-extend-sort.jpg)
