使用生命週期管理作為藍圖使用者 - Amazon CodeCatalyst

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

使用生命週期管理作為藍圖使用者

生命週期管理是從更新的選項或藍圖版本重新產生程式碼庫的能力。這可讓藍圖作者集中管理包含特定藍圖的每個專案的軟體開發生命週期。例如,將安全修正推送至 Web 應用程式藍圖,將允許每個包含 Web 應用程式藍圖或從 Web 應用程式藍圖建立的專案自動擷取該修正。相同的管理架構也可讓您作為藍圖使用者,在選取藍圖選項之後對其進行變更。

在現有專案上使用生命週期管理

您可以使用生命週期管理來管理從藍圖建立的專案,或在與任何藍圖無關的現有專案上使用。例如,您可以將標準安全實務藍圖 five-year-old新增至從未從藍圖建立的 Java 應用程式。藍圖會產生安全掃描工作流程和其他相關程式碼。每當對藍圖進行變更時,Java 應用程式中的該部分程式碼庫現在都會自動與團隊的最佳實務保持最新狀態。

在專案中的多個藍圖上使用生命週期管理

由於藍圖代表架構元件,因此多個藍圖通常可以在同一專案中一起使用。例如,專案可由公司平台工程師建置的中央 Web API 藍圖,以及應用程式安全團隊建置的版本檢查藍圖組成。每個藍圖都可以獨立更新,並會記住過去套用到它們的合併解析度。

注意

作為任意的架構元件,並非所有藍圖都具有共同意義或邏輯性,即使它們仍會嘗試相互合併。

處理生命週期提取請求中的衝突

有時,生命週期提取請求可能會產生合併衝突。這些可以手動解決。後續藍圖更新會記住解析度。

選擇退出生命週期管理變更

使用者可以從專案中移除藍圖,以取消所有對藍圖的關聯,並選擇退出生命週期更新。為了安全起見,這不會移除或影響任何專案的程式碼或資源,包括從藍圖中新增的內容。如需詳細資訊,請參閱取消藍圖與專案的關聯,以停止更新

覆寫專案中的藍圖生命週期管理

如果您想要覆寫專案中特定檔案的藍圖更新,您可以在儲存庫中包含所有權檔案。GitLab的 Code Owner 規格是建議的準則。藍圖一律尊重程式碼擁有者檔案,而且可以產生範例,如下所示:

new BlueprintOwnershipFile(sourceRepo, { resynthesis: { strategies: [ { identifier: 'dont-override-sample-code', description: 'This strategy is applied accross all sample code. The blueprint will create sample code, but skip attempting to update it.', strategy: MergeStrategies.neverUpdate, globs: [ '**/src/**', '**/css/**', ], }, ], }, });

這會產生.ownership-file具有下列內容的 :

[dont-override-sample-code] @amazon-codecatalyst/blueprints.import-from-git # This strategy is applied accross all sample code. The blueprint will create sample code, but skip attempting to update it. # Internal merge strategy: neverUpdate **/src/** **/css/**