创建私有模块
功能介绍
创建私有模块(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 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
module_name |
是 |
String |
私有模块(private-module)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 |
module_version |
否 |
String |
模块的版本号。版本号必须遵循语义化版本号(Semantic Version),为用户自定义 |
module_description |
否 |
String |
私有模块(private-module)的描述。可用于客户识别被管理的私有模块。如果想要更新私有模块的描述,可以通过UpdatePrivateModuleMetadata API。 |
module_uri |
否 |
String |
模块(module)包的OBS地址。模块允许用户将可复用的代码编辑在一起供模块使用。 OBS地址支持同类型Region之间进行互相访问(Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region) 模块包只支持zip压缩包,文件需要以".zip"结尾。关于模块包的校验要求如下:
注意:
|
version_description |
否 |
String |
模块版本(module version)的描述。可用于客户识别并管理模块的版本。注意:模块版本为不可更新(immutable),即描述不可更新,如果需要更新,请删除后重建 |
响应参数
状态码: 201
参数 |
参数类型 |
描述 |
---|---|---|
module_id |
String |
私有模块(private-module)的唯一Id。 此Id由资源编排服务在生成模块的时候生成,为UUID。 由于私有模块名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有模块,删除,在重新创建一个同名私有模块。 对于团队并行开发,用户可能希望确保,当前我操作的私有模块就是我以为的那个,而不是其他队友删除后创建的同名私有模块。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有模块所对应的Id都不相同,更新不会影响Id。如果给予的module_id和当前模块的Id不一致,则返回400 |
状态码: 400
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
响应码 |
error_msg |
String |
响应消息 |
encoded_authorization_message |
String |
包含有关未经授权请求的信息。 |
details |
Array of Detail objects |
权限拒绝时服务返回的详细错误信息。 |
状态码: 401
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
响应码 |
error_msg |
String |
响应消息 |
encoded_authorization_message |
String |
包含有关未经授权请求的信息。 |
details |
Array of Detail objects |
权限拒绝时服务返回的详细错误信息。 |
状态码: 403
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
响应码 |
error_msg |
String |
响应消息 |
encoded_authorization_message |
String |
包含有关未经授权请求的信息。 |
details |
Array of Detail objects |
权限拒绝时服务返回的详细错误信息。 |
状态码: 409
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
响应码 |
error_msg |
String |
响应消息 |
encoded_authorization_message |
String |
包含有关未经授权请求的信息。 |
details |
Array of Detail objects |
权限拒绝时服务返回的详细错误信息。 |
状态码: 429
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
响应码 |
error_msg |
String |
响应消息 |
encoded_authorization_message |
String |
包含有关未经授权请求的信息。 |
details |
Array of Detail objects |
权限拒绝时服务返回的详细错误信息。 |
状态码: 500
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
响应码 |
error_msg |
String |
响应消息 |
encoded_authorization_message |
String |
包含有关未经授权请求的信息。 |
details |
Array of Detail objects |
权限拒绝时服务返回的详细错误信息。 |
请求示例
无
响应示例
无
状态码
状态码 |
描述 |
---|---|
201 |
创建成功 |
400 |
用户请求非法 |
401 |
用户身份认证失败 |
403 |
|
409 |
创建冲突,同名的模块已经存在 |
429 |
请求数量过多 |
500 |
服务器内部错误 |