將模組發佈至私人登錄
您現在了解什麼是 Bicep 登錄,以及當您在組織中共用模組時,其可為您帶來什麼幫助。 在此單元中,您會了解如何將模組發佈至私人登錄。
模組路徑
過去當您使用模組時,可能已用過模組的檔案路徑,在範本中加以參考。 當您使用模組和私人登錄時,您必須使用不同的模組路徑,讓 Bicep 知道如何在登錄中找出模組。
以下是私人 Azure 容器登錄中模組的範例路徑:
路徑包含四個區段:
- 配置:Bicep 支援數種模組類型,稱為「配置」。 當您使用 Bicep 登錄時,配置為
br
。 - 登錄:包含您要使用之模組的登錄名稱。 在上述範例中,登錄名稱為
toycompany.azurecr.io
,這是容器登錄的名稱。 - 模組識別碼:登錄內模組的完整路徑。
- 標籤:標籤通常代表模組的版本,因為單一模組可以發佈多個版本。 您在下一個區段中會深入了解標籤和版本。
當您發佈自己的模組識別碼時,請使用有意義的識別碼來指出模組用途。 您可以選擇性地使用「命名空間」,其中使用斜線 (/
) 來區別名稱的各個部分。 不過,Azure Container Registry 和 Bicep 都不知道階層。 其會將模組識別碼視為單一值。
標籤和版本
標籤代表模組的版本。 登錄中的單一模組可能有多個版本。 所有版本都會共用模組識別碼,但其有不同的標籤。 當您使用模組時,必須使用標籤來指定要使用的版本,讓 Bicep 知道要擷取的模組檔案。
最好謹慎規劃您將如何針對模組進行版本設定。 您需要制定的兩個重要決策就是要使用的「版本設定配置」與「版本設定原則」。
版本設定配置
您的版本設定配置會決定產生版本號碼的方式。 常見的版本設定配置包括:
- 「基本整數」可用來作為版本號碼。 例如,您的第一個版本可能稱為
1
,您的第二個版本為2
,依此類推。 或者,您可以將前置詞新增至每個版本號碼,例如v1
和v2
。 - 「日期」也會產生良好的版本號碼。 例如,如果您在 2022 年 1 月 16 日發佈第一個版本的模組,您可以將版本命名為
2022-01-16
(使用 yyyy-mm-dd 格式)。 當您在 3 月 3 日發佈另一個版本時,則可將其命名為2022-03-03
。 - 「語意化版本控制系統」是軟體中經常使用的版本設定系統,其中的單一版本號碼包含多個部分。 每個部分都會顯示關於變更本質的不同資訊。
儘管您可以使用任何想要的版本設定配置,但最好選擇可依有意義的順序排序的內容。 數字與日期通常是不錯的選擇。
注意
Azure Container Registry 會儲存每個標籤的建立日期。 即使您未使用以日期為基礎的版本設定,還是可以看到此資訊。
版本設定原則
模組可讓您彈性地選擇建立新版本或更新現有版本的時機。 例如,您可以透過建立並發佈名為 latest
的單一版本,有效退出版本設定。 每當您需要變更模組時,只需更新該版本即可。 雖然這個原則可行,但這並不是個好方法。
相反地,如果您對現有模組進行較小變更,而不會影響其使用方式,則建立新版本可能不是個好主意。 您必須將新的版本號碼傳達給任何使用模組的人。
以下是通常可正常運作的版本設定原則:
- 當您對模組進行重大變更時,請建立新版本。 重大變更包括可能會對使用您模組的人員產生影響的任何項目。 範例包括將另一個資源新增至模組或變更資源的屬性。
- 每當您對模組進行小幅變更時 (有時稱為 Hotfix),則更新現有的模組版本。
- 當舊版本不再相關時,或當您不希望任何人使用時,請將其刪除。
提示
請考慮您模組的使用者,並確定您會考量他們預期將發生什麼事。 如果有人多次使用您的模組並獲得一個結果,然後在 Hotfix 之後再次使用它但獲得不同結果,那麼,他們可能會感到很驚訝。 盡量避免讓您的使用者感到驚訝。
發佈模組
當您建立想要共用的 Bicep 模組時,您會如常撰寫 Bicep 檔案。 接著,您可以使用 bicep publish
命令,將檔案「發佈」至登錄。 當您發佈時,必須指定要將模組儲存到其中的模組路徑:
az bicep publish \
--file module.bicep \
--target 'br:toycompany.azurecr.io/mymodules/modulename:moduleversion'
bicep publish module.bicep `
--target 'br:toycompany.azurecr.io/mymodules/modulename:moduleversion'
發佈作業會執行您在建置或部署 Bicep 檔案時所進行的相同驗證步驟。 這些步驟包括:
- 檢查您的程式碼沒有任何語法錯誤。
- 驗證您指定的是有效的資源定義。
- 執行 Bicep Linter,以驗證您的程式碼會通過一系列的品質檢查。
如果驗證步驟通過,即會將模組發佈至您的登錄。