すべてのプロダクト
Search
ドキュメントセンター

Compute Nest:ファイルデプロイアーティファクト

最終更新日:Apr 02, 2026

ファイルデプロイパッケージは、スクリプトベースのデプロイメントでよく発生する問題を解決します。具体的には、デプロイメントスクリプトがソフトウェアファイルをダウンロードする必要があるものの、そのファイルが大きすぎる、ダウンロード元が不安定である、またはファイルがパブリックインターネット経由でアクセスできないといったケースです。一度ファイルをアップロードすれば、Compute Nest が自動的に各リージョンへのディストリビューションと内部ネットワーク経由のセキュアな配信を処理します。

仕組み

ファイルデプロイパッケージを公開すると、Compute Nest はアップロードされたファイルを、Compute Nest の汎用アカウント下にあるすべてのターゲットリージョンの Object Storage Service (OSS) バケットに複製します。

Resource Orchestration Service (ROS) テンプレートでは、ファイル URL が必要な箇所に {{ computenest::file::mykey }} のようなファイル識別子を記述します。サービスを作成する際、Compute Nest はこの識別子を指定したファイルデプロイパッケージに関連付けます。お客様がサービスインスタンスを作成すると、Compute Nest はターゲットリージョンを検出し、そのリージョンに対応する OSS URL を選択し、テンプレート内の識別子を内部 HTTP URL に置き換えます。これにより、すべてのダウンロードが高速かつ安定し、内部ネットワーク内に閉じ込められます。

権限モデル:ファイルデプロイパッケージの可視性は、関連付けられたサービスに従います。

関連付け状態パッケージの可視性
どのサービスにも関連付けられていない非公開
少なくとも 1 つのパブリックサービスに関連付けられている公開
プライベートサービスのみに関連付けられている非公開

ファイル識別子の構文

ROS テンプレート内で以下の固定式のいずれかを使用します。${key} は空白を含まない文字列です。

使用ケース識別子
プライベート URL(推奨){{ computenest::file:: ${key}}}
パブリック URL{{ computenest::publicfile::${key}}}

テンプレート内では、識別子をシングルクォートまたはダブルクォートで囲んでください。wget を使用してファイルをダウンロードする場合は、-O パラメーターを使用して出力ファイル名を指定します。

例:共通テンプレート (UserData)

以下のスニペットは、Elastic Compute Service (ECS) インスタンスの UserData セクションで 2 つのファイル識別子を定義しています。お客様がサービスをデプロイすると、Compute Nest は各識別子をリージョン固有の内部 OSS URL に置き換えます。

TiDBServer:
  Type: ALIYUN::ECS::InstanceGroup
  Properties:
    ...
    UserData:
      Fn::Sub:
        - |
          #!/bin/sh
          sleep 10
          wget '{{ computenest::file::DemoFirst }}' -O TestFirst.txt  # デプロイ時に内部 OSS URL に置き換えられます
          wget '{{ computenest::file::DemoSecond }}' -O TestSecond.tar
          ......

例:MigrateTask テンプレート

ALIYUN::RDS::MigrateTask リソースでは、OssObjectPositions フィールドに識別子を使用します。Compute Nest はファイル URL を、パラメーターで必要な形式である {OSS endpoint}:{OSS bucket name}:{backup file key in OSS} に変換します。

SQLDump:
  Type: ALIYUN::RDS::MigrateTask
  Properties:
    ...
    DBName: mytest
    DBInstanceId:
      Fn::GetAtt:
        - Database
        - DBInstanceId
    OssObjectPositions: {{ computenest::file::DemoFirst }}  # OSS endpoint:bucket:key 形式に変換されます

たとえば、Compute Nest は識別子を oss-ap-southeast-1.aliyuncs.com:rdsmssqlsingapore:autotest_2008R2_TestMigration_FULL.bak のような値に変換します。パラメーターの完全な仕様については、「ALIYUN::RDS::MigrateTask」をご参照ください。

ファイルデプロイパッケージの作成

前提条件

作業を開始する前に、次の要件を満たしていることを確認してください。

  • アップロードするファイル

