--- title: "シナリオの作成" slug: "devtools-sourcedeploy-scenariocreate" tags: ["SourceDeploy"] updated: 2026-09-17T09:57:53Z published: 2026-09-17T09:57:53Z canonical: "api.ncloud-docs.com/devtools-sourcedeploy-scenariocreate" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # シナリオの作成 Classic/VPC環境で利用できます。 デプロイシナリオを作成します。 ## リクエスト リクエスト形式を説明します。リクエスト形式は次の通りです。 | メソッド | URI | | --- | --- | | POST | /api/v1/project/{projectId}/stage/{stageId}/scenario | ### リクエストヘッダ SourceDeploy APIで共通して使用されるヘッダの詳細は、[SourceDeployのリクエストヘッダ](/docs/ja/devtools-sourcedeploy#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)をご参照ください。 ### リクエストパスパラメータ リクエストパスパラメータの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `projectId` | String | Required | プロジェクト ID - [プロジェクトリストの照会](/docs/ja/devtools-sourcedeploy-projectlist)を参照 | | `stageId` | String | Required | デプロイステージ ID - [ステージリストの照会](/docs/ja/devtools-sourcedeploy-stagelist)を参照 | ### リクエストボディ リクエストボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `name` | String | Required | デプロイシナリオ名 - 英数字、記号の「-」、「_」を組み合わせて1~100文字以内で入力 | | `description` | String | Optional | デプロイシナリオの説明 | | `config` | Object | Required | デプロイターゲットの設定 - Server: [TScenarioServer](/docs/ja/devtools-sourcedeploy-scenariocreate#TScenarioServer)を参照 - AutoScalingGroup: [TScenarioAutoScalingGroup](/docs/ja/devtools-sourcedeploy-scenariocreate#TScenarioAutoScalingGroup)を参照 - KubernetesService: [TScenarioKubernetesService](/docs/ja/devtools-sourcedeploy-scenariocreate#TScenarioKubernetesService)を参照 - ObjectStorage: [TScenarioObjectStorage](/docs/ja/devtools-sourcedeploy-scenariocreate#TScenarioObjectStorage)を参照 | #### TScenarioServer `TScenarioServer`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `strategy` | String | Required | デプロイ戦略 - `normal`: 基本 (有効値) | | `sequence` | Boolean | Optional | 順次デプロイかどうか - `true` (デフォルト) \| `false` - `true`: 順次デプロイ - `false`: 同時デプロイ | | `file` | Object | Required | デプロイファイル情報 | | `file.type` | String | Required | デプロイファイルの保存場所 - `ObjectStorage` \| `SourceBuild` \| `later` - `ObjectStorage`: Object Storage - `SourceBuild`: SourceBuild - `later`: 後で設定 | | `file.ObjectStorage` | Object | Conditional | Object Storage情報 - `file.type`が`ObjectStorage`の場合、下位情報を含めて必ず入力 | | `file.ObjectStorage.bucket` | String | Conditional | バケット名 - [Object Storageバケットリストの照会](/docs/ja/devtools-sourcedeploy-objectstoragebucketlist)を参照 | | `file.ObjectStorage.object` | String | Conditional | ファイル名 - [Object Storageオブジェクトリストの照会](/docs/ja/devtools-sourcedeploy-objectstorageobjectlist)を参照 | | `file.SourceBuild` | Object | Conditional | SourceBuild情報 - `file.type`が`SourceBuild`の場合、下位情報を含めて必ず入力 | | `file.SourceBuild.id` | Number | Conditional | ビルドプロジェクト ID - [SourceBuildプロジェクトリストの照会](/docs/ja/devtools-sourcedeploy-sourcebuildlist)を参照 | | `rollback` | Boolean | Required | デプロイ失敗時、ロールバックは使用するか - `true` \| `false` - `true`: 使用 - `false`: 使用しない | | `cmd.pre` | Array | Optional | デプロイ前の実行コマンドリスト: [pre](/docs/ja/devtools-sourcedeploy-scenariocreate#pre1) | | `cmd.deploy` | Array | Optional | ファイルデプロイパスリスト: [deploy](/docs/ja/devtools-sourcedeploy-scenariocreate#deploy1) | | `cmd.post` | Array | Optional | デプロイ後の実行コマンドリスト: [post](/docs/ja/devtools-sourcedeploy-scenariocreate#post1) | #### `pre` `pre`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `user` | String | Optional | 実行アカウント | | `cmd` | String | Optional | 実行コマンド | #### `deploy` `deploy`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `sourcePath` | String | Optional | ソースファイルのパス | | `deployPath` | String | Optional | デプロイのパス | #### `post` `post`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `user` | String | Optional | 実行アカウント | | `cmd` | String | Optional | 実行コマンド | #### TScenarioAutoScalingGroup `TScenarioAutoScalingGroup`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `strategy` | String | Required | デプロイ戦略 - `normal` \| `blueGreen` - `normal`: 基本 - `blueGreen`: ブルー/グリーン | | `sequence` | Boolean | Optional | 順次デプロイかどうか - `true` (デフォルト) \| `false` - `true`: 順次デプロイ - `false`: 同時デプロイ | | `file` | Object | Required | デプロイファイル情報 | | `file.type` | String | Required | デプロイファイルの保存場所 - `ObjectStorage` \| `SourceBuild` \| `later` - `ObjectStorage`: Object Storage - `SourceBuild`: SourceBuild - `later`: 後で設定 | | `file.ObjectStorage` | Object | Conditional | Object Storage情報 - `file.type`が`ObjectStorage`の場合、下位情報を含めて必ず入力 | | `file.ObjectStorage.bucket` | String | Conditional | バケット名 - [Object Storageバケットリストの照会](/docs/ja/devtools-sourcedeploy-objectstoragebucketlist)を参照 | | `file.ObjectStorage.object` | String | Conditional | ファイル名 - [Object Storageオブジェクトリストの照会](/docs/ja/devtools-sourcedeploy-objectstorageobjectlist)を参照 | | `file.SourceBuild` | Object | Conditional | SourceBuild情報 - `file.type`が`SourceBuild`の場合、下位情報を含めて必ず入力 | | `file.SourceBuild.id` | Number | Conditional | ビルドプロジェクト ID - [SourceBuildプロジェクトリストの照会](/docs/ja/devtools-sourcedeploy-sourcebuildlist)を参照 | | `rollback` | Boolean | Required | デプロイ失敗時、ロールバックは使用するか - `true` \| `false` - `true`: 使用 - `false`: 使用しない | | `cmd.pre` | Array | Optional | デプロイ前の実行コマンドリスト: [pre](/docs/ja/devtools-sourcedeploy-scenariocreate#pre2) | | `cmd.deploy` | Array | Optional | ファイルデプロイパスリスト: [deploy](/docs/ja/devtools-sourcedeploy-scenariocreate#deploy2) | | `cmd.post` | Array | Optional | デプロイ後の実行コマンドリスト: [post](/docs/ja/devtools-sourcedeploy-scenariocreate#post2) | | `loadBalancer` | Object | Conditional | ロードバランサ情報 - `strategy`が`blueGreen`の場合、下位情報を含めて必ず入力 | | `loadBalancer.loadBalancerTargetGroupNo` | Number | Conditional | ロードバランサ Target Group ID - [Target Groupリストの照会(VPC)](/docs/ja/devtools-sourcedeploy-targetgrouplist)を参照 | | `loadBalancer.deleteAsg` | Boolean | Conditional | 既存の Auto Scalingグループを削除するかどうか - `true` \| `false` - `true`: 削除・返却 - `false`: 維持 | | `loadBalancer.deleteServer` | Boolean | Conditional | 既存の Auto Scalingグループ内サーバを返却するか - `true` \| `false` - `true`: 返却 - `false`: 維持 - `loadBalancer.deleteAsg`が`true`の場合、`true`のみ入力 | #### `pre` `pre`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `user` | String | Optional | 実行アカウント | | `cmd` | String | Optional | 実行コマンド | #### `deploy` `deploy`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `sourcePath` | String | Optional | ソースファイルのパス | | `deployPath` | String | Optional | デプロイのパス | #### `post` `post`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `user` | String | Optional | 実行アカウント | | `cmd` | String | Optional | 実行コマンド | #### TScenarioKubernetesService `TScenarioKubernetesService`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `strategy` | String | Required | デプロイ戦略 - `rolling` \| `blueGreen` \| `canary` - `rolling`: Rolling - `blueGreen`: ブルー/グリーン - `canary`: カナリア | | `manifest` | Object | Required | マニフェスト情報 | | `manifest.type` | String | Required | マニフェストファイルの保存場所 - `SourceCommit` (有効値) | | `manifest.repository` | String | Required | リポジトリ名 - [SourceCommitリポジトリリストの照会](/docs/ja/devtools-sourcedeploy-sourcecommitrepolist)を参照 | | `manifest.branch` | String | Required | ブランチ名 - [SourceCommitブランチリストの照会](/docs/ja/devtools-sourcedeploy-sourcecommitbranchlist)を参照 | | `manifest.path` | Array | Required | ファイルの保存場所リスト | | `canaryConfig` | Object | Conditional | カナリア分析設定 - `strategy`が`canary`の場合、下位情報を含めて必ず入力 | | `canaryConfig.analysisType` | String | Conditional | カナリア分析方法 - `manual` \| `auto` - `manual`: 手動 - `auto`: 自動 | | `canaryConfig.canaryCount` | Number | Conditional | ベースライン、カナリア Pod数 - 1~10 | | `canaryConfig.timeout` | Number | Conditional | タイムアウト(分) - 1~360 - カナリアデプロイ/キャンセル決定の最大時間 - `canaryConfig.analysisType`が`manual`の場合、必ず入力 | | `canaryConfig.prometheus` | String | Conditional | Prometheus Url - `canaryConfig.analysisType`が`auto`の場合、必ず入力 | | `canaryConfig.env` | Object | Conditional | 分析環境変数 - `canaryConfig.analysisType`が`auto`の場合、下位情報を含めて必ず入力 | | `canaryConfig.env.baseline` | String | Conditional | 分析環境変数: ベースライン名 - 英数字、記号の「-」、「_」を組み合わせて62文字以内で入力 | | `canaryConfig.env.canary` | String | Conditional | 分析環境変数: カナリア名 - 英数字、記号の「-」、「_」を組み合わせて62文字以内で入力 | | `canaryConfig.metrics` | Array | Conditional | Metric設定リスト: [metrics](/docs/ja/devtools-sourcedeploy-scenariocreate#metrics) - `canaryConfig.analysisType`が`auto`の場合、下位情報を含めて必ず入力 | | `canaryConfig.analysisConfig` | Object | Conditional | 分析設定 - `canaryConfig.analysisType`が`auto`の場合、下位情報を含めて必ず入力 | | `canaryConfig.analysisConfig.duration` | Number | Conditional | 分析時間(分) - 10~360 | | `canaryConfig.analysisConfig.delay` | Number | Conditional | 分析遅延時間(分) - 0~60 | | `canaryConfig.analysisConfig.interval` | Number | Conditional | 分析周期(分) - 1~360 - 分析時間未満にすること | | `canaryConfig.analysisConfig.step` | Number | Conditional | Metric収集周期(秒) - 10~360 | | `canaryConfig.passScore` | Number | Conditional | 分析成功スコア - 1~100 - `canaryConfig.analysisType`が`auto`の場合、必ず入力 | #### `metrics` `metrics`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `name` | String | Conditional | Metric名 - 英数字、記号の「-」、「_」を組み合わせて1~100文字以内で入力 | | `successCriteria` | String | Conditional | 成功の基準 - `base` \| `canary` - `base`: ベースライン > カナリア - `canary`: ベースライン < Canary | | `queryType` | String | Conditional | クエリタイプ - `default` \| `promQL` | | `weight` | Number | Conditional | Metricの重み - 1~100 - 入力した Metricの重みの合計を100にすること | | `metric` | String | Conditional | Metricの値 - Prometheusに設定した Metricを入力 - `queryType`が`default`の場合、必ず入力 | | `filter` | String | Conditional | Filterの値 - ラベル条件を入力 - `queryType`が`default`の場合、必ず入力 | | `query` | String | Conditional | クエリ - `queryType`が`promQL`の場合、必ず入力 | #### TScenarioObjectStorage `TScenarioObjectStorage`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `file` | Object | Required | デプロイファイル情報 | | `file.type` | String | Required | デプロイファイルの保存場所 - `ObjectStorage` \| `SourceBuild` \| `later` - `ObjectStorage`: Object Storage - `SourceBuild`: SourceBuild - `later`: 後で設定 | | `file.ObjectStorage` | Object | Conditional | Object Storage情報 - `file.type`が`ObjectStorage`の場合、下位情報を含めて必ず入力 | | `file.ObjectStorage.bucket` | String | Conditional | バケット名 - [Object Storageバケットリストの照会](/docs/ja/devtools-sourcedeploy-objectstoragebucketlist)を参照 | | `file.ObjectStorage.object` | String | Conditional | ファイル名 - [Object Storageオブジェクトリストの照会](/docs/ja/devtools-sourcedeploy-objectstorageobjectlist)を参照 - ZIP形式のみサポート | | `file.SourceBuild` | Object | Conditional | SourceBuild情報 - `file.type`が`SourceBuild`の場合、下位情報を含めて必ず入力 | | `file.SourceBuild.id` | Number | Conditional | ビルドプロジェクト ID - [SourceBuildプロジェクトリストの照会](/docs/ja/devtools-sourcedeploy-sourcebuildlist)を参照 | | `path` | Array | Optional | ファイルデプロイパスリスト: [path](/docs/ja/devtools-sourcedeploy-scenariocreate#path) | #### `path` `path`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `sourcePath` | String | Optional | ソースファイルのパス | | `deployPath` | String | Optional | デプロイのパス | ### リクエスト例 リクエストのサンプルコードは次の通りです。 ``` curl --location --request POST 'https://vpcsourcedeploy.apigw.ntruss.com/api/v1/project/2***/stage/3***/scenario' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \ --header 'Content-Type: application/json' \ --data '{ "name": "testScenario2", "description": "test Scenario 2", "config": { "strategy": "normal", "sequence": true, "file": { "type": "ObjectStorage", "ObjectStorage": { "bucket": "devtool", "object": "/result/build-sample.zip" } }, "rollback": true, "cmd": { "pre": [ { "user": "root", "cmd": "mv logs/app.log logs/app_$(date +%s).log" } ], "deploy": [ { "sourcePath": "/main.py", "deployPath": "/home/root/" } ], "post": [ { "user": "root", "cmd": "nohup python3 main.py > logs/app.log 2>&1 &" } ] } } }' ``` ## レスポンス レスポンス形式を説明します。 ### レスポンスボディ レスポンスボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `result` | Object | - | レスポンス結果 | | `result.id` | Number | - | デプロイシナリオ ID | | `result.name` | String | - | デプロイシナリオ名 | ### レスポンスステータスコード SourceDeploy APIで共通して使用されるレスポンスステータスコードの詳細は、[SourceDeployのレスポンスステータスコード](/docs/ja/devtools-sourcedeploy#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)をご参照ください。 ### レスポンス例 レスポンスのサンプルコードは次の通りです。 ``` { "result": { "id": 2***, "name": "testScenario2" } } ```