自訂藍圖概念 - Amazon CodeCatalyst

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

自訂藍圖概念

以下是在中 CodeCatalyst使用自訂藍圖時應瞭解的一些概念和術語。

藍圖專案

藍圖專案可讓您開發藍圖並將其發佈到您的空間。在專案建立程序期間會建立來源儲存庫,而儲存庫的名稱是您在輸入 Project 資源詳細資訊時所選擇的名稱。在藍圖建立程序期間,如果您選擇產生工作流程版本,則會使用藍圖產生藍圖在您的藍圖中建立發佈工作流程。工作流程會自動發佈您的最新版本。

空間, 藍圖

當您導覽至空間的藍圖區段時,您可以從 S pace 藍圖表格檢視和管理所有藍圖。將藍圖發佈到您的空間後,它們將作為空間藍圖提供,以便從空間的藍圖目錄中新增和移除。您也可以在空間的 [藍圖] 區段中管理發佈權限和刪除藍圖。如需詳細資訊,請參閱 檢視自訂藍圖的詳細資料、版本和專案

空間藍圖目錄

您可以從空間的藍圖目錄檢視所有新增的自訂藍圖。在這裡,空間成員可以選擇您的自訂藍圖來建立新專案。此目錄與目錄不同, CodeCatalyst 目錄已為所有空間成員提供可用藍圖。如需詳細資訊,請參閱 使用 CodeCatalyst 藍圖建立全方位專案

合成

合成是生成一個 CodeCatalyst 項目包,表示源代碼,配置和資源在一個項目的過程。然後 CodeCatalyst 部署 API 作業會使用套件來部署到專案中。此程序可在本機執行,同時開發您的自訂藍圖,以模擬專案建立,而不必在中 CodeCatalyst建立專案。以下命令可用於執行合成:

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

藍圖通過調用合併該選項的主blueprint.ts類來啟動defaults.jsonsynth/synth.[options-name]/proposed-bundle/資料夾下會產生一個新的專案組合包。輸出包括自訂藍圖產生的專案服務包 (提供您設定的選項),包括您可能已設定的部分選項

樹脂同步

Resynthesis 是使用不同藍圖選項或現有專案的藍圖版本重新產生藍圖的程序。身為藍圖作者,您可以在自訂藍圖程式碼中定義自訂合併策略。您也可以在中定義擁有權界限,.ownership-file以指定允許更新藍圖程式碼基底的哪些部分。雖然自訂藍圖可以向提議更新.ownership-file,但使用自訂藍圖的專案開發人員可以決定其專案的擁有權界限。您可以在本機執行重新同步,並在發佈自訂藍圖之前進行測試和更新。使用下列指令來執行重新同步:

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

藍圖通過調用合併該選項的主blueprint.ts類來啟動defaults.jsonsynth/resynth.[options-name]/資料夾下會產生一個新的專案組合包。輸出包括自訂藍圖產生的專案服務包 (提供您設定的選項),包括您可能已設定的部分選項

以下內容是在合成和重新同步過程之後創建的:

  • 議捆綁- 當合成與目標藍圖版本的新選項運行時的輸出。

  • 現有的捆綁- 你現有的項目的模擬。如果此文件夾中沒有任何內容,則會以與他相同的輸出生成proposed-bundle

  • 祖先捆綁- 模擬使用以前版本,先前的選項或組合運行時藍圖將生成的內容。如果此資料夾中沒有任何內容,則會以與proposed-bundle.

  • 已解析-束一律重新產生,且預設為、與. 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 擁有專案的組態,不應該影響您身為藍圖作者。您可以執行yarn projen以在加入相依性之後重新產生專案的組態,也可以變更projenrc.ts檔案中的選項。Projen 也是用於合成項目的自定義藍圖的基礎生成工具。如需詳細資訊,請參閱 Projen GitHub 頁面。要了解有關使用 Projen 的更多信息,請參閱 Projen 文檔以及如何使用 Projen 簡化項目設置