管理Registry与工作空间

更新时间:
复制 MD 格式

Registry用于保存和版本化可复用的Terraform模块。将团队常用代码发布到工作空间后,可以在创建模板时选择指定的模块版本,也可以将自定义工作空间或模块共享给其他阿里云账号。

适用场景

本文适用于需要创建和维护自定义Terraform模块、跨账号复用模块,或使用Registry模块创建模板的场景。

前提条件

当前登录身份已具备管理Registry工作空间和模块所需的RAM权限。

了解Registry的组织结构

Registry按照工作空间、模块和模块版本三层结构组织Terraform代码:

  • 工作空间:模块的命名空间。工作空间名称全局唯一。

  • 模块:Terraform原生模块在工作空间中的管理对象。模块名称在所属工作空间下唯一。

  • 模块版本:模块代码的一次发布。版本号在所属模块下唯一,发布后不可修改。

Registry包含以下模块类型:

模块类型

来源

可执行的操作

官方模块

由平台维护

查看和引用

自定义模块

当前账号创建

编辑草稿、发布版本、共享和删除

共享模块

其他账号共享给当前账号

查看和引用

社区模块

平台从Terraform Registry同步

查看和引用

只有自定义模块支持编辑和发布版本。

说明

Registry模块与模板不是同一个对象。Registry模块是可被其他Terraform代码调用的代码单元;模板用于保存和版本化一份可供任务或资源栈使用的Terraform代码。模板可以选择Registry模块版本作为代码来源。

创建工作空间

发布自定义模块前,先创建用于组织模块的工作空间。

  1. 登录自动化服务台控制台

  2. 在左侧导航栏选择模块 > Registry

  3. 单击工作空间管理

  4. 单击新建工作空间

  5. 配置工作空间:

    • 工作空间名称:输入2~128个字符。仅支持字母、数字、下划线(_)和短划线(-)。名称全局唯一,创建后不能修改。不能使用iacserviceroslandingzoneprovidersourcenamemodulenamespacegithubaliyun

    • 工作空间描述:输入工作空间的用途,最多1024个字符。

    • 维护者:输入工作空间的负责人信息。

  6. 单击提交

创建成功后,工作空间类型显示为自定义工作空间。可以进入工作空间详情页创建模块。

创建和发布模块

自定义模块使用草稿保存未发布代码。发布版本时,系统复制当前草稿并解析模块信息。

创建模块

  1. 进入自定义工作空间详情页。

  2. 单击发布模块

  3. 配置模块:

    • 模块名称:输入2~128个字符。仅支持字母、数字、下划线(_)和短划线(-)。名称在所属工作空间下唯一,创建后不能修改。

    • 描述:输入模块用途,最多1024个字符。

  4. 单击提交

编辑草稿

进入模块详情页的模块管理页签,使用以下任一方式维护草稿:

  • 在线编辑:在代码编辑器中创建或修改文件,适用于少量代码修改。

  • 上传ZIP:上传包含完整模块代码的ZIP包,适用于导入本地项目中的模块。

草稿至少需要包含有效的Terraform配置。要在模块详情中展示使用说明,在模块根目录中添加README.md文件。

发布版本

  1. 在模块详情页选择版本管理页签。

  2. 单击发布版本

  3. 输入版本号。版本号必须采用主版本号.次版本号.修订号格式,例如1.0.02.3.1

  4. 单击提交

发布成功后,系统从模块代码中解析README、输入变量、输出值、资源和模块依赖。已发布版本不可修改;后续代码变更需要编辑草稿并发布新的版本号。

验证模块

模块发布后,使用该版本创建模板和任务,并执行Plan。确认Plan能够正常完成且资源变更符合预期后,再将模块提供给其他项目使用。

共享工作空间或模块

自定义工作空间和自定义模块支持共享给指定的阿里云账号。接收方只能查看和引用共享内容,不能编辑、发布版本或再次共享。

选择共享范围

根据需要选择以下共享范围:

  • 工作空间:接收方可以访问该工作空间中的全部模块和版本,也可以访问以后在该工作空间中新增的模块。

  • 模块:接收方只能访问指定模块及其全部版本。

不支持单独共享某个模块版本。

添加共享账号

  1. 进入自定义工作空间或自定义模块的详情页。

  2. 单击共享

  3. 输入一个或多个接收方阿里云账号ID。单次最多添加100个账号ID。

  4. 单击确定

共享生效后,接收方可以在Registry的共享模块列表中查看相应内容。

撤销共享

  1. 进入工作空间或模块的共享管理页面。

  2. 移除不再需要访问权限的账号ID。

  3. 保存修改。

撤销后,接收方不能再通过Registry查看或引用相应的工作空间或模块。已经基于共享模块生成的模板不受影响。

在模板中引用模块

创建模板时选择一个明确的模块版本。系统会将该版本的代码复制到模板中,后续发布的新模块版本不会自动改变已有模板。

  1. 在左侧导航栏选择模板 > 模板管理

  2. 单击新建模板

  3. 选择工作空间模块作为模板来源。

  4. 选择工作空间、模块和模块版本。

  5. 配置模板名称等信息,然后提交。

也可以在Registry中进入目标模块详情页,通过新建模板入口创建模板。

通过Registry模块创建的模板代码只读。要使用新的模块版本,需要在模板中更新来源版本,并确认模板生成的新版本。删除上游模块或模块版本不会影响已经生成的模板版本,但模板后续将无法再选择已删除的来源版本。

更新工作空间和模块

只能更新自定义工作空间和自定义模块:

  • 工作空间:可以更新描述,不能修改工作空间名称。

  • 模块:可以更新描述,不能修改所属工作空间或模块名称。

  • 模块代码:编辑草稿后发布新的模块版本。已发布版本不能修改。

删除工作空间、模块或版本

警告

删除操作不会检查模板是否仍在引用相应的模块版本。删除前确认不再需要使用该来源创建或更新模板。

可以删除当前账号创建的自定义工作空间、模块或模块版本。官方模块、社区模块和其他账号共享的模块不能删除。

  • 删除工作空间时,该工作空间中的自定义模块也会从Registry中删除。

  • 删除模块时,该模块及其全部版本会从Registry中删除。

  • 删除模块版本时,仅删除所选版本。

已经基于模块版本生成的模板保存独立的代码副本,可以继续执行。删除上游内容后,不能再使用被删除的工作空间、模块或版本创建新模板或更新模板来源。

使用限制

Registry存在以下限制:

  • 每个阿里云账号默认最多创建50个自定义工作空间。

  • 每个阿里云账号默认最多创建100个自定义模块。

  • 单次共享请求最多包含100个接收方账号ID。

  • 工作空间名称全局唯一;模块名称在所属工作空间下唯一。

  • 模块版本号仅支持x.y.z三段数字格式。

实际配额以控制台显示为准。达到配额后,可以在配额中心申请提升。