tencent cloud

インストールパッケージの作成

PDF
フォーカスモード
フォントサイズ
最終更新日: 2026-02-04 14:24:01

用語及び説明

用語
説明
インストールパッケージ
インストールパッケージは、パートナーがMarketplace基準に準拠した自動化デプロイ成果物を提出するもので、クラウドリソースのオーケストレーション、インストールパラメータ、出力宣言などを統合したものです。
ユーザーはMarketplaceのワンクリックデプロイで、リソース作成、アプリ設定、プロセス起動を自動的に完了します。これにより全プロセス自動インストールを実現します。

インストールパッケージを作成する

現在、インストールパッケージは2種類の作成方法をサポートしています。詳細は以下の通りです:

テンプレート作成
普通作成
利点
簡単で手軽、公式提供の固定テンプレートによって作成されます。
テンプレートパラメータをわずかに入力するだけで、迅速にインストールパッケージを作成し開発版を提出可能です。
柔軟性が高く、複雑なアプリケーションの作成が可能です。
各種タイプのリソースおよびリソースの各種パラメータを完全にカスタマイズ可能です。
不足
柔軟性が不足しており、部分パラメータのみカスタマイズをサポートします。
ある程度の開発基盤が必要です。
Node.js環境とCLI開発者ツールをインストールする必要があります。
具体的な作成手順は以下の通り:
テンプレートのクイック作成
通常作成
1. インストールパッケージ管理新規インストールパッケージ作成をクリックし、テンプレートから作成を選択、インストールパッケージ名と一部テンプレートパラメータを入力しますと作成を完了します。

2. インストールパッケージの作成が完了した後、ターゲットアプリケーションの操作バー下にあるバージョン管理をクリックすると、インストールパッケージのバージョン管理インターフェースに入ることができます。

1. インストールパッケージ管理新規インストールパッケージ作成をクリックし、インストールパッケージ名を入力し、普通作成を選択した後、作成を完了できます。

2. インストールパッケージの作成が完了したら、ターゲットアプリケーションの操作欄にあるバージョン管理をクリックし、インストールパッケージのバージョン管理インターフェースに入ります。


開発者ツール(CLI)にログインする

1. バージョン管理インターフェースで開発バージョンのアップロード方法をクリックし、ツールのインストールとログイン手順を表示します。
説明:
Node.js環境必要です。 Marketplace開発者ツールはNode.jsに基づいて開発されています。インストール前に、開発環境にNode.jsがインストール済みであることを確認してください。インストールされていない場合は、Node.js公式サイトにアクセスしてダウンロードし、インストールしてください。


2. ガイドに従って開発者ツールをインストールした後、cloudappコマンドを使用するとツールの使い方を確認できます:

3. ツールをインストール後、ローカル開発者センターでcloudapp loginコマンドを使用してログインしてください。開発者のCAMキーを使用してログインする必要があります。
SecretIdとSecretKeyは、アプリ開発者主体の登録時に提出された開発者情報に対応するCAMキーです。ログインに成功すると開発元と開発者名が表示されます。キー情報を忘れた場合は、CAMコンソールで照会できます。
cloudapp login $SECRET_ID@$SECRET_KEY

インストールパッケージを初期化する(CLIツール)

説明:
インストールパッケージは開発者のローカル環境においてファイルシステムディレクトリとして表され、一般的にはプロジェクトルートディレクトリ配下の.cloudappディレクトリをインストールパッケージディレクトリとして使用することを推奨します。
最小限のインストールパッケージのデモソースコードを参照して、インストールパッケージの構成を理解することをお勧めします。
cloudapp initコマンドを使用して、サンプルのインストールパッケージを生成できます:
# ローカルプロジェクトを初期化します。オプション -t で初期テンプレートを指定可能です。対応テンプレートはGithubテンプレートリストを参照してください(デフォルトテンプレート:CVMインスタンス+パブリックIP)
cloudapp init hello-world

# サンプル
# cloudapp init hello-world -t CT_001
注意:
cloudapp init コマンドは現在プレビュー版機能であり、後日その使用方法とパラメータが調整される可能性があります。現在、cloudapp init はローカルでテンプレートコードをダウンロードするのみで、より多くのテンプレートコードは Marketplace の GitHub リポジトリ で確認できます。

インストールパッケージの構成

