管理 Azure 自動化中的連線

Azure 自動化連線資產包含下面所列的資訊。 從 Runbook 或 DSC 組態連線到外部服務或應用程式需要此資訊。

  • 驗證時所需的資訊,例如使用者名稱和密碼
  • 連線資訊,例如 URL 或連接埠

連線資產會將連線到特定應用程式的所有屬性放在一起,因此不需要建立多個變數。 您可以在一個地方編輯連線的值,而您可以將連線的名稱在單一參數中傳遞至 Runbook 或 DSC 組態。 Runbook 或組態會使用外部 Get-AutomationConnection Cmdlet 來存取連線的屬性。

建立連線時,您必須指定連線類型。 連接類型是定義一組屬性的範本。 您可以使用整合模組搭配中繼資料檔案,將連線類型新增至 Azure 自動化。 如果整合模組包含連線類型,且已匯入至您的自動化帳戶,則也可以使用 Azure 自動化 API 建立連線類型。

注意

Azure 自動化中的安全資產包括認證、憑證、連接和加密的變數。 這些資產都會經過加密,並使用為每個自動化帳戶產生的唯一金鑰,儲存在 Azure 自動化中。 Azure 自動化會將金鑰儲存在系統管理的 Key Vault 中。 在儲存安全資產之前,自動化會從 Key Vault 載入金鑰,然後將其用來加密資產。

連線類型

Azure 自動化可提供下列內建連線類型:

  • Azure - 代表用來管理傳統資源的連線。
  • AzureServicePrincipal - 代表在 Azure 中使用服務主體用來管理資源的連線。
  • AzureClassicCertificate - 此連線類型可用來管理在 Azure 中使用傳統部署模型 (不支援服務主體驗證) 建立的資源。

存取連線的 PowerShell Cmdlet

下表中的 Cmdlet 會使用 PowerShell 來建立及管理自動化連線。 這些 Cmdlet 均隨附於 Az 模組。

指令程式 描述
Get-AzAutomationConnection 擷取連線的相關資訊。
New-AzAutomationConnection 建立新連線。
Remove-AzAutomationConnection 移除現有的連線。
Set-AzAutomationConnectionFieldValue 設定現有連線的特定欄位值。

存取連線的內部 Cmdlet

下表中的內部 Cmdlet 是用來存取 Runbook 和 DSC 組態中的連線。 此 Cmdlet 隨附於全域模組 Orchestrator.AssetManagement.Cmdlets。 如需詳細資訊,請參閱內部 Cmdlet

內部 Cmdlet 描述
Get-AutomationConnection 擷取連線中不同欄位的值,並將其當做雜湊表傳回。 然後,您可以在 Runbook 或 DSC 組態中使用此雜湊表搭配適當的命令。

注意

您應該避免搭配 Get-AutomationConnectionName 參數使用變數。 在此情況下使用變數,可能會在設計階段將 Runbook 或 DSC 組態與連線資產之間的相依性探索變得複雜。

用來存取連線的 Python 函式

下表中的函式用於 Python 2 和 3 Runbook 中存取連線。 Python 3 Runbook 目前為預覽狀態。

函式 描述
automationassets.get_automation_connection 擷取連接。 傳回具有連線屬性的字典。

注意

您必須在 Python Runbook 的頂端匯入 automationassets 模組,才能存取資產函式。

建立新連線

使用 Azure 入口網站建立新的連線

在 Azure 入口網站中建立新的連線:

  1. 從您的自動化帳戶中,按一下 [共用資源] 下的 [連線]
  2. 在 [連線] 頁面上,按一下 [+ 新增連線]
  3. 在 [新增連線] 窗格的 [類型] 欄位中,選取要建立的連線類型。 您的選擇為 AzureAzureServicePrincipalAzureClassicCertificate
  4. 表單會呈現所選擇連線類型的屬性。 完成表單,然後按一下 [ 建立 ] 以儲存新連接。

使用 Windows PowerShell 建立新連線

使用 New-AzAutomationConnection Cmdlet 搭配 Windows PowerShell 建立新連線。 此 Cmdlet 具有名為 ConnectionFieldValues 的參數,對每個連接類型定義之屬性,預期會有雜湊表定義值。

您可以使用下列範例命令來建立連線,並用於使用 Azure 服務主體的驗證。

$ConnectionAssetName = "AzureConnection"
$ConnectionFieldValues = @{"ApplicationId" = $Application.ApplicationId; "TenantId" = $TenantID.TenantId; "CertificateThumbprint" = $Cert.Thumbprint; "SubscriptionId" = $SubscriptionId}
New-AzAutomationConnection -ResourceGroupName $ResourceGroup -AutomationAccountName $AutomationAccountName -Name $ConnectionAssetName -ConnectionTypeName AzureServicePrincipal -ConnectionFieldValues $ConnectionFieldValues

如果您嘗試建立新的連接資產來連接到採用不同驗證方法的服務或應用程式,作業會失敗,因為在您的自動化帳戶未定義該連接類型。 如需為自訂模組建立專屬連線類型的詳細資訊,請參閱新增連線類型

新增連線類型

如果您的 Runbook 或 DSC 組態連線到外部服務,您必須在稱為整合模組的自訂模組中定義連線類型。 此模組包含可指定連線類型屬性的中繼資料檔案,並命名為 <ModuleName>-Automation. json,位於 .zip 壓縮檔案的模組資料夾中。 此檔案包含連線的欄位,連線至模組代表的系統或服務時需要這個項目。 使用此檔案,您可以設定連線類型的欄位名稱、資料類型、加密狀態和選擇性狀態。 此檔案不支援多個連線類型。

下列範例是 json 檔案格式中的範本,可為名為 MyModuleConnection 的自訂連線類型定義使用者名稱和密碼屬性:

{
   "ConnectionFields": [
   {
      "IsEncrypted":  false,
      "IsOptional":  true,
      "Name":  "Username",
      "TypeName":  "System.String"
   },
   {
      "IsEncrypted":  true,
      "IsOptional":  false,
      "Name":  "Password",
      "TypeName":  "System.String"
   }
   ],
   "ConnectionTypeName":  "MyModuleConnection",
   "IntegrationModuleName":  "MyModule"
}

在 Runbook 或 DSC 組態中取得連線

使用 Get-AutomationConnection Cmdlet 擷取 Runbook 或 DSC 組態中的連線。 此 Cmdlet 優先於 Get-AzAutomationConnection Cmdlet,因為其會擷取連線值,而不是連線的相關資訊。

下列範例示範如何使用連線,搭配 Runbook 中的 Azure Resource Manager 資源進行驗證。 該連線使用參考憑證型服務主體的連線資產。

$Conn = Get-AutomationConnection -Name AzureConnection
Connect-AzAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint

圖形化 Runbook 範例

您可以將內部 Cmdlet Get-AutomationConnection 的活動新增至圖形化 Runbook。 在圖形化編輯器的 [程式庫] 窗格中,以滑鼠右鍵按一下連線,然後選取 [加入至畫布]

add to canvas

下圖顯示在圖形化 Runbook 中使用連線物件的範例。

get connections

下一步