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

Function Compute:用語

最終更新日:Aug 28, 2024

このトピックでは、パイプライン、パイプラインテンプレート、タスク、タスクテンプレート、コンテキストなど、パイプラインに関連する用語について説明します。

概要

パイプラインとパイプラインテンプレートは、Serverless Application Centerで使用されます。 パイプラインは、パイプラインテンプレートを参照し、実行コンテキストを提供することによって、パイプライン実行および実行結果を記述する。 パイプラインテンプレートは、タスクとタスク間の依存関係を記述することによって実行プロセスを記述する。

タスクとタスクテンプレートは、Serverless Application Centerのパイプラインで使用され、パイプラインの実行ステップと実行方法を記述します。 タスクは、タスクテンプレートを参照して、パイプラインの実行ステップと実行結果を記述する実行コンテキストを提供します。 タスクテンプレートは、タスクの実行方法を記述し、タスクの実行方法を指定するコンテキストをプリセットするオプションを提供します。

タスクとタスクテンプレートを使用すると、パイプラインでタスク実行の説明が不要になります。 Serverless Application Centerのタスクおよびタスクテンプレートの概念により、パイプラインの説明が簡単になり、ユーザーがカスタムパイプラインを簡単に構築できるようになります。

パイプライン

パイプラインは、パイプラインテンプレートの実行である。 たとえば、トリガールールがコードリポジトリに設定されている場合、ビルドおよびリリース操作は各プッシュイベント中に実行されます。 ユーザーがコードをコードリポジトリにプッシュするたびに、パイプラインオブジェクトがサーバーレスアプリケーションセンターに作成され、実行結果を含む実行の詳細が記録されます。 以下の図は一例です。

pipeline-concept1

パイプラインテンプレート

パイプラインテンプレートは、ビルドとリリースのシナリオなど、継続的インテグレーションと継続的デプロイメント (CI/CD) のシナリオの説明です。 パイプラインテンプレートは、タスクとタスク間の依存関係を記述することによって、特定のCI/CDシナリオのプロセスを指定します。 パイプラインテンプレートは再利用できます。 たとえば、ビルドと配置のシナリオでは、コードリポジトリのコードに基づいて製品をビルドし、承認後に製品をクラウドにリリースする必要があります。 次の図は、ビルド、承認、および展開タスク間の依存関係を示しています。 pipeline-concept2

タスク

タスクはパイプラインの主要コンポーネントです。 タスクは、パイプライン内の実行ステップおよび実行結果を記述する。 ほとんどの場合、ユーザーは別のタスクを実行しません。 パイプラインのタスクは、パイプラインの実行時に生成されます。 たとえば、ビルドおよび配置パイプラインがトリガーされると、次の3つの独立したタスク、ビルド、承認、配置が順番に生成されます。 ビルドタスクは、コードリポジトリ内のコードに基づいて製品をビルドするために独立して実行されます。

タスクの実行結果は、テキストまたは構造体として出力できます。 生成されたファイルとイメージは、タスクの実行中に保存する必要があります。

タスクは、テンプレートの仕様と実行コンテキストに基づいて、Alibaba Cloudサンドボックス環境または現在のアカウントで実行できます。

pipeline-task-concept

タスクテンプレート

タスクテンプレートは、タスクの実行方法を記述し、タスクの実行方法を指定するコンテキストをプリセットするオプションを提供します。 Serverless Application Centerは、承認、展開、カスタム実行タスクなどの一般的なタスクテンプレートを提供します。 新しいテンプレートを作成して、カスタムロジックを実装することもできます。 タスクテンプレートは、パイプラインの説明を簡素化できます。

実行コンテキスト

実行コンテキストは、パイプラインとタスクの実行方法に影響し、パイプラインとタスクの入力として機能します。 特定の条件を満たすGitイベントが生成されるか、パイプラインをトリガーすると、パイプラインオブジェクトが作成されます。 トリガーコンテキストはパラメータ化され、実行コンテキストに渡されます。

パイプライン実行中、タスクが生成され実行される。 実行エンジンは、パイプラインの実行コンテキスト (ctx_pipeline) をパイプラインテンプレートにプリセットされている実行コンテキスト (ctx_pipelinetemplate) にマージして、タスクの実行コンテキスト (ctx_task) として新しい実行コンテキストを生成します。 タスクが実行されているとき、実行エンジンは、タスク実行コンテキストを、タスク (ctx) の実行コンテキストとしてタスクテンプレート (ctx_tasktemplate) の実行コンテキストとマージする。

+ 演算子がマージアクションを記述するために使用される場合、実行コンテキストctx_1の実行コンテキストctx_2へのマージは、ctx_1 + ctx_2として記録され得る。 前述のマージロジックは、ctx_task=ctx_pipeline + ctx_pipelinetemplateおよびctx=ctx_task + ctx_tasktemplateとして記述できます。 マージロジックは、ctx=ctx_pipeline + ctx_pipelinetemplate + ctx_tasktemplateとして記述することもできます。 詳細は以下の図をご参照ください。

pipeline-template-task

マージアクションは、Serverless Application Centerで明示的に定義されます。 マージされたオブジェクトはJSONオブジェクトであり、マージの実装標準はJSONマージパッチです。 たとえば、ctx_1 + ctx_2は、ctx_1のデータの優先度が高いことを指定します。 ctx_2のデータが上書きされ、新しいJSONオブジェクトが生成されます。

マージ行動は可換法をサポートしていません。 たとえば、ctx_1 + ctx_2ctx_2 + ctx_1と同じではありません。 ctx_1 + ctx_2はctx_1がctx_2にマージされることを指定し、ctx_2 + ctx_1はctx_2がctx_1にマージされることを指定します。 次の図は、各アクションの動作と結果を示しています。

context-merge

タスクが実行されると、タスクの実行コンテキストがテンプレートに事前設定された実行コンテキストとマージされ、最終的な実行コンテキストとして使用されます。 タスクが配置されているノードは、実行コンテキストを含む要求を受信し、コンテキストに基づいて対応するロジックを実行する。

pipeline-context-merge