インストールパッケージは、開発元がデリバリーする内容で構成されています(CVMデプロイとコンテナデプロイの2つのモードに分かれます)。具体的な差異については以下の表を参照してください:
CVMのデプロイ
コンテナデプロイ
説明:
もしお客様のアプリケーションが「コンテナデプロイ」を採用している場合は、「コンテナデプロイ」に切り替えて、必要なデリバリー内容を確認してください。
内容
位置
説明
インストールパッケージのメタ情報
.cloudapp/package.yaml
インストールパッケージのメタ情報記述ファイルです。
インストールパッケージID・アプリケーションのインストールパラメータ・CAM権限ポリシーなどの情報を含む宣言です。
リソースと変数宣言
.cloudapp/infrastructure/**/*.tf
リソースと変数の宣言は、Terraformの構文を採用します。
リソースはリソースブロックの方式で宣言します。変数はリソースデプロイ時に使用可能な変数であり、使用前に宣言する必要があります。
CVMイメージ(製品)
Marketplaceアーティファクトホスティングセンター
MarketplaceはCVMイメージホスティングを提供します。
説明:
お客様のアプリケーションが「CVMデプロイメント」を採用している場合、「CVMデプロイメント」に切り替えて、デリバリーが必要なコンテンツを参照してください。
内容
位置
説明
インストールパッケージのメタ情報
.cloudapp/package.yaml
インストールパッケージのメタデータ記述ファイルです。
インストールパッケージ ID、アプリケーションのインストールパラメータ、CAM 権限ポリシーなどの情報を含む声明です。
リソースと変数宣言
.cloudapp/infrastructure/**.tf
リソースと変数の宣言は、Terraformの構文を採用しています。
リソースはリソースブロックの方式で宣言します。変数はリソースデプロイ時に使用可能な変数であり、使用前に宣言する必要があります。
コンテナイメージ(製品)
Marketplace TCR リポジトリ
クラウドアプリケーションは、コンテナイメージのホスティングを必要とするアプリケーション向けに、TCRリポジトリによるイメージホスティングサービスを提供します。
サービスオーケストレーション
.cloudapp/software/charts/**/*.yaml
サービスオーケストレーション、Helm Chartのオーケストレーション仕様を採用しています。
コンテナクラスタ内のStatefulSet、Service、Job、Secretなどのオーケストレーションを行います。

インストールパッケージのメタ情報

インストールパッケージのメタ情報はpackage.yamlで宣言され、インストールパッケージID、アプリケーションのインストールパラメータ、Cloud API権限などの情報が含まれます。
# インストールパッケージ ID(デベロッパーセンターのアプリケーション ID に対応)
id: pkg-8lve2gn1

# アプリケーションパラメータです。インストールプロセス中に顧客が設定可能なパラメータを定義します(例:所属ネットワーク、アプリケーション仕様、支払い方法など)
args:
- name: app_target
label: ターゲットネットワーク
widget: subnet-select

# アプリケーション権限宣言(オプション)です。アプリケーション内でクラウドAPIを呼び出す必要がある場合、ここで宣言する必要があります。
role:
policy:
version: "2.0"
statement:
- action:
- cloudapp:VerifyLicense
resource: "*"
effect: allow
注意:
正しいインストールパッケージIDをご提供ください。開発者ツールがアプリケーションをプッシュする際、package.yamlに記録されたインストールパッケージIDに基づいて認証を行いプッシュします。アプリケーションが未登録の場合、または現在ログインしている開発者が該当アプリケーションの開発者ではない場合、プッシュは失敗します。

リソースと変数宣言

リソース宣言

インストールパッケージにおけるリソース宣言は、パッケージの中核となる内容です。MarketplaceはTerraform 構文を借用して、ソフトウェアが依存するクラウドリソースを宣言します。
resource "tencentcloud_eks_cluster" "eks" {
availability_zone = var.app_target.subnet.zone
k8s_version       = "1.20.6"
vpc_id            = var.app_target.vpc.id
subnet_ids        = [var.app_target.subnet.id]
service_subnet_id = var.app_target.subnet.id
}
上記はリソースブロックの宣言構文です。resource はリソースブロックの宣言を表し、"tencentcloud_eks_cluster" はリソースのタイプを表し、"eks" はリソース名です。
説明:
インストールパッケージがサポートする宣言リソースは、主に2種類に分かれます:
Tencent CloudのIaaS/SaaSリソースでは、リソースのタイプのプレフィックスはtencentcloudです。
Marketplaceによってカプセル化されたリソースで、リソースのプレフィックスはcloudappです。

変数宣言

