

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 SageMaker Edge Manager 部署 API 直接部署模型套件
<a name="edge-deployment-plan-api"></a>

SageMaker Edge Manager 提供了一個部署 API，您可以使用該 API 將模型部署到裝置目標，而無需 AWS IoT Greengrass。在您想要獨立於韌體更新或應用程式部署機制之外更新模型的情況下，此功能非常有用。您可以使用 API 將邊緣部署整合到 CI/CD 工作流程中，以在您驗證模型準確性後自動部署模型。此 API 還提供方便的復原和分階段推出選項，以確保模型在更廣泛推出之前在特定環境中正常運作。

若要使用 Edge Manager 部署 API，請先編譯並封裝您的模型。如需有關如何編譯和封裝模型的資訊，請參閱[準備您的模型以進行部署](edge-getting-started-step2.md)。本指南的以下各節說明如何在編譯和封裝模型之後，使用 SageMaker API 建立邊緣部署。

**Topics**
+ [建立邊緣部署計劃](#create-edge-deployment-plan)
+ [啟動邊緣部署。](#start-edge-deployment-stage)
+ [檢查部署狀態](#describe-edge-deployment-status)

## 建立邊緣部署計劃
<a name="create-edge-deployment-plan"></a>

您可以使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEdgeDeploymentPlan.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEdgeDeploymentPlan.html) API 建立邊緣部署計劃。部署計劃可以有多個階段。您可以設定每個階段，以將部署推出 Edge 裝置子集 (按百分比或依裝置名稱)。您也可以設定在每個階段如何處理部署失敗。

下列程式碼片段顯示如何建立具有 1 個階段的邊緣部署計劃，以將編譯和封裝模型部署至 2 個特定 Edge 裝置：

```
import boto3

client = boto3.client("sagemaker")

client.create_edge_deployment_plan(
    EdgeDeploymentPlanName="edge-deployment-plan-name",
    DeviceFleetName="device-fleet-name",
    ModelConfigs=[
        {
            "EdgePackagingJobName": "edge-packaging-job-name",
            "ModelHandle": "model-handle"
        }
    ],
    Stages=[
        {
            "StageName": "stage-name",
            "DeviceSelectionConfig": {
                "DeviceSubsetType": "SELECTION",
                "DeviceNames": ["device-name-1", "device-name-2"]
            },
            "DeploymentConfig": {
                "FailureHandlingPolicy": "ROLLBACK_ON_FAILURE"
            }
        }
    ]
)
```

如果您想要將模型部署到機群中一定比例的裝置，而不是特定裝置，則將 `DeviceSubsetType` 值設為 `"PERCENTAGE"` 並以上述範例中的 `"Percentage": desired-percentage` 取代 `"DeviceNames": ["device-name-1", "device-name-2"]`。

如果您想要在驗證測試推出成功之後開始推出新階段，則可以在使用 [CreateEdgeDeploymentStage](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEdgeDeploymentStage.html) API 建立部署計劃之後新增階段。如需有關部署階段的詳細資訊，請參閱 [DeploymentStage](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeploymentStage.html)。

## 啟動邊緣部署。
<a name="start-edge-deployment-stage"></a>

建立部署計劃和部署階段之後，您可以使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StartEdgeDeploymentStage.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StartEdgeDeploymentStage.html) API 開始部署。

```
client.start_edge_deployment_stage(
    EdgeDeploymentPlanName="edge-deployment-plan-name",
    StageName="stage-name"
)
```

## 檢查部署狀態
<a name="describe-edge-deployment-status"></a>

您可以使用 [DescribeEdgeDeploymentPlan](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEdgeDeploymentPlan.html) API 檢查邊緣部署的狀態。

```
client.describe_edge_deployment_plan(
    EdgeDeploymentPlanName="edge-deployment-plan-name"
)
```