Serverless Application Center では、カスタマイズ可能なパイプライン実行を提供します。パイプラインの構成およびタスクフローのオーケストレーションを行い、コードを Function Compute へデプロイできます。本トピックでは、コンソールにおけるパイプラインの管理方法について説明します。具体的には、パイプラインの構成設定、パイプライン詳細設定、およびパイプライン実行履歴の確認が含まれます。
背景情報
アプリケーションを作成すると、プラットフォームによりデフォルトの環境が自動的に作成されます。この環境に対して、パイプラインを起動する Git イベントを指定し、パイプラインを構成できます。構成方法は「自動構成」と「カスタム構成」から選択可能です。自動構成を選択した場合、各設定項目にデフォルト値を用いてパイプラインが作成されます。カスタム構成を選択した場合、環境のパイプラインに対する Git イベントトリガー方式およびパイプライン実行環境を個別に指定できます。Git 情報やアプリケーション情報などの各種情報は、実行コンテキストとしてパイプラインに渡されます。
パイプライン構成を編集する際には、トリガー方式および実行環境に加えて、DingTalk 通知およびリソース記述 YAML ファイルの構成も可能です。
アプリケーションまたは環境の作成時にパイプラインを構成する
アプリケーションまたは環境を作成する際に、パイプラインの Git トリガー方式および実行環境を指定できます。

環境でパイプラインを編集する
既存の環境では、[パイプライン管理] タブから、パイプラインの Git トリガー方式、実行環境、DingTalk 通知、およびリソース記述 YAML ファイルを編集できます。

パイプライン構成
パイプライン構成には、主に以下の 4 つの項目があります:トリガー方式、実行環境、リソース記述 YAML、および DingTalk チャットボット通知。アプリケーションまたは環境の作成時に、トリガー方式および実行環境を構成できます。作成後に構成を変更する場合は、[編集] ボタンをクリックして、すべての 4 つの項目を設定できます。

