本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWS Panorama API 管理設備
您可以使用 AWS Panorama API 自動執行設備管理任務。
檢視裝置
若要取得具有裝置 ID 的設備清單,請使用 ListDevicesAPI。
$
aws panorama list-devices
"Devices": [ { "DeviceId": "device-4tafxmplhtmzabv5lsacba4ere", "Name": "my-appliance", "CreatedTime": 1652409973.613, "ProvisioningStatus": "SUCCEEDED", "LastUpdatedTime": 1652410973.052, "LeaseExpirationTime": 1652842940.0 } ] }
若要取得有關設備的更多詳細資訊,請使用 DescribeDeviceAPI。
$
aws panorama describe-device --device-id device-4tafxmplhtmzabv5lsacba4ere
{ "DeviceId": "device-4tafxmplhtmzabv5lsacba4ere", "Name": "my-appliance", "Arn": "arn:aws:panorama:us-west-2:123456789012:device/device-4tafxmplhtmzabv5lsacba4ere", "Type": "PANORAMA_APPLIANCE", "DeviceConnectionStatus": "ONLINE", "CreatedTime": 1648232043.421, "ProvisioningStatus": "SUCCEEDED", "LatestSoftware": "4.3.55", "CurrentSoftware": "4.3.45", "SerialNumber": "GFXMPL0013023708", "Tags": {}, "CurrentNetworkingStatus": { "Ethernet0Status": { "IpAddress": "192.168.0.1/24", "ConnectionStatus": "CONNECTED", "HwAddress": "8C:XM:PL:60:C5:88" }, "Ethernet1Status": { "IpAddress": "--", "ConnectionStatus": "NOT_CONNECTED", "HwAddress": "8C:XM:PL:60:C5:89" } }, "LeaseExpirationTime": 1652746098.0 }
升級設備軟體
如果LatestSoftware
版本比新CurrentSoftware
,您可以升級裝置。使用 CreateJobForDevicesAPI 建立 over-the-air (OTA) 更新工作。
$
aws panorama create-job-for-devices --device-ids device-4tafxmplhtmzabv5lsacba4ere \ --device-job-config '{"OTAJobConfig": {"ImageVersion": "
{ "Jobs": [ { "JobId": "device-4tafxmplhtmzabv5lsacba4ere-0", "DeviceId": "device-4tafxmplhtmzabv5lsacba4ere" } ] }4.3.55
"}}' --job-type OTA
在腳本中,您可以使用 Bash 字符串操作在作業配置文件中填入映像版本字段。
範例 check-updates.sh
apply_update() { DEVICE_ID=$1 NEW_VERSION=$2 CONFIG='{"OTAJobConfig": {"ImageVersion": "NEW_VERSION"}}' CONFIG=
${CONFIG/NEW_VERSION/$NEW_VERSION}
aws panorama create-job-for-devices --device-ids ${DEVICE_ID} --device-job-config "${CONFIG}" --job-type OTA }
設備會下載指定的軟體版本並自行更新。使用 DescribeDeviceJobAPI 觀看更新的進度。
$
aws panorama describe-device-job --job-id device-4tafxmplhtmzabv5lsacba4ere-0
{ "JobId": "device-4tafxmplhtmzabv5lsacba4ere-0", "DeviceId": "device-4tafxmplhtmzabv5lsacba4ere", "DeviceArn": "arn:aws:panorama:us-west-2:559823168634:device/device-4tafxmplhtmzabv5lsacba4ere", "DeviceName": "my-appliance", "DeviceType": "PANORAMA_APPLIANCE", "ImageVersion": "4.3.55", "Status": "REBOOTING", "CreatedTime": 1652410232.465 }
若要取得中任務的清單,請使用ListDevicesJobs。
$
aws panorama list-devices-jobs
{ "DeviceJobs": [ { "DeviceName": "my-appliance", "DeviceId": "device-4tafxmplhtmzabv5lsacba4ere", "JobId": "device-4tafxmplhtmzabv5lsacba4ere-0", "CreatedTime": 1652410232.465 } ] }
如需檢查並套用更新的範例指令碼,請參閱本指南 GitHub 儲存庫中的 check-updates.sh
重新開機
若要重新啟動設備,請使用 CreateJobForDevicesAPI。
$
aws panorama create-job-for-devices --device-ids device-4tafxmplhtmzabv5lsacba4ere --job-type REBOOT
{ "Jobs": [ { "JobId": "device-4tafxmplhtmzabv5lsacba4ere-0", "DeviceId": "device-4tafxmplhtmzabv5lsacba4ere" } ] }
在腳本中,您可以獲取設備列表,然後選擇一個以交互方式重新啟動。
範例 reboot-device.sh — 用法
$
./reboot-device.sh
Getting devices... 0: device-53amxmplyn3gmj72epzanacniy my-se70-1 1: device-6talxmpl5mmik6qh5moba6jium my-manh-24 Choose a device1
Reboot device device-6talxmpl5mmik6qh5moba6jium? (y/n)y
{ "Jobs": [ { "DeviceId": "device-6talxmpl5mmik6qh5moba6jium", "JobId": "device-6talxmpl5mmik6qh5moba6jium-8" } ] }