IDE で Workflows JSON スキーマを使用する

ワークフローの作成時に構文サポートを提供するには、Visual Studio Code(VS Code)や Intellij IDEA などの統合開発環境(IDE)で Workflows JSON スキーマを使用します。構文サポートには、オートコンプリート、検証、インライン ドキュメントが含まれます。スキーマを CI / CD プロセスに統合することもできます。

Workflows JSON スキーマは、JSON Schema で記述されます。JSON Schema は、JSON ドキュメントにアノテーションを付けて検証できる宣言型言語です。スキーマソースは、一般的な JSON ベースの構成ファイルのスキーマのリポジトリである SchemaStore.org でホストされています。なお、SchemaStore.org のスキーマは、YAML ファイルにも適用できます。

使用する IDE またはエディタに応じて、プラグインをインストールするか、Workflows スキーマを使用する組み込みサポートを適用することが可能です。スキーマは、プロジェクトのルートの下にローカルに保存するか、SchemaStore.org のリソース URL から指定することが可能です。

ワークフロー定義ファイルのファイル名の形式

使用する IDE またはエディタに関係なく、プラグインまたは拡張機能を使用して SchemaStore.org の Workflows スキーマを自動的に適用する場合は、ワークフロー定義ファイルのファイル名の形式を以下のようにする必要があります。

  • workflows.json
  • workflows.yaml
  • workflows.yml
  • *.workflows.json
  • *.workflows.yaml
  • *.workflows.yml

VS Code を使用している場合、または Workflows スキーマの適用に組み込みサポートを使用している場合は、ファイル名の形式をオーバーライドできます。

制限事項

Workflows JSON スキーマによる構文のサポートは、ワークフローを定義するキーワードのオートコンプリートに重点を置いています。スキーマでは、一部の標準ライブラリ関数のオートコンプリートがサポートされていますが、動的変数名、式、その他の式ヘルパーのサポートは限られています。またスキーマは、ワークフローが完了済みで、サブワークフローの結合などの後処理が考慮されていないことも前提としています。

JSON スキーマの競合を避けるため、Workflows の構文サポートには、複数の拡張機能またはプラグインを使用しないことをおすすめします。

Workflows JSON スキーマを VS Code に関連付ける

VS Code はデスクトップで実行されるソースコード エディタで、Windows、macOS、Linux で使用できます。いくつかの言語のサポートが組み込まれており、他の言語やランタイムの拡張機能がサポートされています。マシンに VS Code をインストールして設定するには、Visual Studio Code をご覧ください。

Workflows JSON スキーマを VS Code に関連付けるには、以下のようなさまざまな方法があります。

Cloud Code を使用して YAML でワークフローを作成する

Cloud Code は、アプリケーションの作成、デプロイ、Google Cloud との統合を容易にする IDE プラグインのセットです。

VS Code を IDE として使用している場合、YAML ワークフローの作成時に Cloud Code を使用すると、SchemaStore.org から Workflows JSON スキーマが自動的に pull されます。スキーマが期待どおりに適用されていることを確認するには、VS Code ワークスペースまたはフォルダに YAML ワークフローを作成し、Workflows キーワードのオートコンプリートが行われていることを確認します。

Cloud Code はオフラインの Google Cloud スキーマもサポートしており、ネットワークや IDE の制限があるユーザーが使用できます。詳細については、以下をご覧ください。

RedHat の YAML を使用して YAML でワークフローを作成する

Cloud Code for VS Code 拡張機能を使用する代わりに、RedHat 拡張機能の YAML を使用することもできます。この拡張機能は、YAML 言語に対応しており、Kubernetes の構文サポートが組み込まれています。SchemaStore.org から Workflows JSON スキーマを自動的に pull します。

拡張機能をインストールしたら、YAML ワークフローを作成します。ファイルの上部には、Google Cloud Workflows 構成ファイル(workflows.json)のリンクがあります。リンクをクリックすると、VS Code エディタで Workflows JSON スキーマが開きます。

ファイル名の形式をオーバーライドする

Cloud Code または RedHat の YAML を使用して YAML でワークフローを作成する場合は、Workflows スキーマが適用されるデフォルトのファイル名形式をオーバーライドできます。マッピングは settings.json ファイルで指定する必要があります。設定は JSON 形式で記述されます。このファイルは VS Code エディタで開くことで、直接確認および編集できます。

たとえば、Cloud Code for VS Code 拡張機能を使用している場合は、プロパティ cloudcode.yaml.schemas でファイル名の形式をマッピングできます。

{
    "cloudcode.yaml.schemas": {
        "https://json.schemastore.org/workflows.json": [
            "GLOB_PATTERN.yaml",
            "my-special-workflow.yaml"
        ]
    }
}

また、RedHat 拡張機能の YAML を使用している場合は、プロパティ yaml.schemas でファイル名の形式をマッピングします。