パイプライントリガー方式
Application Center では、パイプラインを起動する Git イベントをカスタマイズできます。Application Center は Webhook を使用して Git イベントを受信します。トリガー規則に一致するイベントを受信すると、構成済みのパイプライン YAML ファイルに基づき、パイプラインが作成・実行されます。サポートされるトリガー方式は以下のとおりです。
ブランチトリガー:環境は指定されたブランチに関連付けられている必要があります。指定されたブランチに対するすべての Push イベントに一致します。
タグトリガー:指定されたタグ式に対するすべてのタグ作成イベントに一致します。
ブランチマージトリガー:環境に関連付けられたターゲットブランチへの、指定されたソースブランチからの Merge または Pull Request イベントに一致します。
パイプライン実行環境
パイプラインの実行環境 には、「デフォルト実行環境」と「専用実行環境」の 2 つのモードがあります。
デフォルト実行環境
デフォルト実行環境では、プラットフォームがパイプラインリソースを完全に管理します。Alibaba Cloud Function Compute がパイプライン実行のコストを負担するため、お客様には追加料金は発生しません。各パイプラインタスクは、独立したサンドボックスコンテナ内で実行されます。プラットフォームは、パイプライン実行環境の隔離を保証します。デフォルト実行環境には、以下の制限があります。
インスタンスリソース仕様:4 vCPU、8 GB メモリ。
一時ディスク領域:10 GB。
タスク実行タイムアウト:15 分。
リージョン制限:テンプレートによる直接デプロイおよび GitHub コードソースは中国以外のシンガポールリージョンを使用します。Gitee、パブリック GitLab、Codeup は中国 (杭州) リージョンを使用します。
ネットワーク制限:固定 IP アドレスおよび CIDR ブロックはサポートされていません。IP アドレスホワイトリストを用いた特定ウェブサイトへのアクセスはサポートされていません。VPC 内のリソースへのアクセスはサポートされていません。
専用実行環境
専用実行環境 では、パイプラインタスクがお客様のアカウント内で実行され、より高度なカスタマイズが可能です。お客様の権限付与に基づき、Application Center は専用実行環境内のタスクを完全に管理し、お客様のアカウント内の Function Compute インスタンスをリアルタイムでスケジュールしてパイプラインを実行します。デフォルト実行環境と同様に、専用実行環境も完全なサーバーレス環境です。基盤となるインフラストラクチャの管理は不要です。
専用実行環境 では、以下のカスタマイズオプションが提供されます。
リージョンおよびネットワーク:実行環境のリージョンおよび VPC を指定でき、プライベートネットワーク上のコードリポジトリ、アーティファクトリポジトリ、イメージリポジトリ、およびプライベート Maven サーバーへのアクセスなど、さまざまなシナリオに対応できます。対応リージョンの詳細については、「リージョン」をご参照ください。
インスタンスリソース仕様:実行環境の CPU およびメモリ仕様を指定できます。たとえば、ビルド速度向上のためにより大きなインスタンスを指定できます。
説明vCPU 数とメモリ(GB)の比率は、1:1 ~ 1:4 の範囲である必要があります。
永続ストレージ:NAS および OSS のマウント構成を指定できます。たとえば、ファイルキャッシュ用に NAS ファイルシステムをマウントすることで、ビルドを高速化できます。
ログ:パイプライン実行ログの永続化先として、SLS プロジェクトおよび Logstore を指定できます。
タイムアウト:パイプラインタスクの実行タイムアウトをカスタマイズできます。デフォルト値は 600 秒、最大値は 86,400 秒です。
専用実行環境では、お客様の Function Compute アカウント内でパイプラインタスクが実行されるため、関連する課金が発生します。詳細については、「課金概要」をご参照ください。
リソース定義 YAML
Serverless Application Center は、Serverless Devs 開発者ツールと深く統合されています。Serverless Devs のリソース記述ファイルを使用して、アプリケーションのリソース構成を宣言できます。デフォルトのリソース記述ファイル名は `s.yaml` ですが、別のファイル名を指定することもできます。リソース記述ファイルを指定した後、パイプライン内では以下の 2 通りの方法で利用できます。
@serverless-cd/s-deployデプロイメントプラグインを使用する場合、プラグインは指定されたリソース記述ファイルを自動的にデプロイに使用します。これは、Serverless Devs の操作命令に-t/--templateコマンドを追加することで実現されます。次の例では、指定されたリソース記述 YAML ファイルがdemo.yamlであるため、プラグインによって実行されるコマンドはs deploy -t demo.yamlとなります。
- name: deploy
context:
data:
deployFile: demo.yaml
steps:
- plugin: '@serverless-cd/s-setup'
- plugin: '@serverless-cd/checkout'
- plugin: '@serverless-cd/s-deploy'
taskTemplate: serverless-runner-taskスクリプトを使用して実行する場合、
${{ ctx.data.deployFile }}を用いて、特定のリソース記述ファイル名を参照できます。たとえば、次のサンプルコードでは、リソース記述ファイルが指定されている場合は `s plan` コマンドをそのファイルで実行し、指定されていない場合はデフォルトの `s.yaml` ファイルで実行します。
- name: pre-check
context:
data:
steps:
- run: s plan -t ${{ ctx.data.deployFile || s.yaml }}
- run: echo "s plan finished."
taskTemplate: serverless-runner-taskDingTalk ロボット通知
この構成を有効化した後、DingTalk ロボットの Webhook アドレス、署名キー、通知ルール、および カスタムメッセージ を構成してください。ここで、通知が必要なタスクを一元管理できます。また、パイプライン YAML ファイルを介して、各タスクごとに個別に通知を有効化することも可能です。ここでの全体的な通知構成を完了した後、パイプラインの詳細 で、各タスクの通知設定をさらに細かく調整できます。
パイプライン環境変数
パイプラインの環境変数 セクションで、変更 をクリックし、環境の構成方法を選択して、以下に示す手順に従って構成を完了した後、[デプロイ] をクリックします。
フォーム形式で編集(デフォルト)
+変数を追加 をクリックします。
環境変数のキーと値のペアを構成します。
変数:任意に指定可能。
値:任意に指定可能。
JSON 形式で編集
JSON 形式で編集 をクリックします。
テキストボックスに、以下の形式でキーと値のペアを JSON 形式で入力します。
{ "key": "value" }次の例をご参照ください。
{ "REGION": "MY_REGION", "LOG_PROJECT": "MY_LOG_PROJECT" }
環境変数は Serverless Devs パイプライン内で有効になります。`s.yaml` 内では ${env(key)} を、シェルコマンド内では $Key を使用して参照できます。次の例をご参照ください。
vars:
region: ${env(REGION)}
service:
name: demo-service-${env(prefix)}
internetAccess: true
logConfig:
project: ${env(LOG_PROJECT)}
logstore: fc-console-function-pre
vpcConfig:
securityGroupId: ${env(SG_ID)}
vswitchIds:
- ${env(VSWITCH_ID)}
vpcId: ${env(VPC_ID)}パイプライン詳細
パイプラインの詳細 セクションでは、パイプラインフローの構成およびパイプライン内のタスクとその依存関係に関する詳細設定を行えます。プラットフォームはデフォルトのパイプラインフローを自動生成しますが、これを編集することも可能です。
パイプラインは YAML ファイルで管理されます。構成方法には、「プラットフォーム管理」と「リポジトリの読み取り」の 2 つがあります。
プラットフォームホスティング方式では、事前定義された YAML 変数はサポートされていません。詳細については、「YAML ファイルを用いたパイプラインの記述」をご参照ください。
リポジトリホスティング方式では、YAML ファイル内の事前定義変数がサポートされます。
プラットフォームホスティング
デフォルトでは、パイプライン YAML ファイルはプラットフォームがホストします。つまり、構成はプラットフォーム上で一元管理され、更新後に次回のデプロイで反映されます。
リポジトリから読み込み
パイプラインの YAML 記述ファイルは、リモート Git リポジトリに保存されます。コンソールで編集・保存すると、プラットフォームが変更内容をリアルタイムでお客様の Git リポジトリにコミットします。このコミットはパイプライン実行をトリガーしません。コードリポジトリ内のイベントがパイプラインをトリガーすると、プラットフォームはお客様が指定した Git リポジトリ内のパイプライン YAML ファイルを用いて、パイプラインを作成・実行します。
リポジトリの読み取り を、パイプラインの詳細 セクションの上部で選択し、YAML ファイル名を入力します(下図参照)。

