コンテンツに移動
アプリケーション開発

Workflows の JSON スキーマ更新について

2023年4月14日
Google Cloud Japan Team

※この投稿は米国時間 2023 年 4 月 11 日に、Google Cloud blog に投稿されたものの抄訳です。

Workflows を使用するユーザーは、Workflows の定義を YAML(または JSON)で作成しています。こうした YAML 定義による構文検証やオートコンプリートについては、IDE で利用できるサポートが限られていることを皆様も痛感していらっしゃることでしょう。これは、昨年の投稿で取り上げたとおり、Workflow のスキーマが古くなっていることが原因でした。

このたび、Workflows スキーマを最新の構文で更新することができましたので、お知らせいたします。新しいスキーマを使用すると、お気に入りの IDE における Workflows 定義ファイルの構文検証とオートコンプリートの機能が大幅に向上します。

詳細を見ていきましょう。

Workflows スキーマ

JSON Schema Store は JSON スキーマの一般的なリポジトリです。さまざまなエディタと IDE が、SchemaStore.org でホストされるスキーマを直接サポートしています。Workflows にも、Schema Store でホストされているスキーマがあります。


このスキーマは最近、parallel、for、try、except などの Workflows の最新の構文で更新されました。

スキーマは構成ファイルの検証に使用する場合にのみ役立ちます。ここでは、Visual Studio Code(VS Code)と IntelliJ でスキーマを利用する方法をご紹介します。

VS Code で Workflows スキーマを使用する

お好みの設定に応じて、VS Code で Workflows スキーマをいくつかの異なる方法で使用できます。

純粋な VS Code を使用する場合、こちらで説明している設定を使い、JSON スキーマで JSON ファイルの具体的な形を理解できます。拡張機能を使用して他のサポートも利用するため、この設定方法については詳しく説明しません。

すでに Cloud Code for VS Code を Google Cloud に使用している場合、すぐに使える JSON Schema Store のサポートが用意されています。特別なセットアップや設定を理解する必要はありません。workflows.yaml ファイルを作成するだけで利用できます。ワークフロー定義の入力を開始して、Control+Space キー(Mac OS の場合)を押せば、オートコンプリートの候補を表示できます。main は Workflows スキーマから取得されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image0.max-1100x1100.png

注: workflows.yaml ファイルがワークスペース、またはスキーマ検証向けのフォルダの中にあることをご確認ください。

もう一つの方法は、Red Hat による YAML Language Support 拡張機能をインストールすることです。この拡張機能は YAML サポートを Visual Studio Code に追加するだけでなく、JSON Schema Store を参照して YAML ファイルを検証します。拡張機能をインストールしたら、workflows.yaml ファイルを作成します。次のとおり、上部に Workflows スキーマへのリンクが表示されるようになります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image1_Q0cB5Cl.max-600x600.png

スキーマをクリックすると、Visual Studio Code で完全なスキーマを表示することもできます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image2_VzSb6K5.max-1500x1500.png

IntelliJ で Workflows スキーマを使用する

IntelliJ は、JSON スキーマを非常に効果的にサポートするもう一つの IDE です。Cloud Code for IntelliJ では、この場合も JSON スキーマのサポートがすぐに使えます。ただし、純粋な IntelliJ を使用する場合は、[Preferences] に移動し、URL やファイル パターンを指定して Workflows スキーマを追加します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image3_7RodRkX.max-1400x1400.png

これで、IntelliJ は *workflows.yaml パターンに一致するすべてのファイルを Workflows ファイルとして解釈します。ここで例として、my-workflows.yaml file ファイルを見てみましょう。オートコンプリートにより、候補が表示されています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image4_UDuOj2W.max-1000x1000.png

構文検証とオートコンプリートの機能向上

IDE でスキーマを使用してワークフロー定義を検証すると、非常に優れた構文検証とオートコンプリートのサポートを利用できます。  

たとえば、call の有効な値を確認できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image5_sa1iSWE.max-700x700.png

間違って入力した場合、警告が表示されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image6_wxIOIrm.max-700x700.png

必要なプロパティを忘れた場合:

https://storage.googleapis.com/gweb-cloudblog-publish/images/image6a.max-700x700.png

インライン ドキュメントが表示された場合:

https://storage.googleapis.com/gweb-cloudblog-publish/images/image7_ENfdj8S.max-500x500.png

配列の最小、最大、重複のチェックが表示された場合:

https://storage.googleapis.com/gweb-cloudblog-publish/images/image8_Og2MST7.max-1100x1100.png

ワークフロー定義を正しく理解するのは容易ではありませんが、JSON スキーマのサポートにより、IDE の非常に優れた支援機能を利用できるようになりました。Google Cloud ドキュメントにある Workflows のサンプルを試しに編集し、改善された新しい JSON スキーマが役立つかどうかをご確認ください。スキーマで問題が発生した場合は、workflows-samples リポジトリで issue を作成してください。ご不明な点やフィードバックがございましたら、Twitter で @meteatamel までお気軽にお問い合わせください。


- デベロッパー アドボケイト Mete Atamel
投稿先