作为云管理员,您可以在 Automation Assembler 中使用自定义命名分配帮助程序为资源生成自定义名称。您可以对任何资源类型使用自定义命名分配帮助程序。

Automation Assembler 中定义自定义命名模板后,可以使用自定义命名分配帮助程序在设计画布中引用自定义命名模板。有关详细信息,请参见自定义资源命名

以下用例展示了如何对通用资源类型和计算机资源类型使用自定义命名分配帮助程序。通用资源类型涵盖所有可能的资源,并专门链接到自定义命名分配帮助程序。

注:

创建具有通用资源类型的自定义命名模板时,必须使用自定义命名分配帮助程序为资源生成自定义名称。如果不添加分配帮助程序,将不会为资源生成名称。

有关分配和分配帮助程序的详细信息,请参见 Automation Assembler 中基于插件的设计和部署

开始之前

必须先设置云帐户并构建资源基础架构,然后才能使用分配帮助程序。有关详细信息,请参见添加云帐户构建资源基础架构

创建通用命名模板

您必须创建自定义命名模板才能使用自定义命名分配帮助程序。在此示例中,将为部署创建通用、组织级别命名模板。默认情况下,组织级别的命名模板将应用于所有部署。

您还可以创建项目级别的命名模板。有关详细信息,请参见自定义资源命名

要创建组织级别的命名模板,请执行以下操作:

  1. 选择基础架构 > 管理 > 自定义名称,然后单击新建自定义名称
  2. 输入自定义命名模板的名称和描述。
  3. 选择组织作为范围。
  4. 单击新建命名模板并配置以下选项。
    选项
    资源类型 通用
    模板名称 my-custom template

    模板名称是用户定义的字符串,用作给定模板的标识符。

    如果资源类型为通用,则必须指定模板名称。

    如果选择计算机作为资源类型,则无需引用模板名称,因为每个项目只能创建一个计算机类型的模板。

    模板格式 resource-${#####}
    起始计数器值 1
    增量步骤 1

    通过此配置,已分配项目中的部署将从此起点递增。

    在此示例中,起始计数器为 1,增量为 1,第一个部署编号为 2。如果部署需要从 1 开始,则将起始计数器设置为零,并将增量步骤设置为 1。

  5. 单击添加
  6. 如果需要,请添加其他自定义命名模板。
  7. 单击创建

以下部分包含一些使用自定义命名分配帮助程序的模板示例。

使用通用模板置备资源

以下云模板展示了如何使用通用类型的模板为基于插件的 AWS EC2 实例生成名称。在此示例中,必须引用模板的名称 my-custom-template

formatVersion: 1
inputs: {}
resources:
  Allocations_CustomNaming_1:
    type: Allocations.CustomNaming
    properties:
      resourceType: Generic 
      templateName: my-custom-template
      numberOfNamesToGenerate: 1
  Idem_AWS_EC2_INSTANCE_2:
    type: Idem.AWS.EC2.INSTANCE
    properties:
      name: ${resource.Allocations_CustomNaming_1.selectedNames[0]} # an array of generated custom names
      region: us-west-2
      account: aws
      availability_zone: us-west-2b
      image_id: ami-022e8df2148a65830
      instance_type: t2.nano

使用计算机模板置备资源

以下模板展示了如何使用计算机类型的模板为 AWS EC2 实例生成自定义命名。您无需指定模板的名称,因为每个项目只能创建一个计算机模板。

formatVersion: 1
inputs: {}
resources:
  Allocations_CustomNaming_1:
    type: Allocations.CustomNaming
    properties:
      resourceType: Machine
      numberOfNamesToGenerate: 1
  Idem_AWS_EC2_INSTANCE_2:
    type: Idem.AWS.EC2.INSTANCE
    properties:
      name: ${resource.Allocations_CustomNaming_1.selectedNames[0]}
      region: us-west-2
      account: aws
      availability_zone: us-west-2b
      image_id: ami-022e8df2148a65830
      instance_type: t2.nano

使用计算机模板置备多个资源

以下模板展示了如何使用计算机类型的模板为多个 AWS EC2 实例生成名称。您无需指定模板的名称,因为每个项目只能创建一个计算机模板。

formatVersion: 1
inputs: {}
resources:
  Allocations_CustomNaming_1:
    type: Allocations.CustomNaming
    properties:
      resourceType: Machine
      numberOfNamesToGenerate: 2
  Idem_AWS_EC2_INSTANCE_1:
    type: Idem.AWS.EC2.INSTANCE
    properties:
      name: ${resource.Allocations_CustomNaming_1.selectedNames[0]}
      region: us-west-2
      account: aws
      availability_zone: us-west-2b
      image_id: ami-022e8df2148a65830
      instance_type: t2.nano
  Idem_AWS_EC2_INSTANCE_2:
    type: Idem.AWS.EC2.INSTANCE
    properties:
      name: ${resource.Allocations_CustomNaming_1.selectedNames[1]}
      region: us-west-2
      account: aws
      availability_zone: us-west-2b
      image_id: ami-022e8df2148a65830
      instance_type: t2.nano

使用通用模板置备资源集群

以下模板显示了如何使用通用模板置备 AWS EC2 实例集群。在此示例中,必须引用模板的名称 my-custom-template

formatVersion: 1
inputs: {}
resources:
  Allocations_CustomNaming_1:
    type: Allocations.CustomNaming
    properties:
      resourceType: Generic
      templateName: my-custom-template
      numberOfNamesToGenerate: 2
  Idem_AWS_EC2_INSTANCE_2:
    type: Idem.AWS.EC2.INSTANCE
    allocatePerInstance: true
    properties:
      name: ${resource.Allocations_CustomNaming_1.selectedNames[count.index]}
      region: us-west-2
      account: aws
      availability_zone: us-west-2b
      image_id: ami-022e8df2148a65830
      instance_type: t2.nano
      count: 2