パイプラインの詳細 セクションの主な構成要素は、左側のサポートツールエリアと右側の YAML 編集エリアです。
YAML 編集エリア:パイプライン YAML ファイルを直接編集して、パイプラインフローを変更できます。「YAML ファイルを用いたパイプラインの記述」をご参照ください。
サポートツールエリア:YAML 編集を支援するツールを提供しており、以下の機能が含まれます。
プロセスプレビュー:パイプラインフローの視覚的プレビューおよび簡単な編集機能を提供します。
タスクテンプレート:共通タスク向けの一連の YAML テンプレートを提供します。
セクションの右上には、[保存]、[全画面表示]、[リセット] の 3 つのボタンがあります。
[保存] ボタン:ページ上で行った YAML ファイルの変更を保存し、パイプライン YAML ファイルと同期します。
[全画面表示] ボタン:メイン編集エリアを全画面表示に拡大します。
[リセット] ボタン:直近の保存以降に行ったすべての変更をキャンセルし、初期状態に戻します。
[リセット] を選択すると、直近の保存以降に行われたすべての変更が失われます。慎重に使用し、必要に応じてバックアップを取得してください。
フロープレビュー
プロセスプレビュー エリアでは、パイプラインフローを視覚的にプレビューできます。基本的なタスク内容および依存関係の簡単な編集をサポートし、テンプレートからタスクを素早く作成・追加できます。フローチャートのノードは、主に以下の 3 種類に分類されます:開始点となるコードソースおよびトリガー方式ノード、終了ノード、およびタスクノード。ノード間は依存関係を表す線で接続されています。タスクノードにマウスカーソルを合わせると、[タスクの作成] および [タスクの削除] ボタンが表示され、タスクの追加・削除が容易になります。

コードソースおよびトリガー方式ノード(開始ノード)
このノードには、現在のパイプラインの コードソース 情報および トリガーモード が表示されます。表示専用であり、編集できません。パイプラインのトリガー方式を変更するには、パイプラインの設定 セクションに移動してください。
重要コードリポジトリを変更するには、アプリケーション詳細ページで行ってください。「アプリケーションの管理」をご参照ください。コードリポジトリを変更すると、すべてのパイプラインが無効になります。十分に注意して実行してください。
終了ノード
パイプラインフローの終了を示すノードで、パイプライン内のすべてのタスクが完了したことを意味します。読み取り専用であり、実質的な意味はありません。
タスクノード
指定されたタスクの基本情報を表示・維持します。デフォルトではタスク名が表示されます。ノードをクリックするとポップアップボックスが開き、タスク名、先行タスク、および タスクの開始 の有効/無効設定など、基本情報を表示・編集できます。タスクの開始を無効化すると、実行時に自動的にスキップされ、グレーアウト表示されます。
依存関係
タスク間の関係を示す単方向の矢印です。矢印がタスク A からタスク B に向かっている場合、A は B の先行タスクであり、B は A に依存していることを意味します。各タスクは複数のタスクに依存でき、また複数のタスクから依存されることもできます。
依存関係は、依存先タスクの 先行タスク を編集することで変更できます。たとえば、B が A に依存しないようにするには、B のタスクノードをクリックし、その先行タスクから A を削除します。
タスクの作成
このボタンは「+」アイコンで表され、タスクノードの上部、下部、および右側に表示されます。タスク A の上部にある [タスクの作成] ボタンをクリックすると、A が依存する先行タスク B が作成されます。タスク A の下部にある [タスクの作成] ボタンをクリックすると、A に依存する後続タスク C が作成されます。タスク A の右側にある [タスクの作成] ボタンをクリックすると、A と同じ依存関係を持つ兄弟タスク D が作成されます。
タスクの削除
このボタンはタスクノードの右上隅に「×」アイコンで表示され、選択したタスクを削除するために使用されます。誤って削除しないよう、プラットフォームが確認を求めるダイアログを表示します。

