

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# モデルをパッケージ化する (Boto3)
<a name="edge-packaging-job-boto3"></a>

 AWS SDK for Python (Boto3)を使用して SageMaker Edge Manager のパッケージ化ジョブを作成できます。作業を進める前に、[前提条件を満たす](edge-packaging-job-prerequisites.md)を満たしていることを確認してください。

エッジパッケージ化ジョブをリクエストするには、`CreateEdgePackagingJob` を使います。エッジパッケージ化ジョブの名前、SageMaker Neo のコンパイルジョブの名前、ロールの Amazon リソースネーム (ARN)、モデルの名前、モデルのバージョン、パッケージ化ジョブの出力を保存する Amazon S3 バケット URI を指定する必要があります。Edge Manager のパッケージ化ジョブ名と SageMaker Neo のコンパイルジョブ名では、大文字と小文字が区別されます。

```
# Import AWS SDK for Python (Boto3)
import boto3

# Create Edge client so you can submit a packaging job
sagemaker_client = boto3.client("sagemaker", region_name={{'aws-region'}})

sagemaker_client.create_edge_packaging_job(
    EdgePackagingJobName={{"edge-packaging-name"}},
    CompilationJobName={{"neo-compilation-name"}},
    RoleArn={{"arn:aws:iam::99999999999:role/rolename"}},
    ModelName={{"sample-model-name"}},
    ModelVersion={{"model-version"}},
    OutputConfig={
        "S3OutputLocation": "s3://{{your-bucket}}/",
    }
)
```

エッジパッケージ化ジョブのステータスは、`DescribeEdgePackagingJob` を使い、エッジパッケージ化ジョブ名 (大文字と小文字を区別します) を指定することで確認できます。

```
response = sagemaker_client.describe_edge_packaging_job(
                                    EdgePackagingJobName={{"edge-packaging-name"}})
```

これにより、パッケージ化ジョブのステータスのポーリングに使用できるディクショナリが返されます。

```
# Optional - Poll every 30 sec to check completion status
import time

while True:
    response = sagemaker_client.describe_edge_packaging_job(
                                         EdgePackagingJobName={{"edge-packaging-name"}})
    
    if response['EdgePackagingJobStatus'] == 'Completed':
        break
    elif response['EdgePackagingJobStatus'] == 'Failed':
        raise RuntimeError('Packaging job failed')
    print('Packaging model...')
    time.sleep(30)
print('Done!')
```

パッケージ化ジョブのリスト表示については、`ListEdgePackagingJobs` を使います。この API を使用すると、特定のパッケージ化ジョブを検索できます。`NameContains` に名前の一部を指定して、パッケージ化ジョブ名にフィルターを適用します。また、`ModelNameContains` に名前の一部を指定して、指定した名前を含むジョブ内のモデルにフィルターを適用します。また、`SortBy` に並べ替えに使用する列、`SortOrder` に並べ替えの順序 (`Ascending` または `Descending`) を指定します。

```
sagemaker_client.list_edge_packaging_jobs(
    "NameContains": {{"sample"}},
    "ModelNameContains": {{"sample"}},
    "SortBy": {{"column-name"}},
    "SortOrder": "Descending"
)
```

パッケージ化ジョブを停止するには、`StopEdgePackagingJob` を使い、エッジパッケージ化ジョブの名前を入力します。

```
sagemaker_client.stop_edge_packaging_job(
        EdgePackagingJobName={{"edge-packaging-name"}}
)
```

Edge Manager API の完全なリストについては、[Boto3 のドキュメント](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html)を参照してください。