

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Empaqueter un modèle (Boto3)
<a name="edge-packaging-job-boto3"></a>

Vous pouvez créer une tâche d'empaquetage SageMaker Edge Manager à l'aide du AWS SDK pour Python (Boto3). Avant de continuer, assurez-vous d'avoir satisfait les [Exécuter les opérations prérequises](edge-packaging-job-prerequisites.md).

Pour demander une tâche d'empaquetage Edge, utilisez `CreateEdgePackagingJob`. Vous devez fournir un nom à votre tâche d'empaquetage Edge, le nom de votre tâche de compilation SageMaker Neo, le nom de la ressource Amazon (ARN) de votre rôle, le nom de votre modèle, une version de votre modèle et l'URI du compartiment Amazon S3 dans lequel vous souhaitez stocker le résultat de votre tâche d'empaquetage. Notez que les noms des tâches d'empaquetage d'Edge Manager et les noms des tâches de compilation SageMaker Neo distinguent les majuscules et minuscules.

```
# 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}}/",
    }
)
```

Vous pouvez vérifier l'état d'une tâche d'empaquetage Edge avec `DescribeEdgePackagingJob` et en fournissant le nom de la tâche d'empaquetage Edge sensible à la casse :

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

Cela renvoie un dictionnaire qui peut être utilisé pour interroger l'état de la tâche d'empaquetage :

```
# 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!')
```

Pour obtenir la liste des tâches d'empaquetage, utilisez `ListEdgePackagingJobs`. Vous pouvez utiliser cette API pour rechercher une tâche d'empaquetage spécifique. Fournissez un nom partiel pour `NameContains` afin de filtrer les noms des tâches d'empaquetage et un nom partiel pour `ModelNameContains` afin de filtrer les tâches dans lesquelles le nom du modèle contient le nom que vous fournissez. Spécifiez également avec quelle colonne trier pour `SortBy`, et dans quelle direction trier pour `SortOrder` (`Ascending` ou `Descending`).

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

Pour arrêter une tâche d'empaquetage, utilisez `StopEdgePackagingJob` et indiquez le nom de votre tâche d'empaquetage Edge.

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

Pour obtenir une liste complète des API Edge Manager, consultez la [documentation Boto 3](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html).