您可以建立包含您的 PowerShell 指令碼和相依性模組的 ZIP 套件,以便在擴充性動作中使用。

有兩種方式可為擴充性動作建立指令碼:

  • Cloud Assembly 中,直接在擴充性動作編輯器中撰寫指令碼。
  • 在本機環境中建立您的指令碼,並將其與任何相關相依性一起新增至 ZIP 套件。
透過使用 ZIP 套件,您可以建立包含動作指令碼和相依性的自訂預先設定範本,可將其匯入至 Cloud Assembly 以便在擴充性動作中使用。
備註: 您不需要將 PowerCLI cmdlet 定義為相依性或將其綁定到 ZIP 套件中。PowerCLI cmdlet 已預先設定 Cloud Assembly 服務的 PowerShell 執行階段。

還可以使用 ZIP 套件來建立包含多個 PowerShell 指令碼檔案的擴充性動作。使用多個指令碼檔案有助於組織整理擴充性動作代碼的結構。

必要條件

確認您熟悉 PowerShell 和 PowerCLI。您可以在 Docker Hub 找到具有 PowerShell Core、PowerCLI 10、PowerNSX 和多個社群模組的 Docker 映像和指令碼範例。

程序

  1. 在本機電腦上,為動作指令碼和相依性建立資料夾。
    例如, /home/user1/zip-action
  2. 將副檔名為 .psm1 的主要 PowerShell 指令碼新增至資料夾。
    下列指令碼顯示了一個簡單的 PowerShell 函數,稱為 main.psm1
    function handler($context, $payload) {
    
      Write-Host "Hello " $payload.target
    
     
    
      return $payload
    備註: PowerShell 擴充性動作的輸出是以函數主體中所顯示的最後一個變數為基礎。包含的函數中的所有其他變數都會被捨棄。
  3. (選擇性) 使用 context 參數,將 Proxy 組態新增至您的主要 PowerShell 指令碼。請參閱使用內容參數在 PowerShell 指令碼中新增 Proxy 組態
  4. (選擇性) 針對 PowerShell 指令碼新增任何相依性。
    備註: 您的 PowerShell 相依性指令碼必須使用 .psm1 延伸。針對指令碼和儲存該指令碼的子資料夾使用相同的名稱。
    1. 登入 Linux PowerShell shell。
      備註: Cloud Assembly 中以動作為基礎的擴充性執行階段是以 Linux 為基礎。在 Windows 環境中編譯的任何 PowerShell 相依性可能會導致產生的 ZIP 套件無法使用。在 Photon OS 上執行 PowerShell 指令碼時,任何已安裝的第三方相依性必須與 VMware Photon OS 相容。
    2. 導覽至 /home/user1/zip-action 資料夾。
    3. 透過執行 Save-Module cmdlet,下載並儲存包含相依性的 PowerShell 模組。
      Save-Module -Name <module name> -Path ./
    4. 針對任何其他相依性模組重複之前的子步驟。
      重要: 確認每個相依性模組位於單獨的子資料夾中。如需有關寫入和管理 PowerShell 模組的詳細資訊,請參閱 如何寫入 PowerShell 指令碼模組
  5. 在已指派的資料夾中,選取您的指令碼元素以及 (如果適用) 相依性模組子資料夾,並將其壓縮為 ZIP 套件。
    備註: 您的指令碼和相依性模組子資料夾必須儲存在 ZIP 套件的根層級。在 Linux 環境中建立 ZIP 套件時,您可能會遇到問題,即套件內容未儲存在根層級。如果您遇到此問題,請在命令列 shell 中執行 zip -r 命令以建立套件。
    cd your_script_and_dependencies_folder
    zip -r ../your_action_ZIP.zip *

後續步驟

使用 ZIP 套件建立擴充性動作指令碼。請參閱如何建立擴充性動作