上記で宣言されたEKSリソースと関連付けられたVPC、サブネットなどの情報は、変数から取得されます。インストールパッケージ内で使用される全ての変数は、宣言が必要です。
# variableキーワードを使用して変数を宣言し、app_targetを「変数名」とします。var.app_targetでこの変数を使用できます。
variable "app_target" {
type = object({
region    = string
region_id = string
vpc = object({
id         = string
cidr_block = string
})
subnet = object({
id   = string
zone = string
})
})
}
リソースブロックと同様に、変数ブロック variable を使用して変数を宣言します。上記の宣言では、app_targetが変数名です。リソースブロック内で var.app_target を参照できます。
変数はユーザーのインストールパラメータを取得するために使用でき、またシステムのインストールパラメータを取得するためにも使用できます。詳細については、インストールパラメータ、変数、および出力の使用ドキュメントの説明を参照してください。

イメージホスティング

CVMイメージホスティング
コンテナイメージのホスティング

イメージの作成については、操作ガイドを参照してください。CVMイメージを作成した後、ユーザーがインストールする際にMarketplaceが自動的に対応イメージを共有できるよう、イメージをMarketplaceアーティファクト管理センターにホスティングする必要があります。
1. Marketplace開発者で、アプリの製品管理を選択します。



2. 製品管理センターで、現在のアプリがホスティングが必要なCVMイメージを選択します。






3. アプリケーションのインストールが許可されている地域に基づいて、イメージの利用可能な地域を調整します。



説明:
MarketplaceはTCRリポジトリを提供し、コンテナイメージのホスティングが必要なアプリケーション向けにイメージホスティングサービスを提供します。
1. cloudapp dockerコマンドを使用してリポジトリログインコマンドを取得します。



2. cloudapp docker --url コマンドを使用してリポジトリプッシュアドレスを取得します。



3. cloudapp docker --auth を使用して Docker 認証ファイルを個別に取得します。CI 構築のシナリオに適用されます。



4. Dockerリポジトリにログインした後、イメージをホスティングされたレジストリにプッシュできます。
リポジトリトークンの有効期間と権限
cloudapp dockerコマンドで取得したリポジトリトークンは、アプリケーション側がソフトウェアコンテナイメージをプッシュするためにのみ使用できます。このトークンの有効期間は2時間ですので、保存して使用すべきではありません。CIプロセスでのビルド完了後、リアルタイムでcloudapp dockerコマンドを実行しトークンを取得することを推奨します。
お客様がインストール時に使用するインストールトークンはリードオンリーですが、cloudapp dockerが取得したトークンはアプリケーション開発者のソフトウェアイメージを操作することが可能です。

サービスオーケストレーション(コンテナデプロイメント)

cloudapp_helm_appタイプのリソースを宣言することで、コンテナサービスオーケストレーションを宣言できます。
resource "cloudapp_helm_app" "helm_charts" {
cluster_id     = tencentcloud_eks_cluster.eks.id
chart_src      = "../software/chart"
chart_username = var.cloudapp_repo_username
chart_password = var.cloudapp_repo_password

chart_values = {
SUBNET_ID = var.app_target.subnet.id
IMAGE_CREDENTIALS = {
REGISTRY = var.cloudapp_repo_server
USERNAME = var.cloudapp_repo_username
PASSWORD = var.cloudapp_repo_password
}
}
}
オーケストレーション対象のコンテナクラスタとHelm Chartのソースコードの場所(一般的には.cloudapp/software/chartに配置することが推奨されます)の指定が必要です。
chart_valuesを介してリソース情報をHelm Chart Valuesに渡します。これらの情報はデプロイ時にHelmに伝達されるため、オーケストレーション時にインフラストラクチャを直接利用できます。上記の例では、サブネットIDをオーケストレーションに渡し、serviceのオーケストレーションを行う際にこのサブネットIDを指定することで、内部向けロードバランサータイプを生成します。別の一般的な例として、DBインスタンス化後の接続情報をオーケストレーションに渡すことで、ワークロードが環境変数から参照できるようにする、またはconfigmapに生成することが挙げられます。
注意:
TFで宣言されたリソース属性をHelm Chart Valuesに渡すことは、非常に重要な特性です。この特性を活用することで、ソフトウェアオーケストレーション時に実際にデプロイされるハードウェアリソースを直接オーケストレーション可能にし、再設定が不要となります。

上級

引き続き後続の内容をご覧いただき、上級インストールパッケージ機能の実装方法をご確認いただけます。

リソース

Githubリポジトリにアクセスして、サンプルソースコードの詳細を参照してください。

次へ

インストールパッケージの作成とアップロードが完了したら、インストールパッケージのプッシュ、検証、リリースを行う必要があります。詳細はインストールパッケージ管理を参照してください。


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック