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 の構文サポートには、複数の拡張機能またはプラグインを使用しないことをおすすめします。

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

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 の制限があるユーザーが使用できます。詳細については、以下をご覧ください。

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

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

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

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

Cloud Code または YAML by RedHat のいずれかを使用して 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"
        ]
    }
}

YAML by RedHat 拡張機能を使用している場合は、プロパティ 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 の編集をご覧ください。

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

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 で入手できます。

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

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 の検証ツール。

次のステップ