ステップ 1:基本情報の設定

  1. Compute Nest コンソール にログインします。左側のナビゲーションウィンドウで、サービスデプロイパッケージ をクリックします。

  2. デプロイパッケージ セクションで、デプロイパッケージの作成 をクリックします。

  3. デプロイパッケージ情報 セクションで、次のパラメーターを設定します。

    パラメーター説明
    デプロイパッケージ名3~128 文字。英数字およびアンダースコア (_) のみ使用可能。作成後は変更できません。
    バージョン名3~50 文字。英数字およびアンダースコア (_) のみ使用可能。
    説明10~500 文字。
    リソースグループデプロイメントパッケージが属するリソースグループ。リソースグループを使用すると、リソースを使用量、権限、およびリージョン別に整理できます。詳細については、「リソースグループの管理」をご参照ください。
    タグ設定デプロイメントパッケージに追加するタグ。1つのパッケージにつき最大20個のタグを使用できます。カスタムタグを作成するには、「カスタムタグを追加する」をご参照ください。

ステップ 2:ファイルのアップロード

  1. デプロイパッケージコンテンツ セクションで、デプロイパッケージタイプファイル に設定します。

  2. デプロイパッケージのアップロード のアップロードリージョンを選択し、ファイルサイズに応じてアップロード方法を選択します。5 GB を超えるファイルの場合:

    1. アクセス認証情報を取得 をクリックします。ローカルからのアップロードまたは ECS インスタンスから内部ネットワーク経由でのアップロード用のコマンドが表示されます。

    2. 表示されたコマンドをコピーし、<source_file> をソースファイル名に、<target_file> を Compute Nest 内のターゲットファイル名に置き換えます。

    3. Alibaba Cloud CLI を使用してコマンドを実行します。

    4. アップロードしたファイル名を ファイルアップロード URL フィールドに入力します。

    ファイルサイズ方法
    5 GB 以下ローカルファイルをアップロード を選択し、ファイルを直接アップロードします。
    5 GB 超5 GB 超のファイルをアップロード を選択し、以下の手順に従います。

    image

  3. (オプション)スクリプトコマンドを設定 をオンにして、サービスインスタンスの更新中にデプロイパッケージがダウンロードされた際に実行されるコマンドを定義します。ファイルの関連付けにはスクリプトコマンドは必須ではありません。有効にした場合、次のパラメーターを設定します。

    パラメーター説明
    OSご利用のサービスのオペレーティングシステム。
    ダウンロードディレクトリファイルをダウンロードする ECS インスタンス上のディレクトリ。存在しない場合はディレクトリを作成します。
    コマンドタイプ実行するコマンドのタイプ。
    コマンド内容ダウンロード後に実行するコマンド。コマンド内ではサービスインスタンスの構成パラメーターを参照できます。
  4. ディストリビューションリージョン はデフォルトで すべてのリージョン に設定されています。特定のリージョンに限定する必要がある場合にのみ変更してください。

  5. デプロイパッケージを公開 をクリックします。

重要

デプロイパッケージバージョンを公開すると、そのコンテンツは変更できません。コンテンツを更新するには、新しいバージョンまたは新しいデプロイパッケージを作成してください。

ステップ 3:ディストリビューションの確認

  1. サービスデプロイパッケージ ページに戻り、作成したデプロイパッケージの名前をクリックします。

  2. パッケージ タブで、デプロイの進捗状況をモニターします。

  3. ステータスが 利用可能 に変わったら、操作 列の 表示 をクリックして、各リージョンでのディストリビューション結果を確認します。

    image

ファイルデプロイパッケージをサービスに関連付ける

