シナリオ作成
- 印刷する
- PDF
シナリオ作成
- 印刷する
- PDF
記事の要約
この要約は役に立ちましたか?
ご意見ありがとうございます
概要
SourceDeployプロジェクトのシナリオを作成します。
リクエスト
API URL
POST {SOURCEDEPLOY_API_URL}/project/{projectId}/stage/{stageId}/scenario
リクエスト Parameter
項目 | タイプ | 説明 | 備考 |
---|---|---|---|
projectId | string | プロジェクト ID | projectList照会 |
stageId | string | stage ID | stageList照会 |
リクエスト Query
なし
リクエスト Body
{
"name": "string",
"description": "string",
"config": "TScenarioServer" | "TScenarioAutoScalingGroup" | "TSecnarioKubernetesService" | "TSecnarioObjectStorage"
}
項目 | タイプ | 必須有無 | 説明 | 備考 |
---|---|---|---|---|
name | string | Y | シナリオ名 | |
description | string | N | シナリオの説明 | |
Config | TScenarioServer | TScenarioAutoScalingGroup| TSecnarioKubernetesService|TSecnarioObjectStorage | Y | シナリオ設定 | stageDetail APIで stage typeを照会 stage type="Server"の場合、TScenarioServer stage type="AutoScalingGroup"の場合、TScenarioAutoScalingGroup stage type="KubernetesService"の場合、TSecnarioKubernetesService stage type="ObjectStroage"の場合、TSecnarioObjectStorage |
TScenarioServer
{
"strategy": "string",
"sequence": "boolean",
"file": {
"type": "string",
"ObjectStorage": {
"bucket": "string",
"object": "string"
},
"SourceBuild": {
"id": "number"
}
},
"rollback": "boolean",
"cmd": {
"pre": [
{
"user": "string",
"cmd": "string"
}
],
"deploy": [
{
"sourcePath": "string",
"deployPath": "string"
}
],
"post": [
{
"user": "string",
"cmd": "string"
}
]
},
}
項目 | タイプ | 必須有無 | Default | 説明 | 備考 |
---|---|---|---|---|---|
strategy | string | Y | リリース戦略 | "normal" | |
sequence | boolean | N | true | 順次リリースの有無 | false入力時に同時リリース |
file.type | string | Y | リリースファイルの type | "ObjectStorage" | "SourceBuild" | "later" | |
file.ObjectStorage.bucket | string | N (file.type=ObjectStorageの場合、必須) | ObjectStorageバケット名 | objectStorageBucketList APIで照会 | |
file.ObjectStorage.object | string | N (file.type=ObjectStorageの場合、必須) | ObjectStorage objectの位置 | objectstorageobjectlist APIで照会 | |
file.SourceBuild.id | number | N (file.type=SourceBuildの場合、必須) | SourceBuild id | sourceBuildList APIで照会 | |
rollback | boolean | Y | リリース失敗時にロールバック | ||
cmd.pre.user | string | N | リリース前に実行>実行アカウント | ||
cmd.pre.cmd | string | N | リリース前に実行>実行コマンド | ||
cmd.deploy.sourcePath | string | N | ファイルリリース>ソースファイルパス | ||
cmd.deploy.deployPath | string | N | ファイルリリース>リリースパス | ||
cmd.post.user | string | N | リリース後に実行>実行アカウント | ||
cmd.post.cmd | string | N | リリース後に実行>実行コマンド |
TScenarioAutoScalingGroup
{
"strategy": "string",
"sequence": "boolean",
"file": {
"type": "string",
"ObjectStorage": {
"bucket": "string",
"object": "string"
},
"SourceBuild": {
"id": "number"
}
},
"rollback": "boolean",
"cmd": {
"pre": [
{
"user": "string",
"cmd": "string"
}
],
"deploy": [
{
"sourcePath": "string",
"deployPath": "string"
}
],
"post": [
{
"user": "string",
"cmd": "string"
}
]
},
"loadBalancer": {
"loadBalancerTargetGroupNo": "number",
"deleteAsg": "boolean",
"deleteServer": "boolean"
}
}
項目 | タイプ | 必須有無 | Default | 説明 | 備考 |
---|---|---|---|---|---|
strategy | string | Y | リリース戦略 | "normal" | "blueGreen" | |
sequence | boolean | N | true | 順次リリースの有無 | false入力時に同時リリース |
file.type | string | Y | リリースファイルの type | "ObjectStorage" | "SourceBuild" | "later" | |
file.ObjectStorage.bucket | string | N (file.type=ObjectStorageの場合、必須) | ObjectStorageバケット名 | objectStorageBucketList APIで照会 | |
file.ObjectStorage.object | string | N (file.type=ObjectStorageの場合、必須) | ObjectStorage objectの位置 | objectstorageobjectlist APIで照会 | |
file.SourceBuild.id | number | N (file.type=SourceBuildの場合、必須) | SourceBuild id | sourceBuildList APIで照会 | |
rollback | boolean | Y | リリース失敗時にロールバック | ||
cmd.pre.user | string | N | リリース前に実行>実行アカウント | ||
cmd.pre.cmd | string | N | リリース前に実行>実行コマンド | ||
cmd.deploy.sourcePath | string | N | ファイルリリース>ソースファイルパス | ||
cmd.deploy.deployPath | string | N | ファイルリリース>リリースパス | ||
cmd.post.user | string | N | リリース後に実行>実行アカウント | ||
cmd.post.cmd | string | N | リリース後に実行>実行コマンド | ||
loadBalancer.loadBalancerTargetGroupNo | number | N (strategy=blueGreenの場合、必須) | ロードバランサの Target Group no | targetGroupList APIで照会 | |
loadBalancer.deleteAsg | boolean | N (strategy=blueGreenの場合、任意) | false | 既存の Auto Scaling Groupの削除有無 | |
loadBalancer.deleteServer | boolean | N (strategy=blueGreenの場合、必須) | 既存の Auto Scaling Group内のサーバ削除有無 | loadBalancer.deleteAsgの値が trueの場合、trueのみ入力可能 |
TSecnarioKubernetesService
{
{
"manifest": {
"type": "string",
"repository": "string",
"branch": "string",
"path": ["string"]
},
"strategy": "string",
"canaryConfig": {
"canaryCount": "number",
"analysisType": "string",
"timeout": "number",
"prometheus": "string",
"env": {
"baseline": "string",
"canary": "string"
},
"metrics": [
{
"name": "string",
"successCriteria": "string",
"queryType": "string",
"weight": "number",
"metric": "string",
"filter": "string",
"query": "string"
}
],
"analysisConfig": {
"duration": "number",
"delay": "number",
"interval": "number",
"step": "number"
},
"passScore": "number"
}
}
項目 | タイプ | 必須有無 | 説明 | 備考 |
---|---|---|---|---|
strategy | string | Y | リリース戦略 | "rolling" | "blueGreen" | "canary" |
manifest.type | string | Y | マニフェストファイルの保存場所 | "SourceCommit" |
manifest.repository | string | Y | リポジトリ | sourceCommitRepostiroyList APIで照会 |
manifest.branch | string | Y | リポジトリブランチ | sourceCommitBranchList APIで照会 |
manifest.path | string[] | Y | ファイルの保存場所 | |
canaryConfig.analysisType | string | N (strategy=canaryの場合、必須) | Canary解析方法 | "manual" | "auto" |
canaryConfig.timeout | number | N (strategy=canary & canaryConfig.analysisType=manualの場合、必須) | リリース/キャンセルの最大時間 | |
canaryConfig.canaryCount | number | N (canaryConfig.analysisType=autoの場合、必須) | Baseline、Canary Podの数 | |
canaryConfig.prometheus | string | N (strategy=canary & canaryConfig.analysisType=autoの場合、必須) | Prometheus Url | |
canaryConfig.env.baseline | string | N (strategy=canary & canaryConfig.analysisType=autoの場合、必須) | 解析環境変数 > baseline | |
canaryConfig.env.canary | string | N (strategy=canary & canaryConfig.analysisType=autoの場合、必須) | 解析環境変数 > canary | |
canaryConfig.metrics.name | string | N (strategy=canary & canaryConfig.analysisType=autoの場合、必須) | メトリック名 | |
canaryConfig.metrics.successCriteria | string | N (strategy=canary & canaryConfig.analysisType=autoの場合、必須) | 成功基準 | "base" | "canary" |
canaryConfig.metrics.queryType | string | N (strategy=canary & canaryConfig.analysisType=autoの場合、必須) | クエリタイプ | "default" | "promQL" |
canaryConfig.metrics.weight | number | N (strategy=canary & canaryConfig.analysisType=autoの場合、必須) | 重み付け | |
canaryConfig.metrics.metric | string | N (strategy=canary & canaryConfig.analysisType=auto &canaryConfig.metrics.queryType="default"の場合、必須) | メトリック | |
canaryConfig.metrics.filter | string | N (strategy=canary & canaryConfig.analysisType=auto & canaryConfig.metrics.queryType="default"の場合、必須) | Filter | |
canaryConfig.metrics.query | string | N (strategy=canary & canaryConfig.analysisType=auto & canaryConfig.metrics.queryType="promQL"の場合、必須) | クエリ | |
canaryConfig.analysisConfig.duration | number | N (strategy=canary & canaryConfig.analysisType=autoの場合、必須) | 分析時間 | |
canaryConfig.analysisConfig.delay | number | N (strategy=canary & canaryConfig.analysisType=autoの場合、必須) | 分析遅延時間 | |
canaryConfig.analysisConfig.interval | number | N (strategy=canary & canaryConfig.analysisType=autoの場合、必須) | 分析の周期 | |
canaryConfig.analysisConfig.step | number | N (strategy=canary & canaryConfig.analysisType=autoの場合、必須) | Metricの収集周期 | |
canaryConfig.passScore | number | N (strategy=canary & canaryConfig.analysisType=autoの場合、必須) | 解析成功スコア |
TSecnarioObjectStorage
{
"file": {
"type": "string",
"ObjectStorage": {
"bucket": "string",
"object": "string"
},
"SourceBuild": {
"id": "number"
}
},
"path": [
{
"sourcePath": "string",
"deployPath": "string"
}
]
}
項目 | タイプ | 必須有無 | 説明 | 備考 |
---|---|---|---|---|
file.type | string | Y | リリースファイルの type | "ObjectStorage" | "SourceBuild" | "later" |
file.ObjectStorage.bucket | string | N (file.type=ObjectStorageの場合、必須) | ObjectStorageバケット名 | objectStorageBucketList APIで照会 |
file.ObjectStorage.object | string | N (file.type=ObjectStorageの場合、必須) | ObjectStorage objectの位置 | objectstorageobjectlist APIで照会 |
file.SourceBuild.id | number | N (file.type=SourceBuildの場合、必須) | SourceBuild id | sourceBuildList APIで照会 |
path.sourcePath | string | N | ソースファイルのパス | |
path.deployPath | string | N | リリースパス |
レスポンス
レスポンス Body
{
"id": "number",
"name": "string"
}
項目 | タイプ | 説明 | 備考 |
---|---|---|---|
id | number | シナリオ id | |
name | string | シナリオ名 |
この記事は役に立ちましたか?