软件包关联

更新时间:
复制 MD 格式

录入服务模板时,如果您需要使用部署物中文件部署物相关的软件包,可以使用软件包关联的功能。本文介绍软件包关联的功能。

功能介绍

使用软件包关联功能,您需要在服务模板中定义软件包关联的标识位,并在软件包关联中设置关联的文件部署物,在创建服务实例时,计算巢会自动识别模板中的标识位,并根据服务实例部署地域,自动替换成部署物对应地域的文件URL。

功能配置

  1. 在模板中定义软件包关联标识位。

    在配置软件包关联功能之前,需要先定义标识位。软件包关联标识位在模板中通常有两种使用方式,包含常用模板和数据库类型MigrateTask专用。

    软件包关联标识位的固定表达式如下:

    • (推荐)若部署物的文件URL为私网URL时,软件包的固定表达式为:{{ computenest::file::xxx }}

    • 若部署物的文件URL为公网URL时,软件包的固定表达式为:{{ computenest::publicfile::xxx }}

    说明

    其中xxx为任意单词,中间不可用空格隔开。

    • 常用模板定义标识位。

      userData中下载文件并将文件的名称修改为TestFirst.txtTestSecond.tar为例,展示模板中定义的标识位。

      说明
      • 在模板中定义软件包关联标识位时,推荐使用单引号('')或双引号(“”)将标识位的内容引起来。

      • 如果使用wget命令下载,推荐加入 -O 参数指定输出文件名。

      TiDBServer:
          Type: ALIYUN::ECS::InstanceGroup
          Properties:
            ……
            UserData:
              Fn::Sub:
                - |
                  #!/bin/sh
                  sleep 10
                  wget '{{ computenest::file::DemoFirst }}' -O TestFirst.txt
                  wget '{{ computenest::file::DemoSecond }}' -O TestSecond.tar
                  ……
    • 数据库类型MigrateTask中定义标识位。

      SQLDump:
          Type: ALIYUN::RDS::MigrateTask
          Properties:
              ……
            DBName: mytest
            DBInstanceId:
              Fn::GetAtt:
                - Database
                - DBInstanceId
            OssObjectPositions: {{ computenest::file::DemoFirst }}
  2. 配置软件包关联。

    1. 在创建服务界面的部署物关联区域,单击设置软件包关联下的选择部署物

    2. 选择部署物(软件包关联)弹窗中,选择需要关联的文件部署物和对应的版本。

      若您没有文件部署物,需先创建再选择。关于如何创建部署物,请参见创建部署物。对话框顶部显示关联标志符为 {{ computenest::file::testfile }},仅可选择文件类型的部署物,可按需填写描述信息。

    3. 单击确定部署物关联区域还包含设置镜像关联(可配置待替换镜像如 centos_7、关联资源如 ECSInstances 及对应部署物)、设置容器镜像关联(配置关联标志符及对应部署物)和设置Helm关联配置项。若当前模板无Helm配置,则显示"当前模板无Helm关联"。

功能展示

服务创建完成后,在创建服务实例时,计算巢会将模板中的内容根据服务实例部署地域和部署物自动替换为对应部署地域的文件URL。

  • 常用模板定义标识位替换后的结果。。

    • 当部署物的文件URL为私网URL时,替换结果如下。

      Conditions: {}
      Resources:
        ECSInstances:
          Type: 'ALIYUN::ECS::InstanceGroup'
          Properties:
            UserData: |
              #!/bin/sh
              mkdir /root/lzq
              cd /root/lzq
              wget 'https://computenest-artifacts-cn-wulanchabu.oss-cn-wulanchabu-internal.aliyuncs.com/xxx/cn-zhangjiakou/xxx/示例文本.txt'
              wget 'https://computenest-artifacts-cn-wulanchabu.oss-cn-wulanchabu-internal.aliyuncs.com/xxx/cn-guangzhou/xxx/changes.txt'
              wget {{DemoThird}}
            SystemDiskCategory:
    • 当部署物的文件URL为公网URL时,替换结果如下。

      Properties:
        UserData: |
          #!/bin/sh
          mkdir /root/lzq
          cd /root/lzq
          wget 'https://computenest-artifacts-cn-wulanchabu.oss-cn-wulanchabu.aliyuncs.com/xxx/cn-beijing/xxx/1976虚拟背景.jpg'
          wget {{DemoThird}}
        SystemDiskCategory:
          Ref: SystemDiskCategory
        VpcId:
    说明

    由于该服务实例的部署地域是乌兰察布,因此计算巢将替换模板中的内容为乌兰察布分发后的结果。

  • 数据库类型MigrateTask中,计算巢会将文件部署物的URL更改为OssObjectPositions参数的格式。

    由于OssObjectPositions参数是由OSS Endpoint地址、OSS Bucket名称和OSS上的备份文件Key三段组成,每段中间用英文冒号(:)分隔(例如:oss-ap-southeast-1.aliyuncs.com:rdsmssqlsingapore:autotest_2008R2_TestMigration_FULL.bak,更多信息,请参见ALIYUN::RDS::MigrateTask),因此计算巢会将文件部署物的URL替换成该格式。

    },
    "OssObjectPositions": "oss-cn-hangzhou-internal.aliyuncs.com:computenest-artifacts-cn-hangzhou:xxx/cn-zhangjiakou/xxx/示例文本.txt",
    "DBInstanceId": {
    说明

    由于该服务实例的部署地域是杭州,因此计算巢将替换模板中的内容为杭州分发后的结果。