创建私有模块
功能介绍
创建私有模块(CreatePrivateModule)
创建一个空的私有模块。如果用户给予了module_version与module_uri,则在创建私有模块的同时,在私有模块下创建一个私有模块版本。
- 
    
模块允许用户将可复用的代码编辑在一起供模块使用。
 - 
    
如果同名私有模块在当前账户中已经存在,则会返回失败。
 - 
    
版本号遵循语义化版本号(Semantic Version),为用户自定义。
 - 
    
资源编排服务只会对模块进行浅校验,如文件大小、是否可以解压、文件数量等。并不会深度校验,即不会做语法类校验。
 
以HCL格式的模板为例,模板中引用私有模块的语法如下:
module "my_hello_word_module" {
  source = "rf://rfs.{region_id}.myhuaweicloud.com/private/{domain_id}/{module_name}?version=={module_version}"
}
  以JSON格式的模板为例,模板中引用私有模块的语法如下:
{
  "module": {
    "my_hello_word_module": {
      "source": "rf://rfs.{region_id}.myhuaweicloud.com/private/{domain_id}/{module_name}?version=={module_version}"
    }
  }
}
  对应上述两个例子中的模块链接(source字段的内容)可以调用ShowPrivateModuleVersionMetadata返回的module_source字段中获取
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
URI
POST /v1/private-modules
请求参数
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        Client-Request-Id  | 
      
        是  | 
      
        String  | 
      
        用户指定的,对于此请求的唯一Id,用于定位某个请求,推荐使用UUID 最小长度:36 最大长度:128  | 
     
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        module_name  | 
      
        是  | 
      
        String  | 
      
        私有模块(private-module)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128  | 
     
| 
        module_version  | 
      
        否  | 
      
        String  | 
      
        模块的版本号。版本号必须遵循语义化版本号(Semantic Version),为用户自定义 最小长度:5 最大长度:128  | 
     
| 
        module_description  | 
      
        否  | 
      
        String  | 
      
        私有模块(private-module)的描述。可用于客户识别被管理的私有模块。如果想要更新私有模块的描述,可以通过UpdatePrivateModuleMetadata API。 最小长度:0 最大长度:1024  | 
     
| 
        module_uri  | 
      
        否  | 
      
        String  | 
      
        模块(module)包的OBS地址。模块允许用户将可复用的代码编辑在一起供模块使用。 OBS地址支持同类型Region之间进行互相访问(Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region) 模块包只支持zip压缩包,文件需要以".zip"结尾。关于模块包的校验要求如下: 
 注意: 
 最小长度:0 最大长度:2048  | 
     
| 
        version_description  | 
      
        否  | 
      
        String  | 
      
        模块版本(module version)的描述。可用于客户识别并管理模块的版本。注意:模块版本为不可更新(immutable),即描述不可更新,如果需要更新,请删除后重建 最小长度:0 最大长度:1024  | 
     
响应参数
状态码:201
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        module_id  | 
      
        String  | 
      
        私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名仅在同一时间下唯一,即允许用户先生成一个叫HelloWorld的私有模块,删除,再重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我以为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400 最小长度:36 最大长度:36  | 
     
状态码:400
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
| 
        details  | 
      
        Array of Detail objects  | 
      
        权限拒绝时服务返回的详细错误信息。  | 
     
状态码:401
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
| 
        details  | 
      
        Array of Detail objects  | 
      
        权限拒绝时服务返回的详细错误信息。  | 
     
状态码:403
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
| 
        details  | 
      
        Array of Detail objects  | 
      
        权限拒绝时服务返回的详细错误信息。  | 
     
状态码:409
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
| 
        details  | 
      
        Array of Detail objects  | 
      
        权限拒绝时服务返回的详细错误信息。  | 
     
状态码:429
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
| 
        details  | 
      
        Array of Detail objects  | 
      
        权限拒绝时服务返回的详细错误信息。  | 
     
状态码:500
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
| 
        details  | 
      
        Array of Detail objects  | 
      
        权限拒绝时服务返回的详细错误信息。  | 
     
请求示例
- 
    
创建一个空的私有模块
POST https://{endpoint}/v1/private-modules { "module_name" : "test-limit_vpc_resource-module" } - 
    
创建一个带有版本的私有模块
POST https://{endpoint}/v1/private-modules { "module_name" : "test-limit_vpc_resource-module", "module_version" : "1.0.0", "module_uri" : "https://integration-test.obs.{region}.huawei.com/mock_zip_template_for_module_service.zip" } 
响应示例
状态码:201
创建成功
{
  "module_id" : "fd0e12bc-a1a4-4cac-8cbe-b023c389736b"
}
 状态码
| 
        状态码  | 
      
        描述  | 
     
|---|---|
| 
        201  | 
      
        创建成功  | 
     
| 
        400  | 
      
        用户请求非法  | 
     
| 
        401  | 
      
        用户身份认证失败  | 
     
| 
        403  | 
      
       
  | 
     
| 
        409  | 
      
        创建冲突,同名的模块已经存在  | 
     
| 
        429  | 
      
        请求数量过多  | 
     
| 
        500  | 
      
        服务器内部错误  |