如需在创建工作流时提供语法支持,您可以使用 集成开发环境中的 Workflows JSON 架构 (IDE),例如 Visual Studio Code (VS Code) 或 Intellij IDEA。语法支持包括自动补全、验证和内嵌文档。该架构还可集成到您的 CI/CD 流程中。
工作流 JSON 架构采用 JSON Schema 编写而成,JSON Schema 是一种声明式语言,可让您为 JSON 文档添加注解和进行验证。架构来源 托管在 SchemaStore.org 上, 基于 JSON 的常见配置文件的架构代码库。请注意, SchemaStore.org 中的架构也可以应用于 YAML 文件。
根据您偏好的 IDE 或编辑器,您可以安装插件或应用内置支持来使用 Workflows 架构。架构 可以存储在本地项目根目录下,也可以通过 SchemaStore.org 上的资源网址。
工作流定义文件的文件名格式
无论您使用的是哪种 IDE 或编辑器,如果您使用插件或扩展程序自动应用 SchemaStore.org 中的工作流架构,则工作流定义文件的文件名格式必须如下所示:
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。内置了对多种语言的支持 并支持其他语言和运行时的扩展。安装和设置 请参阅 Visual Studio Code。
您可以通过以下几种方式 VS Code 中的 JSON 架构。
使用 Cloud Code 在 YAML 中创建工作流
Cloud Code 是一组 IDE 插件,可帮助您更轻松地创建、部署应用以及将应用与 Google Cloud 集成。
如果您使用 VS Code 作为 IDE,则可以在编写 YAML 工作流时使用 Cloud Code,它会自动从 SchemaStore.org 拉取工作流 JSON 架构。如需确认架构是否按预期应用,请在 VS Code 工作区或文件夹中创建 YAML 工作流,并确认系统是否会针对工作流关键字执行自动补全。
Cloud Code 还支持离线 Google Cloud 架构, 由可能受网络或 IDE 限制的用户使用。如需更多信息 请参阅以下内容:
使用 RedHat 的 YAML 在 YAML 中创建工作流
作为使用 Cloud Code for VS Code 扩展程序的替代方案,您可以使用 YAML by RedHat 扩展程序。 此扩展程序提供 YAML 语言支持,并包含内置的 Kubernetes 语法支持。它会自动拉取工作流 JSON SchemaStore.org 中的架构。
安装扩展程序后,创建 YAML 工作流。文件顶部应有一个 Google Cloud Workflows 配置文件 (workflows.json) 链接。如果您点击该链接,Workflows JSON 架构将在 VS Code 编辑器中打开。
替换文件名格式
使用 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" ] } }
或者,如果您使用的是 YAML by RedHat 扩展,请在 yaml.schemas
属性下映射文件名格式:
{ "yaml.schemas": { "https://json.schemastore.org/workflows.json": [ "GLOB_PATTERN.yaml", "my-special-workflow.yaml" ] } }
左侧的架构应用于右侧的 glob 模式;每 schema 使用 JSON 数组与多个 glob 相关联。您的架构必须 是相对路径,而不是绝对路径。您的架构可以是本地架构,也可以是在线架构。
使用内置支持以 JSON 格式创建工作流
您可以使用 VS Code 中的内置支持将 Workflows
JSON 架构,方法是在 settings.json
文件中的
属性 json.schemas
。您可以通过以下方式直接查看和修改此文件:
在 VS Code 编辑器中打开它。
例如,要从 SchemaStore.org:
{ "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。
您可以通过以下几种方式 IntelliJ IDEA 中的 JSON 架构。
使用 Cloud Code 在 YAML 或 JSON 中创建工作流
Cloud Code 是一组 IDE 插件,可帮助您更轻松地创建、部署应用以及将应用与 Google Cloud 集成。
如果您使用 IntelliJ 作为 IDE,则可以在下列情况下使用 Cloud Code: 使用 YAML 或 JSON 格式编写工作流 SchemaStore.org 中的 Workflows JSON 架构。Cloud Code 还支持离线 Google Cloud 架构,供需要 存在网络或 IDE 限制。如需了解详情,请参阅以下资源:
使用内置支持以 YAML 或 JSON 格式创建工作流
IntelliJ IDEA 可以自动下载和使用 SchemaStore.org 中的架构。你可以下载 Workflows JSON 架构并将其存储在 项目根目录或指定资源的网址,以便 IntelliJ IDEA 并自动下载架构如需映射架构,请按照以下说明操作 配置自定义 JSON 架构。
默认情况下 从 SchemaStore.org 自动下载架构 且默认的文件名格式会根据架构进行验证。
如需替换默认文件格式,请前往 通过 Settings 对话框使用 JSON Schema Mappings,执行以下操作:
- 在名称字段中,输入 Workflows schema。
- 在 Schema file or 网址(架构文件或网址)字段中,输入 https://json.schemastore.org/workflows.json.
- 在架构版本列表中,选择 JSON 架构版本 7。
- 添加您选择的文件路径格式。
通过 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 工具根据工作流 JSON 架构对数据进行验证。请注意,安装该工具时,还应安装 ajv-formats。例如:
npm install -g ajv-cli ajv-formats
其他可能有用的工具:
- MegaLinter v8r - MegaLinter 是一款适用于 CI/CD 工作流的开源工具;v8r 会检查 JSON/YAML 文件的有效性,看它们是否在 SchemaStore.org 上定义了匹配的架构。
- JSON 验证工具 - JSON 按编程语言或开发平台分类的验证工具。
后续步骤
- Google Cloud 博客:工作流获得更新后的 JSON 架构