
# IaC Patch包典型目录结构
IaC Patch包用于描述环境中的一个组件。IaC Patch包典型目录结构如下：
表1IaC Patch包结构说明 
| 位置                                    | 类型  | 个数  | 描述                                                                                                 |
|:---|:---|:---|:---|
| iacpatch_{microservice}_{version}.zip | 文件  | 1   | IaC压缩包。                                                                                            |
| └── package.json                      | 文件  | 1   | 包描述文件，相关说明请参见[包描述文件介绍](https://support.huaweicloud.com/devg-appstage/appstage_06_0085.html)。       |
| └── global/                           | 文件夹 | 1   | 全局默认的IaC描述，包含完整文件结构，放置被所有规格目录所复用的配置文件。                                                             |
| │ └── resources.yaml                  | 文件  | 1   | 微服务资源列表，相关说明请参见[在IaC代码中声明资源](https://support.huaweicloud.com/devg-appstage/appstage_06_0035.html)。 |
| │ └── values.yaml                     | 文件  | 1   | 微服务资源参数值，在resources.yaml中通过$ref的方式来引用。                                                             |
| │ └── configs/                        | 文件夹 | 1   | 微服务配置目录。                                                                                           |
| │ └── config_schema.yaml              | 文件  | 1   | 声明微服务的业务配置项属性，敏感业务配置项需要声明，非敏感配置项可以不声明。在resources.yaml中通过$ref的方式来引用。                                |
| │ └── {cluster}_config_records.yaml   | 文件  | 0-N | 微服务的业务配置项，在resources.yaml中通过$ref的方式来引用。                                                            |
| └── specs/                            | 文件夹 | 1   | 环境特定的IaC描述，结构与global相同，但仅包含与global有差异的文件。                                                          |
| │ └── cn_product_cbu/                 | 文件夹 | 1   | 中国区生产环境，命名采用站点级Cloud Map的名称，可以在环境管理界面查看可选的站点级Cloud Map名称列表。                                        |
| │ └── values.yaml                     | 文件  | 0-1 | 微服务资源参数值。                                                                                          |
| │ └── configs/                        | 文件夹 | 0-1 | 微服务配置目录。                                                                                           |
| │ └── {cluster}_config_records.yaml   | 文件  | 0-N | 微服务的业务配置项。                                                                                         |
| │ └── aaa_product_cbu/                | 文件夹 | 1   | 亚非拉生产环境。                                                                                           |
| │ └── eu_product_cbu/                 | 文件夹 | 1   | 欧洲生产环境。                                                                                            |
   
IaC Patch包样例：
```
└── iacpatch_WiseEyeDeployConsoleService_1.1.2.zip
      ├── global/                                 # global目录：放置所有规格目录所复用的配置文件
      │    ├── config/                           # 微服务配置目录
      │    │    ├── config_records.yaml         
      │    │    └── config_schema.yaml
      │    ├── resources.yaml                    # 微服务的资源列表
      │    ├── packages.yaml
      │    └── values.yaml                       # 变量定义文件，被resources.yaml引用
      ├── specs/                                  # 环境特定的IaC描述，结构与global相同，但仅包含与global有差异的文件
      │    ├── eu_product_cbu/...                # 欧洲生产环境
      │    ├── aaa_product_cbu/...               # 亚非拉生产环境
      │    └── cn_product_cbu/                   # 中国区生产环境，命名采用站点级Cloud Map的名称，可以在环境管理界面查看可选的站点级Cloud Map名称列表
      │          ├── values.yaml                 # 变量定义文件，被resources.yaml引用
      │          └── config/                     # 微服务配置目录
      │                └── config_records.yaml   
      └── package.json                            # 包描述文件（必须）
```
