自定义蓝图概念 - Amazon CodeCatalyst

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

自定义蓝图概念

以下是您在中使用自定义蓝图时应了解的一些概念和术语。 CodeCatalyst

蓝图项目

蓝图项目使您能够开发蓝图并将其发布到您的空间。源存储库是在项目创建过程中创建的,存储库的名称是您在输入项目资源详细信息时选择的名称。在蓝图创建过程中,如果您选择生成工作流程版本,则会在蓝图中使用蓝图生成器蓝图创建发布工作流程。该工作流程会自动发布您的最新版本。

太空蓝图

导航到空间的蓝图部分时,您可以查看和管理太空蓝图表中的所有蓝图。蓝图发布到您的空间后,它们将作为空间蓝图提供,供您从空间的蓝图目录中添加和删除。您还可以在空间的 “蓝图” 部分管理发布权限并删除蓝图。有关更多信息,请参阅 查看自定义蓝图的详细信息、版本和项目

太空蓝图目录

您可以从空间的蓝图目录中查看所有添加的自定义蓝图。在这里,空间成员可以选择您的自定义蓝图来创建新项目。该目录与 CodeCatalyst 目录不同,后者已经为所有空间成员提供了可用的蓝图。有关更多信息,请参阅 使用 CodeCatalyst 蓝图创建综合项目

合成

合成是生成 CodeCatalyst 项目包的过程,该包代表项目中的源代码、配置和资源。然后, CodeCatalyst 部署 API 操作使用该捆绑包部署到项目中。该过程可以在开发自定义蓝图时在本地运行,以模拟项目创建,而无需在中 CodeCatalyst创建项目。以下命令可用于执行合成:

yarn blueprint:synth # fast mode yarn blueprint:synth --cache # wizard emulation mode

蓝图首先在合并了该选项的情况下调用主blueprint.tsdefaults.json。将在该synth/synth.[options-name]/proposed-bundle/文件夹下生成一个新的项目包。输出包括自定义蓝图根据您设置的选项生成的项目包,包括您可能已配置的部分选项

重新合成

Resynthesis 是使用不同的蓝图选项或现有项目的蓝图版本重新生成蓝图的过程。作为蓝图作者,您可以在自定义蓝图代码中定义自定义合并策略。您还可以在中定义所有权边界,.ownership-file以指定允许在代码库的哪些部分更新蓝图。虽然自定义蓝图可以提出更新建议.ownership-file,但使用自定义蓝图的项目开发人员可以确定其项目的所有权边界。您可以在本地运行 resynthesis,并在发布自定义蓝图之前进行测试和更新。使用以下命令执行重新合成:

yarn blueprint:resynth # fast mode yarn blueprint:resynth --cache # wizard emulation mode

蓝图首先在合并了该选项的情况下调用主blueprint.tsdefaults.json。将在该synth/resynth.[options-name]/文件夹下生成一个新的项目包。输出包括自定义蓝图根据您设置的选项生成的项目包,包括您可能已配置的部分选项

以下内容是在合成和再合成过程之后创建的:

  • proposed-bundle-使用目标蓝图版本的新选项运行合成时的输出。

  • e@@ xisting-bundle-对你现有项目的模拟。如果此文件夹中没有任何内容,则生成该文件夹的输出与他相同proposed-bundle

  • ancestor-bundle-模拟使用先前版本、先前选项或组合运行蓝图时会生成的内容。如果此文件夹中没有任何内容,则会使用与相同的输出生成proposed-bundle

  • r@@ esolved-bund le-始终会重新生成捆绑包,并且默认为、和之间的三向合并。proposed-bundle existing-bundle ancestor-bundle此捆绑包提供了重新合成将在本地输出内容的模拟。

要了解有关蓝图输出包的更多信息,请参阅生成带有重新合成功能的文件

部分期权

你可以在下方添加选项变体src/wizard-configuration/,这些变体不必枚举整个Options界面,而且这些选项会合并到defaults.json文件顶部。这使您可以跨特定选项定制测试用例。

示例

Options接口:

{ language: "Python" | "Java" | "Typescript", repositoryName: string ... }

defaults.json 文件:

{ language: "Python", repositoryName: "Myrepo" ... }

其他配置测试:

  • #wizard-config-typescript-test.json { language: "Typescript", }
  • #wizard-config-java-test.json { language: "Java", }

Projen

Projen 是一个开源工具,自定义蓝图使用它来保持更新和一致性。蓝图以 Projen 包的形式出现,因为此框架使您能够构建、捆绑和发布项目,并且您可以使用该界面来管理项目的配置和设置。

即使蓝图已创建,您也可以使用 Projen 大规模更新蓝图。Projen 工具是生成项目包的蓝图合成背后的底层技术。Projen 拥有项目的配置,它不应该影响你作为蓝图作者。添加依赖关系后,您可以运行yarn projen重新生成项目的配置,也可以更改projenrc.ts文件中的选项。Projen 还是用于合成项目的自定义蓝图的底层生成工具。有关更多信息,请参阅 projen GitHub 页面。要了解有关使用 Projen 的更多信息,请参阅 Projen 文档如何使用 Projen 简化项目设置