{
    "yaml.schemas": {
        "https://json.schemastore.org/workflows.json": [
            "GLOB_PATTERN.yaml",
            "my-special-workflow.yaml"
        ]
    }
}

左側のスキーマは右側の glob パターンに適用されます。各スキーマは、JSON 配列を使用して複数の glob に関連付けられます。スキーマは絶対パスではなく相対パスである必要があります。スキーマはローカルにもオンラインにも設定できます。

JSON でワークフローを作成するために組み込みサポートを使用する

VS Code の組み込みサポートを使用して、プロパティ json.schemassettings.json ファイルのマッピングを指定することで、Workflows JSON スキーマを関連付けることができます。このファイルは VS Code エディタで開くことで、直接確認と編集ができます。

たとえば、SchemaStore.org から Workflows JSON スキーマを pull するには、次のコマンドを実行します。

{
    "json.schemas": [
        {
            "description": "SchemaStore.org",
            "fileMatch": [
                "workflows.json",
                "*.workflows.json"
            ],
            "url": "https://json.schemastore.org/workflows.json"
         }
    ]
}

左側のスキーマは右側の glob パターンに適用されます。スキーマは、JSON 配列を使用して複数の glob に関連付けられます。スキーマは絶対パスではなく相対パスである必要があります。スキーマはローカルにもオンラインにも設定できます。

ファイル名の形式をオーバーライドできます。例:

{
    "json.schemas": [
        {
            "description": "Workflows schema",
            "fileMatch": [
                "GLOB_PATTERN.json",
                "FILE_NAME.json"
            ],
            "url": "https://json.schemastore.org/workflows.json"
        }
    ]
}

詳しくは、Visual Studio Code で JSON を編集するをご覧ください。

IntelliJ IDEA 内で Workflows JSON スキーマを関連付ける

IntelliJ IDEA は、Java 仮想マシン言語向けのクロス プラットフォーム IDE です。他の言語はプラグインでサポートされています。マシンに IntelliJ IDEA をインストールして設定するには、IntelliJ IDEA をインストールするをご覧ください。

Workflows JSON スキーマを IntelliJ IDEA 内で関連付けるには、以下のようなさまざまな方法があります。

Cloud Code を使用して YAML または JSON でワークフローを作成する

Cloud Code は、アプリケーションの作成、デプロイ、Google Cloud との統合を容易にする IDE プラグインのセットです。

IntelliJ を IDE として使用している場合、YAML または JSON でワークフローを作成するときに Cloud Code を使用すると、SchemaStore.org から Workflows JSON スキーマが自動的に pull されます。Cloud Code はオフラインの Google Cloud スキーマもサポートしており、ネットワークや IDE の制限があるユーザーが使用できます。詳細については、次のリソースをご覧ください。

組み込みサポートを使用して YAML または JSON でワークフローを作成する

IntelliJ IDEA は、SchemaStore.org からスキーマを自動的にダウンロードして使用できます。Workflows JSON スキーマをダウンロードしてプロジェクトのルートに保存できます。また、IntelliJ IDEA がスキーマを自動的にダウンロードできるようにリソースの URL を指定することもできます。スキーマをマッピングするには、カスタム JSON スキーマの構成の手順を行ってください。

デフォルトでは、SchemaStore.org からのスキーマの自動ダウンロードが有効で、デフォルトのファイル名パターンがスキーマと照合されて検証されます。

デフォルトのファイル パターンをオーバーライドするには、[設定] ダイアログで [JSON Schema Mappings] に移動して、次の操作を行います。

  1. [名前] フィールドに、「Workflows スキーマ」と入力します。
  2. [Schema file or URL] フィールドに「https://json.schemastore.org/workflows.json」と入力します。
  3. [Schema version] リストで、[JSON Schema version 7] を選択します。
  4. 選択したファイルパス パターンを追加します。

jsonSchema.xml でスキーマをマッピングする

IntelliJ IDEA Community Edition のソースコードは、https://github.com/JetBrains/intellij-community で入手できます。

jsonSchemas.xml にエントリを追加することで、IntelliJ IDEA エディタの Workflows JSON スキーマをマッピングできます。

CI / CD プロセスに Workflows 構文検証を追加する

継続的インテグレーション、デリバリー、デプロイ(CI / CD)の各プロセスに構文検証を追加すると、統合、テスト、デリバリー、デプロイ時のエラーを削減できます。

たとえば、ajv-cli ツールを使用し、Workflows JSON スキーマと照合してデータを検証できます。ツールをインストールする場合は、ajv-formats もインストールすることに注意してください。次に例を示します。

npm install -g ajv-cli ajv-formats

その他の便利なツール:

  • MegaLinter v8r - MegaLinter は CI / CD ワークフロー用のオープンソース ツールです。v8r では、SchemaStore.org に一致するスキーマが定義されている場合に、JSON / YAML ファイルの有効性をチェックします。
  • JSON バリデータ - プログラミング言語または開発プラットフォームで分類された JSON の検証ツール。

次のステップ