このセクションでは、ファイルデプロイパッケージをプライベートサービスに関連付ける手順を説明します。

  1. サービスの作成 ページで、サービス作成方法の選択カスタム起動 に、サービスタイプの選択プライベートサービス に設定し、次へ:設定項目の構成 をクリックします。

    image

  2. サービスの基本情報を入力します。テンプレートタイプとテンプレート作成方法を選択し、デプロイ方法ROS に設定して、テンプレートの内容を入力します。テンプレートに {{ computenest::file::test }} または {{ computenest::publicfile::test }} が含まれている場合、デプロイパッケージ関連付け セクションに ファイル関連付けの設定 パラメーターが表示されます。<details> <summary>サンプル ROS テンプレート</summary>

    以下のサンプルテンプレートはテスト専用です。
    ROSTemplateFormatVersion: '2015-09-01'
    Description:
      en: 新規 ack
      zh-cn: 新建ack部署
    Parameters:
      PayType:
        Type: String
        Label:
          en: ECS インスタンス課金タイプ
          zh-cn: 付费类型
        Default: PostPaid
        AllowedValues:
          - PostPaid
          - PrePaid
        AssociationProperty: ChargeType
        AssociationPropertyMetadata:
          LocaleKey: InstanceChargeType
      PayPeriodUnit:
        Type: String
        Label:
          en: 支払期間単位
          zh-cn: 购买资源时长周期
        Default: Month
        AllowedValues:
          - Month
          - Year
        AssociationProperty: PayPeriodUnit
        AssociationPropertyMetadata:
          Visible:
            Condition:
              Fn::Not:
                Fn::Equals:
                  - ${PayType}
                  - PostPaid
      PayPeriod:
        Type: Number
        Description:
          en: リソースの購入期間が月の場合、Period の値は 1~9、12、24、36、48、または 60 です。<b><font color='red'> ECS インスタンスタイプが PrePaid の場合に有効です </font>
          zh-cn: 当购买资源时长为Month时,Period取值:1~9 <b><font color='red'>当ECS实例类型为PrePaid有效</font>
        Label:
          en: 期間
          zh-cn: 购买资源时长
        Default: 1
        AllowedValues:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
        AssociationProperty: PayPeriod
        AssociationPropertyMetadata:
          Visible:
            Condition:
              Fn::Not:
                Fn::Equals:
                  - ${PayType}
                  - PostPaid
      ZoneId:
        Type: String
        AssociationProperty: ALIYUN::ECS::Instance:ZoneId
        Label:
          en: ゾーン ID
          zh-cn: 可用区
        Default: cn-hangzhou-h
      VpcCidrBlock:
        Type: String
        Label:
          en: VPC CIDR IPv4 ブロック
          zh-cn: 专有网络IPv4网段
        Description:
          zh-cn: VPC的ip地址段范围,您可以使用以下的ip地址段或其子网:<br><font color='green'>[10.0.0.0/8]</font><br><font color='green'>[172.16.0.0/12]</font><br><font color='green'>[192.168.0.0/16]</font>
          en: 'VPC の IP アドレス範囲 (CidrBlock 形式)。<br>次の IP アドレス範囲とそのサブネットを使用できます: <br><font color=''green''>[10.0.0.0/8]</font><br><font color=''green''>[172.16.0.0/12]</font><br><font color=''green''>[192.168.0.0/16]</font>'
        Default: 192.168.0.0/16
        AssociationProperty: ALIYUN::VPC::VPC::CidrBlock
      VSwitchCidrBlock:
        Type: String
        Label:
          en: VSwitch CIDR ブロック
          zh-cn: 交换机子网网段
        Description:
          zh-cn: 必须属于VPC的子网段。
          en: VPC のサブネットセグメントに属している必要があります。
        Default: 192.168.1.0/24
        AssociationProperty: ALIYUN::VPC::VSwitch::CidrBlock
        AssociationPropertyMetadata:
          VpcCidrBlock: VpcCidrBlock
      LoginPassword:
        NoEcho: true
        Type: String
        Description:
          en: サーバーログインパスワード。長さは 8~30 文字で、大文字、小文字、数字、および特殊文字 (()\`~!@#$%^&*_-+=|{}[]:;<>,.?/) のうち 3 種類を含める必要があります。
          zh-cn: 服务器登录密码,长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;<>,.?/ 中的特殊符号)
        Label:
          en: インスタンスのパスワード
          zh-cn: 实例密码
        ConstraintDescription:
          en: 長さは 8~30 文字で、大文字、小文字、数字、および特殊文字 (()\`~!@#$%^&*_-+=|{}[]:;<>,.?/) のうち 3 種類を含める必要があります。
          zh-cn: 长度 8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;<>,.?/ 中的特殊符号)
        AssociationProperty: ALIYUN::ECS::Instance::Password
        AllowedPattern: ^[a-zA-Z0-9-\(\)\`\~\!\@\#\$\%\^\&\*\_\-\+\=\|\{\}\[\]\:\;\<\>\,\.\?\/]*$
        MinLength: 8
        MaxLength: 30
        Default: computenest*12345
      WorkerInstanceType:
        Type: String
        Label:
          en: Worker ノードタイプ
          zh-cn: Worker节点规格
        AssociationProperty: ALIYUN::ECS::Instance::InstanceType
        AssociationPropertyMetadata:
          ZoneId: ${ZoneId}
        Default: ecs.g6.large
      WorkerSystemDiskCategory:
        Type: String
        AllowedValues:
          - cloud_efficiency
          - cloud_ssd
          - cloud_essd
        AssociationPropertyMetadata:
          LocaleKey: DiskCategory
          InstanceType: ${WorkerInstanceType}
        Label:
          en: Worker システムディスクカテゴリ
          zh-cn: Worker 系统盘磁盘类型
        Default: cloud_essd
      WorkerSystemDiskSize:
        Type: Number
        Label:
          en: Worker システムディスクサイズ (GB)
          zh-cn: Worker节点系统盘大小(GB)
        MinValue: 1
        Default: 120
      PodCidr:
        Type: String
        Description:
          zh-cn: 请填写有效的私有网段,即以下网段及其子网:10.0.0.0/8,172.16-31.0.0/12-16,192.168.0.0/16<br>不能与 VPC 及 VPC 内已有 Kubernetes 集群使用的网段重复。 <font color='blue'><b>创建成功后不能修改</font>
          en: '有効なプライベートセグメント (つまり、次のセグメントとそのサブネット) を入力してください: 10.0.0.0/8、172.16-31.0.0/12-16、192.168.0.0/16VPC および VPC 内の Kubernetes クラスターで使用されているネットワークセグメントと重複することはできません。<font color=''blue''><b>作成後は変更できません</font>'
        Label:
          zh-cn: Pod 网络 CIDR
          en: Pod ネットワーク CIDR
        AssociationProperty: ALIYUN::CS::ManagedKubernetesCluster::PodCidr
        Default: 10.0.0.0/16
      ServiceCidr:
        Type: String
        Description:
          zh-cn: 可选范围:10.0.0.0/16-24,172.16-31.0.0/16-24,192.168.0.0/16-24不能与 VPC 及 VPC 内已有 Kubernetes 集群使用的网段重复。 <font color='blue'><b>创建成功后不能修改</font>
          en: '選択可能な範囲: 10.0.0.0/16-24、172.16-31.0.0/16-24、192.168.0.0/16-24VPC および VPC 内の既存の Kubernetes クラスターで使用されているセグメントと重複することはできません。<font color=''blue''><b>作成後は変更できません</font>'
        Label:
          zh-cn: Service CIDR
          en: Service CIDR
        AssociationProperty: ALIYUN::CS::ManagedKubernetesCluster::ServiceCidr
        Default: 172.16.0.0/16
    Resources:
      EcsVpc:
        Type: ALIYUN::ECS::VPC
        Properties:
          VpcName:
            Ref: ALIYUN::StackName
          CidrBlock:
            Ref: VpcCidrBlock
      EcsVSwitch:
        Type: ALIYUN::ECS::VSwitch
        Properties:
          VSwitchName:
            Ref: ALIYUN::StackName
          VpcId:
            Ref: EcsVpc
          ZoneId:
            Ref: ZoneId
          CidrBlock:
            Ref: VSwitchCidrBlock
      EcsSecurityGroup:
        Type: ALIYUN::ECS::SecurityGroup
        Properties:
          SecurityGroupName:
            Ref: ALIYUN::StackName
          VpcId:
            Ref: EcsVpc
          SecurityGroupEgress:
            - PortRange: '-1/-1'
              Priority: 1
              IpProtocol: all
              DestCidrIp: 0.0.0.0/0
              NicType: intranet
          SecurityGroupIngress:
            - PortRange: '-1/-1'
              Priority: 1
              IpProtocol: all
              SourceCidrIp:
                Ref: PodCidr
              Description: Pod ネットワークへのアクセス
              NicType: intranet
            - PortRange: '-1/-1'
              Priority: 1
              IpProtocol: all
              SourceCidrIp:
                Ref: VpcCidrBlock
              Description: VPC へのアクセス
              NicType: intranet
            - PortRange: '-1/-1'
              Priority: 1
              IpProtocol: icmp
              SourceCidrIp: 0.0.0.0/0
              Description: ICMP ポートへのアクセス
              NicType: intranet
      ManagedKubernetesCluster:
        Type: ALIYUN::CS::ManagedKubernetesCluster
        Properties:
          Name:
            Ref: ALIYUN::StackName
          ChargeType:
            Ref: PayType
          Period:
            Ref: PayPeriod
          PeriodUnit:
            Ref: PayPeriodUnit
          VSwitchIds:
            - Ref: EcsVSwitch
          VpcId:
            Ref: EcsVpc
          WorkerInstanceTypes:
            - Ref: WorkerInstanceType
          NumOfNodes: 3
          ClusterSpec: ack.pro.small
          ContainerCidr:
            Ref: PodCidr
          ServiceCidr:
            Ref: ServiceCidr
          ZoneIds:
            - Ref: ZoneId
          SecurityGroupId:
            Ref: EcsSecurityGroup
          WorkerSystemDiskCategory:
            Ref: WorkerSystemDiskCategory
          WorkerSystemDiskSize:
            Ref: WorkerSystemDiskSize
          LoginPassword:
            Ref: LoginPassword
          SnatEntry: true
          Addons:
            - Name: flannel
              Config: ''
      ComputenestHelmApplication:
        Type: MODULE::SHARE::1563457855438522::HelmDeploy
        Version: v5
        DependsOn:
          - ManagedKubernetesCluster
        Properties:
          ClusterId:
            Fn::GetAtt:
              - ManagedKubernetesCluster
              - ClusterId
          ChartIdentifier: '{{ computenest::helmpull::springBoot }}'
          ChartValues:
            image:
              fullname: '{{ computenest::acrimage::springBootDemo }}'
            dockerConfigJson: '{{ computenest::acr::dockerconfigjson }}'
            service:
              type: LoadBalancer
              port: 8080
          Namespace:
            Ref: ALIYUN::StackName
          ReleaseName: spring-boot-chart
      # リソースの準備が完了するまで 1 分間スリープします。
      HelmSleep:
        Type: ALIYUN::ROS::Sleep
        DependsOn:
          - ComputenestHelmApplication
        Properties:
          CreateDuration: 60
      # サービス情報を照会し、その情報を出力に表示します。
      ClusterApplicationResources:
        Type: DATASOURCE::CS::ClusterApplicationResources
        DependsOn:
          - HelmSleep
        Properties:
          ClusterId:
           Fn::GetAtt:
            - ManagedKubernetesCluster
            - ClusterId
          Kind: Service
          Name: spring-boot-chart
          Namespace:
            Ref: ALIYUN::StackName
          JsonPath: $.status.loadBalancer.ingress[0].ip
          FirstMatch: true
    Outputs:
      # コンソールで、返された HTTP URL としてパブリック IP アドレスを表示します。
      Endpoint:
        Description:
          zh-cn: 对外暴露的公网IP地址
          en: パブリック IP アドレス
        Value:
          Fn::Sub:
            - "http://${ServerAddress}:8080"
            - ServerAddress:
                Fn::GetAtt:
                  - ClusterApplicationResources
                  - Response
    Metadata:
      ALIYUN::ROS::Interface:
        ParameterGroups:
          - Parameters:
              - PayType
              - PayPeriodUnit
              - PayPeriod
            Label:
              en: PayType 設定
              zh-cn: 付费类型配置
          - Parameters:
              - ZoneId
              - VpcCidrBlock
              - VSwitchCidrBlock
              - LoginPassword
            Label:
              en: 基本設定
              zh-cn: 基础配置
          - Parameters:
              - WorkerInstanceType
              - WorkerSystemDiskCategory
              - WorkerSystemDiskSize
              - ServiceCidr
              - PodCidr
            Label:
              en: Kubernetes 設定
              zh-cn: Kubernetes配置

    </details>

  3. ソフトウェアパッケージの関連付け セクションで、デプロイパッケージ関連付け をクリックします。ダイアログボックスでデプロイパッケージとバージョンを選択し、OK をクリックします。

    image

    image

  4. サービスのテストが完了したら、レビューのために提出します。レビュー基準については、「レビュー基準」をご参照ください。

  5. 承認後、サービスを公開します。詳細については、「サービスの公開」をご参照ください。

お客様がサービスインスタンスを作成すると、Compute Nest はテンプレート内のすべてのファイル識別子を、お客様のターゲットリージョンに対応する内部 OSS URL に自動的に置き換えます。

  • 共通テンプレート:以下の図は、プライベートおよびパブリックファイル URL の識別子置き換え結果を示しています。プライベートファイル URL の置き換え:パブリックファイル URL の置き換え:

    image

    image

  • MigrateTask テンプレート:Compute Nest はファイル URL を、{OSS endpoint}:{OSS bucket name}:{backup file key in OSS} 形式に変換し、OssObjectPositions パラメーターで必要な形式にします。

    image

次のステップ

参照