タスクテンプレート
タスクテンプレート では、共通のパイプラインタスク向けに一連の YAML テンプレートを提供しています。対応するタスクタイプは、コードチェック、ビルド、デプロイ、および 一般 の 4 種類です。また、タスク内の 詳細設定 および タスクプラグイン 向けの YAML テンプレートも提供されています。
テンプレート一覧から必要なテンプレートを選択できます。テンプレートをクリックすると、その詳細な説明および YAML コンテンツが表示されるため、パイプライン YAML ファイルの該当箇所にコピー&ペーストできます。

デフォルトパイプラインフロー
デフォルトパイプラインフローには、順次実行される 3 つのタスクが含まれます:オンライン設定の比較、手動レビュー、および ビルドとデプロイ です。手動レビューのタスクはデフォルトで無効化されており、手動で有効化する必要があります。
オンライン設定の比較
パイプラインで使用されるリソース記述ファイルがオンライン構成と一致しているかどうかを判定し、予期せぬ構成変更を事前に検出します。
手動レビュー
アプリケーションの安全かつ安定したリリースを確保するため、この段階で手動レビュー機構を有効化できます。パイプラインがこのステップに達すると、手動による承認を待って実行が一時停止します。レビューが承認された場合のみパイプラインが継続され、承認されない場合は現在のパイプラインが停止します。このタスクはデフォルトで無効化されており、手動で有効化する必要があります。
ビルドとデプロイ
アプリケーションをビルドし、クラウドへデプロイします。デフォルトではフルデプロイが実行されます。

パイプライン実行履歴の表示
指定された環境の詳細ページで、パイプライン管理 タブを選択します。パイプライン実行履歴 セクションでは、指定されたパイプラインの過去の実行記録を確認できます。
特定のパイプライン実行バージョンをクリックすると、その詳細を表示できます。これにより、パイプラインの実行ログおよびステータスを素早く確認でき、進行状況のモニタリングや問題のトラブルシューティングが容易になります。
パイプラインビルド環境ランタイムのアップグレード
現在、デフォルトパイプラインビルド環境でサポートされているランタイムは以下のとおりです。組み込みのパッケージ管理ツールには、Maven、PIP、NPM が含まれます。現在、ランタイム環境としてサポートされているオペレーティングシステムは Debian 10 のみです。
ランタイム | サポートバージョン |
Node.js |
|
Java |
|
Python |
|
Golang |
|
PHP |
|
.NET |
|
パイプラインランタイムバージョンは、runtime-setup パイプラインプラグイン を使用するか、リソース記述ファイル内の環境変数 を変更することで設定できます。
runtime-setup パイプラインプラグイン(推奨)
Function Compute コンソール でアプリケーションを見つけます。パイプライン管理 タブの パイプラインの詳細 セクションで、[ランタイムの設定] タスクプラグインテンプレートを選択します。タスクテンプレートを使用して、右側のパイプライン YAML ファイルを更新します。手順は以下のとおりです:タスクテンプレート(下図①)、タスクプラグイン(下図②)、Runtime の設定(下図③)、右側の YAML を更新(下図④)、保存(下図⑤)です。
すべての後続ステップに影響を与えるため、runtime-setup プラグインは最初に配置してください。

runtime-setup プラグインの詳細パラメーターについては、「runtime-setup プラグインを用いたランタイム環境の初期化」をご参照ください。
リソース記述ファイルの環境変数
リソース記述ファイル内の Action フックを使用して、Node.js または Python のバージョンを切り替えることもできます。詳細は以下のとおりです。
Node.js
export PATH=/usr/local/versions/node/v12.22.12/bin:$PATH
export PATH=/usr/local/versions/node/v16.15.0/bin:$PATH
export PATH=/usr/local/versions/node/v14.19.2/bin:$PATH
export PATH=/usr/local/versions/node/v18.14.2/bin:$PATH
次の例をご参照ください。
services: upgrade_runtime: component: 'fc' actions: pre-deploy: - run: export PATH=/usr/local/versions/node/v18.14.2/bin:$PATH && npm run build props: ...Python
export PATH=/usr/local/envs/py27/bin:$PATH
export PATH=/usr/local/envs/py36/bin:$PATH
export PATH=/usr/local/envs/py37/bin:$PATH
export PATH=/usr/local/envs/py39/bin:$PATH
export PATH=/usr/local/envs/py310/bin:$PATH
次の例をご参照ください。
services: upgrade_runtime: component: 'fc' actions: pre-deploy: - run: export PATH=/usr/local/envs/py310/bin:$PATH && pip3 install -r requirements.txt -t . props: ...