以間接模式將使用量資料上傳至 Azure
您可以定期匯出使用量資訊。 匯出和上傳此資訊時,系統也會在 Azure 中建立和更新資料控制器、SQL 受控執行個體和 PostgreSQL 資源。
注意
針對以直接連線模式部署的 Azure Arc 資料控制器,系統會自動上傳使用量資訊。 本文中的說明僅適用於上傳以間接連線模式部署的 Azure Arc 資料控制器之使用量資訊。
建立 Azure Arc 資料控制器之後,請先等候至少 24 小時,再上傳使用量資料。
建立服務主體並指派角色
繼續之前,請確定您已建立必要的服務主體,並將它指派給適當的角色。 如需詳細資料,請參閱:
本文中的範例會使用角括弧 < ... >
來識別您需要在執行指令碼之前取代的值。 取代括弧和括弧內的值。
上傳使用量資料
庫存和資源使用量等使用量資訊,可以透過下列兩步驟方式上傳至 Azure:
- 使用
az arcdata dc export
命令匯出使用量資料,如下所示:
注意
使用 az arcdata dc export
命令匯出使用量/帳單資訊、計量和記錄需要暫時略過 SSL 驗證。 系統會提示您略過 SSL 驗證,或者您可以設定 AZDATA_VERIFY_SSL=no
環境變數以避免出現提示。 目前無法設定資料控制器匯出 API 的 SSL 憑證。
az arcdata dc export --type usage --path usage.json --k8s-namespace <namespace> --use-k8s
此命令會建立一個 usage.json
檔案,內含所有已啟用 Azure Arc 且建立在資料控制器上的資料資源,例如 SQL 受控執行個體和 PostgreSQL 執行個體等。
檔案目前並未加密,因此您可以看到內容。 您可以在文字編輯器中開啟並查看內容。
您會注意到有兩組資料:resources
和 data
。 resources
包含資料控制器、PostgreSQL 和 SQL 受控執行個體。 資料中的 resources
記錄會擷取資源歷程中的相關事件 - 建立、更新和刪除的時間。 data
記錄會擷取指定執行個體每小時可供使用的核心數量。
resource
項目的範例:
{
"customObjectName": "<resource type>-2020-29-5-23-13-17-164711",
"uid": "4bc3dc6b-9148-4c7a-b7dc-01afc1ef5373",
"instanceName": "sqlInstance001",
"instanceNamespace": "arc",
"instanceType": "<resource>",
"location": "eastus",
"resourceGroupName": "production-resources",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"isDeleted": false,
"externalEndpoint": "32.191.39.83:1433",
"vCores": "2",
"createTimestamp": "05/29/2020 23:13:17",
"updateTimestamp": "05/29/2020 23:13:17"
}
data
項目的範例:
{
"requestType": "usageUpload",
"clusterId": "4b0917dd-e003-480e-ae74-1a8bb5e36b5d",
"name": "DataControllerTestName",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"resourceGroup": "production-resources",
"location": "eastus",
"uploadRequest": {
"exportType": "usages",
"dataTimestamp": "2020-06-17T22:32:24Z",
"data": "[{\"name\":\"sqlInstance001\",
\"namespace\":\"arc\",
\"type\":\"<resource type>\",
\"eventSequence\":1,
\"eventId\":\"50DF90E8-FC2C-4BBF-B245-CB20DC97FF24\",
\"startTime\":\"2020-06-17T19:11:47.7533333\",
\"endTime\":\"2020-06-17T19:59:00\",
\"quantity\":1,
\"id\":\"4BC3DC6B-9148-4C7A-B7DC-01AFC1EF5373\"}]",
"signature":"MIIE7gYJKoZIhvcNAQ...2xXqkK"
}
}
使用
upload
命令上傳使用量資料。az arcdata dc upload --path usage.json
上傳頻率
在間接模式中,必須至少每隔 30 天將使用量資訊上傳至 Azure 一次。 強烈建議您提高上傳頻率,例如每日一次。 如果未上傳過去 32 天的使用量資訊,您會發現服務遭到降級,例如無法佈建任何新資源。
針對使用量上傳延遲,您將收到兩種類型的通知 - 警告階段和降級階段。 在警告階段中,您會收到如 Billing data for the Azure Arc data controller has not been uploaded in {0} hours. Please upload billing data as soon as possible.
的訊息。
在降級階段中,該訊息看起來會如 Billing data for the Azure Arc data controller has not been uploaded in {0} hours. Some functionality will not be available until the billing data is uploaded.
所示。
注意
如果超過 48 小時都尚未上傳使用量,您將會看到警告訊息。
Azure 入口網站資料控制器的 [概觀] 頁面,以及 Kubernetes 叢集中資料控制器的 [自訂資源] 狀態,兩處都會顯示上次上傳日期和狀態訊息。
自動上傳 (選用)
若要依照排程上傳計量和記錄,您可建立指令碼,並根據計時器每隔幾分鐘執行一次。 以下是使用 Linux 殼層指令碼來自動上傳的範例。
在慣用的文字/程式碼編輯器中,將下列指令碼新增至檔案,並另存為指令碼可執行檔,例如 .sh
(Linux/Mac) 或 .cmd
、.bat
或 .ps1
。
az arcdata dc export --type usage --path usage.json --force --k8s-namespace <namespace> --use-k8s
az arcdata dc upload --path usage.json
讓指令檔可執行
chmod +x myuploadscript.sh
每天執行指令碼以便使用:
watch -n 1200 ./myuploadscript.sh
您也可使用工作排程器 (例如 cron 或 Windows 工作排程器) 或協調器 (例如 Ansible、Puppet 或 Chef)。