管理Azure 自動化中的連線

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

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

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

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

注意

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

連線類型

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

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

用來存取連線的 PowerShell Cmdlet

下表中的 Cmdlet 會使用 PowerShell 建立和管理自動化連線。 它們會隨附于 Az 模組中。

Cmdlet 描述
Get-AzAutomationConnection 擷取連接的相關資訊。
New-AzAutomation連線ion 建立新連線。
Remove-AzAutomation連線ion 移除現有的連接。
Set-AzAutomation連線ionFieldValue 設定現有連線的特定欄位值。

存取連線的內部 Cmdlet

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

內部 Cmdlet 描述
Get-AutomationConnection 擷取連接中不同欄位的值,並以雜湊表 的形式 傳回它們。 然後,您可以在 Runbook 或 DSC 設定中搭配適當的命令使用此雜湊表。

注意

請避免搭配 Name 參數 Get-AutomationConnection 使用變數。 在此情況下,使用變數可能會使在設計階段探索 Runbook 或 DSC 組態和連線資產之間的相依性複雜化。

用來存取連線的 Python 函式

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

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

注意

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

建立新連線

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

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

  1. 從您的自動化帳戶中,按一下 [共用資源 ] 底下的 [連線。
  2. 按一下 [連線ions] 頁面上的 [+ 新增連線 ]。
  3. 在 [新增連線ion] 窗格的 [ 類型 ] 欄位中,選取要建立的連線類型。 您的選擇是 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 檔案的 module 資料夾中。 此檔案包含連線至模組所代表之系統或服務所需的欄位。 使用此檔案,您可以設定連線類型的功能變數名稱、資料類型、加密狀態和選擇性狀態。 此檔案不支援多個連線類型。

下列範例是 .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 範例

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

add to canvas

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

get connections

下一步