為代理程式型的實驗設定 Private Link (預覽)
本文說明為 Azure Chaos Studio 代理程式型的實驗設定 Azure Private Link 所需的步驟 (預覽)。 目前的使用者體驗是基於私人端點支援,該支援作為私人端點功能的公開預覽的一部分啟用。 隨著該功能增強到正式發行 (GA) 的品質,預期這項體驗也會隨著時間演變。 目前為預覽狀態。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶。
- 依照透過 Azure 入口網站建立使用代理程式型錯誤的混沌實驗中的步驟來定義您的代理程式型的實驗。
注意
如果目標資源是使用 Azure 入口網站建立的,則 Chaos 代理程式虛擬機器 (VM) 延伸模組會自動安裝在主機 VM 上。 如果使用 Azure CLI 來啟用目標,請依照 Chaos Studio 文件以先在該 VM 上安裝 VM 延伸模組。 在您完成私人端點設定之前,該 VM 延伸模組會報告狀況不良的狀態。 此行為是預期的。
限制
- 您需要使用我們的 2023-10-27-preview REST API 來建立 Private Link 並將其僅用於代理程式型的實驗。 在 2024 年上半年之前,我們的 GA 穩定 REST API 中沒有支援用於代理程式型實驗的 Private Link。
- 此流程的整個端到端體驗需要使用一些 CLI。 目前的端到端體驗無法從 Azure 入口網站完成。
- Chaos Studio Private Accesses (CSPA) 資源類型對於 Chaos 目標與 CSPA 資源 (私人端點的抽象表示) 具有嚴格的 1:1 對應關係。 我們只允許每個訂用帳戶建立五個 CSPA 資源,以維持所有我們客戶的預期體驗。
建立 Chaos Studio Private Access 資源
若要使用私人端點進行代理程式型的混沌實驗,您需要建立一個名為 Chaos Studio Private Accesses 的新資源類型。 CSPA 是用以建立私人端點的資源。
目前,此資源只能從 CLI 建立。 如需如何建立此資源類型的資訊,請參閱以下的範例程式碼:
az rest --verbose --skip-authorization-header --header "Authorization=Bearer $accessToken" --method PUT --uri "https://centraluseuap.management.azure.com/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Chaos/privateAccesses/<CSPAResourceName>?api-version=2023-10-27-preview" --body '
{
"location": "<resourceLocation>",
"properties": {
"id": "<CSPAResourceName>",
"name": "<CSPAResourceName>",
"location": "<resourceLocation>",
"type": "Microsoft.Chaos/privateAccesses",
"resourceId": "subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Chaos/privateAccesses/<CSPAResourceName>"
}
}'
名稱 | 必要 | 類型 | 描述 |
---|---|---|---|
subscriptionID | True | String | 代表 Azure 訂用帳戶識別碼的 GUID。 |
resourceGroupName | True | String | 代表 Azure 資源群組的字串。 |
CSPAResourceName | True | String | 代表您要為 Chaos Studio Private Access 資源提供的名稱的字串。 |
resourceLocation | True | String | 您想要裝載該資源的位置 (必須是 Chaos Studio 支援的區域)。 |
建立您的虛擬網路、子網路和私人端點
為實驗設定您所需的虛擬網路、子網路和端點 (若尚未設定的話)。
請確定您已將它連結至相同的 VM 的虛擬網路。 螢幕擷取畫面提供了建立虛擬網路、子網路和私人端點的範例。 您必須將 [資源類型] 設定為 [Microsoft.Chaos/privateAccesses],如螢幕擷取畫面所示。
將代理程式主機 VM 對應至 CSPA 資源
透過呼叫 GetTarget
來找出目標 Resource ID
:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{parentProviderNamespace}/{parentResourceType}/{parentResourceName}/providers/Microsoft.Chaos/targets/{targetName}?api-version=2023-10-27-preview
GET
命令會傳回大型回應。 請留意此回應。 我們會使用此回應並對其進行修改,然後再執行 PUT Target
命令來對應這兩個資源。
使用此回應來叫用 PUT Target
命令。 您需要先將另外兩個欄位附加到 PUT
命令的本文中,然後再執行它。
這些額外的欄位如下所示:
"privateAccessId": "subscriptions/<subID>/...
"allowPublicAccess": false
},
以下是 PUT Target
命令應呈現區塊的範例,以及您需要填寫的欄位:
注意
複製上一個 GET
命令的本文。 您必須手動附加 privateAccessID
和 allowPublicAccess
欄位。
az rest --verbose --skip-authorization-header --header "Authorization=Bearer $accessToken" --method PUT --uri "https://management.azure.com/subscriptions/<subscriptionID>/resourceGroups/<resourceGroup>/providers/Microsoft.Compute/virtualMachines/<VMSSname>/providers/Microsoft.Chaos/targets/Microsoft-Agent?api-version=2023-10-27-preview " --body ' {
"id": "/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/microsoft.compute/virtualmachines/<VMSSName>/providers/Microsoft.Chaos/targets/Microsoft-Agent",
"type": "Microsoft.Chaos/targets",
"name": "Microsoft-Agent",
"location": "<resourceLocation>",
"properties": {
"agentProfileId": "<from target resource>",
"identities": [
{
"type": "AzureManagedIdentity",
"clientId": "<clientID>",
"tenantId": "<tenantID>"
}
],
"agentTenantId": "CHAOSSTUDIO",
"privateAccessId": "subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Chaos/privateAccesses/<CSPAresourceName>",
"allowPublicAccess": false
}} '
注意
PrivateAccessID
值應完全符合您在前面的建立 Chaos Studio Private Access 資源一節中用於建立 CSPA 資源的 resourceID
值。
重新啟動 VM 中的 Azure Chaos 代理程式服務
對主機進行所有必要的變更後,請重新啟動 VM 中的 Azure Chaos 代理程式服務。
Windows
Linux
若為 Linux,在命令列介面執行下列命令:
Systemctl restart azure-chaos-agent
使用私人端點執行代理程序型的實驗
重新啟動後,Azure Chaos 代理程式應該能夠與代理程式通訊資料平面服務進行通訊,而代理程式應成功註冊到資料平面。 成功註冊之後,該代理程式可以透過活動訊號來指出其狀態。 然後,您可以使用私人端點來繼續執行 Azure Chaos 代理程式型的實驗。