

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Usa Amazon SageMaker AI Jobs
<a name="kubernetes-sagemaker-jobs"></a>

Questa sezione è basata sulla versione originale di [SageMaker AI Operators](https://github.com/aws/amazon-sagemaker-operator-for-k8s) for Kubernetes.

**Importante**  
[Stiamo interrompendo lo sviluppo e il supporto tecnico della versione originale di Operators for Kubernetes. SageMaker ](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master)  
Se attualmente utilizzi una versione `v1.2.2` o precedente di [ SageMaker Operators for Kubernetes](https://github.com/aws/amazon-sagemaker-operator-for-k8s/tree/master), ti consigliamo di migrare le tue risorse al [controller di servizio ACK](https://github.com/aws-controllers-k8s/sagemaker-controller) per Amazon. SageMaker [Il controller di servizio ACK è una nuova generazione di SageMaker Operators for Kubernetes basata su AWS Controllers for Kubernetes (ACK).](https://aws-controllers-k8s.github.io/community/)  
Per informazioni sulle fasi di migrazione, consulta [Migrazione di risorse verso gli operatori più recenti](kubernetes-sagemaker-operators-migrate.md).  
Per le risposte alle domande frequenti sulla fine del supporto della versione originale di Operators for Kubernetes, consulta SageMaker [Annuncio della fine del supporto della versione originale di SageMaker AI Operators for Kubernetes](kubernetes-sagemaker-operators-eos-announcement.md)

Per eseguire un job Amazon SageMaker AI utilizzando Operators for Kubernetes, puoi applicare un file YAML o utilizzare gli Helm Charts forniti. 

Tutti i processi di esempio degli operatori nei seguenti tutorial utilizzano dati di esempio presi da un set di dati MNIST pubblico. Per eseguire tali esempi, scarica il set di dati nel bucket Amazon S3. Puoi trovare il set di dati in [Scarica il set di dati MNIST](https://docs.aws.amazon.com/sagemaker/latest/dg/ex1-preprocess-data-pull-data.html). 

**Topics**
+ [TrainingJob L'operatore](#trainingjob-operator)
+ [L' HyperParameterTuningJob operatore](#hyperparametertuningjobs-operator)
+ [L' BatchTransformJob operatore](#batchtransformjobs-operator)
+ [L' HostingDeployment operatore](#hosting-deployment-operator)
+ [L'operatore ProcessingJob](#kubernetes-processing-job-operator)
+ [HostingAutoscalingPolicy (HAP) Operatore](#kubernetes-hap-operator)

## TrainingJob L'operatore
<a name="trainingjob-operator"></a>

Gli addetti alla formazione riconciliano le specifiche del lavoro di formazione specificato con l' SageMaker intelligenza artificiale lanciandola per te nell'IA. SageMaker [Puoi saperne di più sui lavori di SageMaker formazione nella documentazione dell' SageMaker API AI. CreateTrainingJob ](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateTrainingJob.html) 

**Topics**
+ [Crea un file TrainingJob utilizzando un file YAML](#create-a-trainingjob-using-a-simple-yaml-file)
+ [Crea un TrainingJob diagramma utilizzando un Helm](#create-a-trainingjob-using-a-helm-chart)
+ [Elenco TrainingJobs](#list-training-jobs)
+ [Descrivi un TrainingJob](#describe-a-training-job)
+ [Visualizza i registri da TrainingJobs](#view-logs-from-training-jobs)
+ [Elimina TrainingJobs](#delete-training-jobs)

### Crea un file TrainingJob utilizzando un file YAML
<a name="create-a-trainingjob-using-a-simple-yaml-file"></a>

1. Scarica il file YAML di esempio per l’addestramento utilizzando il seguente comando: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-trainingjob.yaml
   ```

1. Modifica il `xgboost-mnist-trainingjob.yaml` file per sostituire il `roleArn` parametro con il tuo `<sagemaker-execution-role>` e `outputPath` con il tuo bucket Amazon S3 a cui il ruolo di esecuzione SageMaker AI ha accesso in scrittura. `roleArn`Devono disporre delle autorizzazioni affinché l' SageMaker IA possa accedere ad Amazon S3, CloudWatch Amazon e altri servizi per tuo conto. Per ulteriori informazioni sulla creazione di un' SageMaker IA ExecutionRole, consulta [SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-createtrainingjob-perms) Roles. Applica il file YAML usando il comando seguente: 

   ```
   kubectl apply -f xgboost-mnist-trainingjob.yaml
   ```

### Crea un TrainingJob diagramma utilizzando un Helm
<a name="create-a-trainingjob-using-a-helm-chart"></a>

Puoi usare Helm Charts per correre. TrainingJobs 

1. Clona il GitHub repository per ottenere il codice sorgente usando il seguente comando: 

   ```
   git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
   ```

1. Vai alla cartella `amazon-sagemaker-operator-for-k8s/hack/charts/training-jobs/` e modifica il file `values.yaml` per sostituire valori come `rolearn` e `outputpath` con valori che corrispondono al tuo account. Il RoLearn deve disporre delle autorizzazioni affinché l' SageMaker IA possa accedere ad Amazon S3 CloudWatch, Amazon e altri servizi per tuo conto. [Per ulteriori informazioni sulla creazione di un' SageMaker intelligenza artificiale ExecutionRole, consulta SageMaker AI Roles.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-createtrainingjob-perms) 

#### Crea il TrainingJob
<a name="create-the-training-job"></a>

Dopo aver sostituito i ruoli e i bucket Amazon S3 con i valori appropriati in `values.yaml`, puoi creare un processo di addestramento utilizzando il seguente comando: 

```
helm install . --generate-name
```

L'aspetto dell'output deve essere simile al seguente: 

```
NAME: chart-12345678
LAST DEPLOYED: Wed Nov 20 23:35:49 2019
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Thanks for installing the sagemaker-k8s-trainingjob.
```

#### Verifica il tuo grafico Helm di addestramento
<a name="verify-your-training-helm-chart"></a>

Per verificare che Helm Chart sia stato creato correttamente, esegui quanto segue: 

```
helm ls
```

L'aspetto dell'output deve essere simile al seguente: 

```
NAME                    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
chart-12345678        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-trainingjob-0.1.0
rolebased-12345678    default         1               2019-11-20 23:14:59.6777082 +0000 UTC   deployed        sagemaker-k8s-operator-0.1.0
```

`helm install` crea una risorsa `TrainingJob` Kubernetes. L'operatore avvia l'effettivo processo di formazione sull' SageMaker intelligenza artificiale e aggiorna la risorsa `TrainingJob` Kubernetes in modo che rifletta lo stato del lavoro nell'IA. SageMaker Ti verranno addebitati dei costi per le risorse di SageMaker intelligenza artificiale utilizzate durante la durata del tuo lavoro. I processi interrotti o completati non influiscono in alcun modo sulle risorse. 

**Nota**: l' SageMaker intelligenza artificiale non consente di aggiornare un lavoro di formazione in corso. Non è possibile modificare alcun parametro e riapplicare il file di configurazione. Modifica il nome dei metadati o elimina il processo esistente e creane uno nuovo. Analogamente agli operatori di formazione esistenti, come TFJob in Kubeflow, non `update` è supportato. 

### Elenco TrainingJobs
<a name="list-training-jobs"></a>

Utilizza il seguente comando per elencare tutti i processi creati utilizzando l'operatore Kubernetes: 

```
kubectl get TrainingJob
```

L'output con l’elenco di tutti i processi deve essere simile al seguente: 

```
kubectl get trainingjobs
NAME                        STATUS       SECONDARY-STATUS   CREATION-TIME          SAGEMAKER-JOB-NAME
xgboost-mnist-from-for-s3   InProgress   Starting           2019-11-20T23:42:35Z   xgboost-mnist-from-for-s3-examplef11eab94e0ed4671d5a8f
```

Un processo di addestramento continua a essere elencato dopo il completamento o l'esito negativo del processo. È possibile rimuovere un `TrainingJob`processo dall'elenco seguendo le fasi [Elimina TrainingJobs](#delete-training-jobs). I lavori completati o interrotti non comportano alcun addebito per le risorse di SageMaker intelligenza artificiale. 

#### TrainingJob valori di stato
<a name="training-job-status-values"></a>

Il campo `STATUS` può corrispondere a uno dei seguenti valori: 
+ `Completed` 
+ `InProgress` 
+ `Failed` 
+ `Stopped` 
+ `Stopping` 

Questi stati provengono direttamente dalla [documentazione ufficiale dell'API SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeTrainingJob.html#SageMaker-DescribeTrainingJob-response-TrainingJobStatus) AI. 

Oltre allo status ufficiale di SageMaker IA, è possibile `STATUS` `SynchronizingK8sJobWithSageMaker` esserlo. Ciò significa che l'operatore non ha ancora elaborato il processo. 

#### Valori di stato secondari
<a name="secondary-status-values"></a>

Gli stati secondari provengono direttamente dalla [documentazione ufficiale dell'API SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeTrainingJob.html#SageMaker-DescribeTrainingJob-response-SecondaryStatus) AI. Contengono informazioni più dettagliate sullo stato del processo. 

### Descrivi un TrainingJob
<a name="describe-a-training-job"></a>

È possibile ricevere maggiori dettagli sul processo di addestramento utilizzando il comando `describe` `kubectl`. Viene in genere utilizzato per il debug di un problema o il controllo dei parametri di un processo di addestramento. Per ottenere informazioni sul processo di addestramento, usa il comando seguente: 

```
kubectl describe trainingjob xgboost-mnist-from-for-s3
```

L'output per il processo di addestramento deve essere simile al seguente: 

```
Name:         xgboost-mnist-from-for-s3
Namespace:    default
Labels:       <none>
Annotations:  <none>
API Version:  sagemaker.aws.amazon.com/v1
Kind:         TrainingJob
Metadata:
  Creation Timestamp:  2019-11-20T23:42:35Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        2
  Resource Version:  23119
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/trainingjobs/xgboost-mnist-from-for-s3
  UID:               6d7uiui-0bef-11ea-b94e-0ed467example
Spec:
  Algorithm Specification:
    Training Image:       8256416981234.dkr.ecr.us-east-2.amazonaws.com/xgboost:1
    Training Input Mode:  File
  Hyper Parameters:
    Name:   eta
    Value:  0.2
    Name:   gamma
    Value:  4
    Name:   max_depth
    Value:  5
    Name:   min_child_weight
    Value:  6
    Name:   num_class
    Value:  10
    Name:   num_round
    Value:  10
    Name:   objective
    Value:  multi:softmax
    Name:   silent
    Value:  0
  Input Data Config:
    Channel Name:      train
    Compression Type:  None
    Content Type:      text/csv
    Data Source:
      S 3 Data Source:
        S 3 Data Distribution Type:  FullyReplicated
        S 3 Data Type:               S3Prefix
        S 3 Uri:                     https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/train/
    Channel Name:                    validation
    Compression Type:                None
    Content Type:                    text/csv
    Data Source:
      S 3 Data Source:
        S 3 Data Distribution Type:  FullyReplicated
        S 3 Data Type:               S3Prefix
        S 3 Uri:                     https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/validation/
  Output Data Config:
    S 3 Output Path:  s3://amzn-s3-demo-bucket/sagemaker/xgboost-mnist/xgboost/
  Region:             us-east-2
  Resource Config:
    Instance Count:     1
    Instance Type:      ml.m4.xlarge
    Volume Size In GB:  5
  Role Arn:             arn:aws:iam::12345678910:role/service-role/AmazonSageMaker-ExecutionRole
  Stopping Condition:
    Max Runtime In Seconds:  86400
  Training Job Name:         xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0example
Status:
  Cloud Watch Log URL:           https://us-east-2.console.aws.amazon.com/cloudwatch/home?region=us-east-2#logStream:group=/aws/sagemaker/TrainingJobs;prefix=<example>;streamFilter=typeLogStreamPrefix
  Last Check Time:               2019-11-20T23:44:29Z
  Sage Maker Training Job Name:  xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94eexample
  Secondary Status:              Downloading
  Training Job Status:           InProgress
Events:                          <none>
```

### Visualizza i registri da TrainingJobs
<a name="view-logs-from-training-jobs"></a>

Utilizza il seguente comando per visualizzare i registri del processo di addestramento `kmeans-mnist`: 

```
kubectl smlogs trainingjob xgboost-mnist-from-for-s3
```

L'aspetto dell'output sarà simile al seguente. I log delle istanze sono disposti in ordine cronologico. 

```
"xgboost-mnist-from-for-s3" has SageMaker TrainingJobName "xgboost-mnist-from-for-s3-123456789" in region "us-east-2", status "InProgress" and secondary status "Starting"
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC Arguments: train
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [2019-11-20:23:45:22:INFO] Running standalone xgboost training.
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [2019-11-20:23:45:22:INFO] File size need to be processed in the node: 1122.95mb. Available memory size in the node: 8586.0mb
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [2019-11-20:23:45:22:INFO] Determined delimiter of CSV input is ','
xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [23:45:22] S3DistributionType set as FullyReplicated
```

### Elimina TrainingJobs
<a name="delete-training-jobs"></a>

Utilizza il seguente comando per interrompere un processo di formazione su Amazon SageMaker AI: 

```
kubectl delete trainingjob xgboost-mnist-from-for-s3
```

Questo comando rimuove il processo SageMaker di formazione da Kubernetes. Questo comando restituisce il seguente output: 

```
trainingjob.sagemaker.aws.amazon.com "xgboost-mnist-from-for-s3" deleted
```

Se il processo è ancora in corso sull' SageMaker intelligenza artificiale, il processo si interrompe. Non è previsto alcun addebito per le risorse di SageMaker intelligenza artificiale dopo l'interruzione o il completamento del lavoro. 

**Nota**: l' SageMaker IA non elimina i lavori di formazione. I lavori interrotti continuano a essere visualizzati sulla console SageMaker AI. Il `delete` comando impiega circa 2 minuti per ripulire le risorse dall' SageMaker IA. 

## L' HyperParameterTuningJob operatore
<a name="hyperparametertuningjobs-operator"></a>

Gli operatori del processo di ottimizzazione degli iperparametri riconciliano le specifiche del lavoro di ottimizzazione degli iperparametri specificato con l'intelligenza artificiale avviandola nell'IA. SageMaker SageMaker [Puoi saperne di più sui lavori di ottimizzazione degli iperparametri AI nella documentazione SageMaker dell'API AI. SageMaker CreateHyperParameterTuningJob ](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateHyperParameterTuningJob.html) 

**Topics**
+ [Crea un file HyperparameterTuningJob utilizzando un file YAML](#create-a-hyperparametertuningjob-using-a-simple-yaml-file)
+ [Crea un grafico HyperparameterTuningJob utilizzando un Helm Chart](#create-a-hyperparametertuningjob-using-a-helm-chart)
+ [Elenco HyperparameterTuningJobs](#list-hyperparameter-tuning-jobs)
+ [Descrivi un HyperparameterTuningJob](#describe-a-hyperparameter-tuning-job)
+ [Visualizza i log da HyperparameterTuningJobs](#view-logs-from-hyperparametertuning-jobs)
+ [Eliminare un HyperparameterTuningJob](#delete-hyperparametertuning-jobs)

### Crea un file HyperparameterTuningJob utilizzando un file YAML
<a name="create-a-hyperparametertuningjob-using-a-simple-yaml-file"></a>

1. Scarica il file YAML di esempio per il processo di ottimizzazione degli iperparametri utilizzando il seguente comando: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-hpo.yaml
   ```

1. Modifica il file `xgboost-mnist-hpo.yaml` per sostituire il parametro `roleArn` con il tuo `sagemaker-execution-role`. Affinché il processo di ottimizzazione degli iperparametri abbia esito positivo, devi anche modificare `s3InputPath` e `s3OutputPath` con valori che corrispondano al tuo account. Applica il file YAML degli aggiornamenti usando il comando seguente: 

   ```
   kubectl apply -f xgboost-mnist-hpo.yaml
   ```

### Crea un grafico HyperparameterTuningJob utilizzando un Helm Chart
<a name="create-a-hyperparametertuningjob-using-a-helm-chart"></a>

È possibile utilizzare i grafici Helm per eseguire processi di ottimizzazione degli iperparametri. 

1. Clona il GitHub repository per ottenere il codice sorgente usando il seguente comando: 

   ```
   git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
   ```

1. Accedi alla cartella `amazon-sagemaker-operator-for-k8s/hack/charts/hyperparameter-tuning-jobs/`. 

1. Modifica il file `values.yaml` per sostituire il parametro `roleArn` con il tuo `sagemaker-execution-role`. Affinché il processo di ottimizzazione degli iperparametri abbia esito positivo, devi anche modificare `s3InputPath` e `s3OutputPath` con valori che corrispondano al tuo account. 

#### Crea il HyperparameterTuningJob
<a name="create-the-hpo-job"></a>

Dopo aver sostituito i ruoli e i percorsi Amazon S3 con i valori appropriati in `values.yaml`, puoi creare un processo di ottimizzazione degli iperparametri utilizzando il seguente comando: 

```
helm install . --generate-name
```

L'aspetto dell'output sarà simile al seguente: 

```
NAME: chart-1574292948
LAST DEPLOYED: Wed Nov 20 23:35:49 2019
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Thanks for installing the sagemaker-k8s-hyperparametertuningjob.
```

#### Verifica dell'installazione del grafico
<a name="verify-chart-installation"></a>

Per verificare che Helm Chart sia stato creato correttamente, esegui il comando seguente: 

```
helm ls
```

L'aspetto dell'output deve essere simile al seguente: 

```
NAME                    NAMESPACE       REVISION        UPDATED
chart-1474292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-hyperparametertuningjob-0.1.0                               STATUS          CHART                           APP VERSION
chart-1574292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-trainingjob-0.1.0
rolebased-1574291698    default         1               2019-11-20 23:14:59.6777082 +0000 UTC   deployed        sagemaker-k8s-operator-0.1.0
```

`helm install` crea una risorsa `HyperParameterTuningJob` Kubernetes. L'operatore avvia l'effettivo processo di ottimizzazione degli iperparametri nell' SageMaker intelligenza artificiale e aggiorna la risorsa `HyperParameterTuningJob` Kubernetes in modo che rifletta lo stato del lavoro nell'IA. SageMaker Ti verranno addebitati dei costi per le risorse di SageMaker intelligenza artificiale utilizzate durante la durata del tuo lavoro. I processi interrotti o completati non influiscono in alcun modo sulle risorse. 

**Nota**: l' SageMaker intelligenza artificiale non consente di aggiornare un processo di ottimizzazione iperparametrica in esecuzione. Non è possibile modificare alcun parametro e riapplicare il file di configurazione. È necessario modificare il nome dei metadati o eliminare il processo esistente e crearne uno nuovo. Analogamente agli operatori di addestramento esistenti, come `TFJob` in Kubeflow, `update` non è supportato. 

### Elenco HyperparameterTuningJobs
<a name="list-hyperparameter-tuning-jobs"></a>

Utilizza il seguente comando per elencare tutti i processi creati utilizzando l'operatore Kubernetes: 

```
kubectl get hyperparametertuningjob
```

L'aspetto dell'output deve essere simile al seguente: 

```
NAME         STATUS      CREATION-TIME          COMPLETED   INPROGRESS   ERRORS   STOPPED   BEST-TRAINING-JOB                               SAGEMAKER-JOB-NAME
xgboost-mnist-hpo   Completed   2019-10-17T01:15:52Z   10          0            0        0         xgboostha92f5e3cf07b11e9bf6c06d6-009-4c7a123   xgboostha92f5e3cf07b11e9bf6c123
```

Un processo di ottimizzazione degli iperparametri continua a essere elencato dopo il completamento o l'esito negativo del processo. È possibile rimuovere un file `hyperparametertuningjob` dall'elenco seguendo le fasi in [Eliminare un HyperparameterTuningJob](#delete-hyperparametertuning-jobs). I lavori completati o interrotti non comportano alcun addebito per le risorse di SageMaker intelligenza artificiale.

#### Valori dello stato del processo di ottimizzazione degli iperparametri
<a name="hyperparameter-tuning-job-status-values"></a>

Il campo `STATUS` può corrispondere a uno dei seguenti valori: 
+ `Completed` 
+ `InProgress` 
+ `Failed` 
+ `Stopped` 
+ `Stopping` 

[Questi stati provengono direttamente dalla documentazione ufficiale dell' SageMaker API AI.](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeHyperParameterTuningJob.html#SageMaker-DescribeHyperParameterTuningJob-response-HyperParameterTuningJobStatus) 

Oltre allo status ufficiale di SageMaker IA, è possibile `STATUS` `SynchronizingK8sJobWithSageMaker` esserlo. Ciò significa che l'operatore non ha ancora elaborato il processo. 

#### Contatori di stato
<a name="status-counters"></a>

L’output ha vari contatori, come `COMPLETED` e `INPROGRESS`. Questi rappresentano rispettivamente quanti processi di addestramento sono stati completati e sono in corso. Per ulteriori informazioni su come vengono determinati, [TrainingJobStatusCounters](https://docs.aws.amazon.com/sagemaker/latest/dg/API_TrainingJobStatusCounters.html)consulta la documentazione dell' SageMaker API. 

#### Migliore TrainingJob
<a name="best-training-job"></a>

Questa colonna contiene il nome di `TrainingJob` che meglio ha ottimizzato la metrica selezionata. 

Per visualizzare un riepilogo degli iperparametri ottimizzati, esegui: 

```
kubectl describe hyperparametertuningjob xgboost-mnist-hpo
```

Per visualizzare informazioni dettagliate su `TrainingJob`, esegui: 

```
kubectl describe trainingjobs <job name>
```

#### Generato TrainingJobs
<a name="spawned-training-jobs"></a>

Puoi anche tracciare tutti i 10 processi di addestramento in Kubernetes avviati da `HyperparameterTuningJob` eseguendo il seguente comando: 

```
kubectl get trainingjobs
```

### Descrivi un HyperparameterTuningJob
<a name="describe-a-hyperparameter-tuning-job"></a>

È possibile consultare i dettagli di debug utilizzando il comando `describe` `kubectl`.

```
kubectl describe hyperparametertuningjob xgboost-mnist-hpo
```

Oltre alle informazioni sul processo di ottimizzazione, SageMaker AI Operator for Kubernetes presenta nell'output anche il [miglior processo di formazione trovato dal processo](https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-monitor.html#automatic-model-tuning-best-training-job) di ottimizzazione degli iperparametri, come segue: `describe` 

```
Name:         xgboost-mnist-hpo
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"HyperparameterTuningJob","metadata":{"annotations":{},"name":"xgboost-mnist-hpo","namespace":...
API Version:  sagemaker.aws.amazon.com/v1
Kind:         HyperparameterTuningJob
Metadata:
  Creation Timestamp:  2019-10-17T01:15:52Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        2
  Resource Version:  8167
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/hyperparametertuningjobs/xgboost-mnist-hpo
  UID:               a92f5e3c-f07b-11e9-bf6c-06d6f303uidu
Spec:
  Hyper Parameter Tuning Job Config:
    Hyper Parameter Tuning Job Objective:
      Metric Name:  validation:error
      Type:         Minimize
    Parameter Ranges:
      Integer Parameter Ranges:
        Max Value:     20
        Min Value:     10
        Name:          num_round
        Scaling Type:  Linear
    Resource Limits:
      Max Number Of Training Jobs:     10
      Max Parallel Training Jobs:      10
    Strategy:                          Bayesian
    Training Job Early Stopping Type:  Off
  Hyper Parameter Tuning Job Name:     xgboostha92f5e3cf07b11e9bf6c06d6
  Region:                              us-east-2
  Training Job Definition:
    Algorithm Specification:
      Training Image:       12345678910.dkr.ecr.us-east-2.amazonaws.com/xgboost:1
      Training Input Mode:  File
    Input Data Config:
      Channel Name:  train
      Content Type:  text/csv
      Data Source:
        s3DataSource:
          s3DataDistributionType:  FullyReplicated
          s3DataType:              S3Prefix
          s3Uri:                   https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/train/
      Channel Name:                validation
      Content Type:                text/csv
      Data Source:
        s3DataSource:
          s3DataDistributionType:  FullyReplicated
          s3DataType:              S3Prefix
          s3Uri:                   https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/validation/
    Output Data Config:
      s3OutputPath:  https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/xgboost
    Resource Config:
      Instance Count:     1
      Instance Type:      ml.m4.xlarge
      Volume Size In GB:  5
    Role Arn:             arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole
    Static Hyper Parameters:
      Name:   base_score
      Value:  0.5
      Name:   booster
      Value:  gbtree
      Name:   csv_weights
      Value:  0
      Name:   dsplit
      Value:  row
      Name:   grow_policy
      Value:  depthwise
      Name:   lambda_bias
      Value:  0.0
      Name:   max_bin
      Value:  256
      Name:   max_leaves
      Value:  0
      Name:   normalize_type
      Value:  tree
      Name:   objective
      Value:  reg:linear
      Name:   one_drop
      Value:  0
      Name:   prob_buffer_row
      Value:  1.0
      Name:   process_type
      Value:  default
      Name:   rate_drop
      Value:  0.0
      Name:   refresh_leaf
      Value:  1
      Name:   sample_type
      Value:  uniform
      Name:   scale_pos_weight
      Value:  1.0
      Name:   silent
      Value:  0
      Name:   sketch_eps
      Value:  0.03
      Name:   skip_drop
      Value:  0.0
      Name:   tree_method
      Value:  auto
      Name:   tweedie_variance_power
      Value:  1.5
    Stopping Condition:
      Max Runtime In Seconds:  86400
Status:
  Best Training Job:
    Creation Time:  2019-10-17T01:16:14Z
    Final Hyper Parameter Tuning Job Objective Metric:
      Metric Name:        validation:error
      Value:
    Objective Status:     Succeeded
    Training End Time:    2019-10-17T01:20:24Z
    Training Job Arn:     arn:aws:sagemaker:us-east-2:123456789012:training-job/xgboostha92f5e3cf07b11e9bf6c06d6-009-4sample
    Training Job Name:    xgboostha92f5e3cf07b11e9bf6c06d6-009-4c7a3059
    Training Job Status:  Completed
    Training Start Time:  2019-10-17T01:18:35Z
    Tuned Hyper Parameters:
      Name:                                    num_round
      Value:                                   18
  Hyper Parameter Tuning Job Status:           Completed
  Last Check Time:                             2019-10-17T01:21:01Z
  Sage Maker Hyper Parameter Tuning Job Name:  xgboostha92f5e3cf07b11e9bf6c06d6
  Training Job Status Counters:
    Completed:            10
    In Progress:          0
    Non Retryable Error:  0
    Retryable Error:      0
    Stopped:              0
    Total Error:          0
Events:                   <none>
```

### Visualizza i log da HyperparameterTuningJobs
<a name="view-logs-from-hyperparametertuning-jobs"></a>

I processi di ottimizzazione degli iperparametri non dispongono di log, ma tutti i processi di addestramento da essi avviati li contengono. È possibile accedere a questi log come se si trattasse di un normale processo di addestramento. Per ulteriori informazioni, consulta [Visualizza i registri da TrainingJobs](#view-logs-from-training-jobs).

### Eliminare un HyperparameterTuningJob
<a name="delete-hyperparametertuning-jobs"></a>

Usa il seguente comando per interrompere un lavoro iperparametrico in SageMaker AI. 

```
kubectl delete hyperparametertuningjob xgboost-mnist-hpo
```

Questo comando rimuove il processo di ottimizzazione degli iperparametri e i lavori di formazione associati dal cluster Kubernetes e li interrompe nell'IA. SageMaker I lavori interrotti o completati non comportano alcun addebito per le risorse AI. SageMaker SageMaker L'intelligenza artificiale non elimina i lavori di ottimizzazione degli iperparametri. I lavori interrotti continuano a essere visualizzati sulla console SageMaker AI. 

L'aspetto dell'output deve essere simile al seguente: 

```
hyperparametertuningjob.sagemaker.aws.amazon.com "xgboost-mnist-hpo" deleted
```

**Nota**: il comando delete impiega circa 2 minuti per ripulire le risorse dall' SageMaker IA. 

## L' BatchTransformJob operatore
<a name="batchtransformjobs-operator"></a>

Gli operatori del processo di trasformazione in batch riconciliano le specifiche del lavoro di trasformazione in batch specificato con l' SageMaker intelligenza artificiale lanciandola nell'IA. SageMaker [Puoi saperne di più sul processo di trasformazione in batch SageMaker AI nella documentazione dell' SageMaker API AI. CreateTransformJob ](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateTransformJob.html) 

**Topics**
+ [Crea un file BatchTransformJob utilizzando un file YAML](#create-a-batchtransformjob-using-a-simple-yaml-file)
+ [Crea un grafico BatchTransformJob utilizzando un Helm Chart](#create-a-batchtransformjob-using-a-helm-chart)
+ [Elenco BatchTransformJobs](#list-batch-transform-jobs)
+ [Descrivi un BatchTransformJob](#describe-a-batch-transform-job)
+ [Visualizza i registri da BatchTransformJobs](#view-logs-from-batch-transform-jobs)
+ [Eliminare un BatchTransformJob](#delete-a-batch-transform-job)

### Crea un file BatchTransformJob utilizzando un file YAML
<a name="create-a-batchtransformjob-using-a-simple-yaml-file"></a>

1. Scarica il file YAML di esempio per il processo di trasformazione in batch utilizzando il seguente comando: 

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-batchtransform.yaml
   ```

1. Modifica il file `xgboost-mnist-batchtransform.yaml` per modificare i parametri necessari per sostituirlo `inputdataconfig` con i tuoi dati di input e `s3OutputPath` con i bucket Amazon S3 a cui il ruolo di esecuzione SageMaker AI ha accesso in scrittura. 

1. Applica il file YAML usando il comando seguente: 

   ```
   kubectl apply -f xgboost-mnist-batchtransform.yaml
   ```

### Crea un grafico BatchTransformJob utilizzando un Helm Chart
<a name="create-a-batchtransformjob-using-a-helm-chart"></a>

È possibile utilizzare Helm Chart per eseguire processi di trasformazione in batch. 

#### Ottenimento della directory del programma di installazione Helm
<a name="get-the-helm-installer-directory"></a>

Clona il GitHub repository per ottenere il codice sorgente usando il seguente comando: 

```
git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
```

#### Configurazione di Helm Chart
<a name="configure-the-helm-chart"></a>

Accedi alla cartella `amazon-sagemaker-operator-for-k8s/hack/charts/batch-transform-jobs/`. 

Modifica il `values.yaml` file per sostituirlo `inputdataconfig` con i tuoi dati di input e OutputPath con i bucket S3 a cui il ruolo di esecuzione SageMaker AI ha accesso in scrittura. 

#### Crea un BatchTransformJob
<a name="create-a-batch-transform-job"></a>

1. Per creare un processo di trasformazione in batch, utilizza il comando seguente: 

   ```
   helm install . --generate-name
   ```

   L'aspetto dell'output deve essere simile al seguente: 

   ```
   NAME: chart-1574292948
   LAST DEPLOYED: Wed Nov 20 23:35:49 2019
   NAMESPACE: default
   STATUS: deployed
   REVISION: 1
   TEST SUITE: None
   NOTES:
   Thanks for installing the sagemaker-k8s-batch-transform-job.
   ```

1. Per verificare che Helm Chart sia stato creato correttamente, esegui il comando seguente: 

   ```
   helm ls
   NAME                    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
   chart-1474292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-batchtransformjob-0.1.0
   chart-1474292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-hyperparametertuningjob-0.1.0
   chart-1574292948        default         1               2019-11-20 23:35:49.9136092 +0000 UTC   deployed        sagemaker-k8s-trainingjob-0.1.0
   rolebased-1574291698    default         1               2019-11-20 23:14:59.6777082 +0000 UTC   deployed        sagemaker-k8s-operator-0.1.0
   ```

   Questo comando crea una risorsa `BatchTransformJob` Kubernetes. L'operatore avvia l'effettivo processo di trasformazione in SageMaker AI e aggiorna la risorsa `BatchTransformJob` Kubernetes in modo che rifletta lo stato del lavoro nell'IA. SageMaker Ti verranno addebitati dei costi per le risorse di SageMaker intelligenza artificiale utilizzate durante la durata del tuo lavoro. I processi interrotti o completati non influiscono in alcun modo sulle risorse. 

**Nota**: l' SageMaker intelligenza artificiale non consente di aggiornare un processo di trasformazione in batch in esecuzione. Non è possibile modificare alcun parametro e riapplicare il file di configurazione. È necessario modificare il nome dei metadati o eliminare il processo esistente e crearne uno nuovo. Analogamente agli operatori di addestramento esistenti, come `TFJob` in Kubeflow, `update` non è supportato. 

### Elenco BatchTransformJobs
<a name="list-batch-transform-jobs"></a>

Utilizza il seguente comando per elencare tutti i processi creati utilizzando l'operatore Kubernetes: 

```
kubectl get batchtransformjob
```

L'aspetto dell'output deve essere simile al seguente: 

```
NAME                                STATUS      CREATION-TIME          SAGEMAKER-JOB-NAME
xgboost-mnist-batch-transform       Completed   2019-11-18T03:44:00Z   xgboost-mnist-a88fb19809b511eaac440aa8axgboost
```

Un processo di trasformazione in batch continua a essere elencato dopo il completamento o l'esito negativo del processo. È possibile rimuovere un file `hyperparametertuningjob` dall'elenco seguendo le fasi [Eliminare un BatchTransformJob](#delete-a-batch-transform-job). I lavori completati o interrotti non comportano alcun addebito per le risorse di SageMaker intelligenza artificiale. 

#### Valori dello stato di trasformazione in batch
<a name="batch-transform-status-values"></a>

Il campo `STATUS` può corrispondere a uno dei seguenti valori: 
+ `Completed` 
+ `InProgress` 
+ `Failed` 
+ `Stopped` 
+ `Stopping` 

[Questi stati provengono direttamente dalla documentazione ufficiale dell' SageMaker API AI.](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeHyperParameterTuningJob.html#SageMaker-DescribeHyperParameterTuningJob-response-HyperParameterTuningJobStatus) 

Oltre allo status ufficiale di SageMaker IA, è possibile `STATUS` `SynchronizingK8sJobWithSageMaker` esserlo. Ciò significa che l'operatore non ha ancora elaborato il processo.

### Descrivi un BatchTransformJob
<a name="describe-a-batch-transform-job"></a>

È possibile consultare i dettagli di debug utilizzando il comando `describe` `kubectl`.

```
kubectl describe batchtransformjob xgboost-mnist-batch-transform
```

L'aspetto dell'output deve essere simile al seguente: 

```
Name:         xgboost-mnist-batch-transform
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"BatchTransformJob","metadata":{"annotations":{},"name":"xgboost-mnist","namespace"...
API Version:  sagemaker.aws.amazon.com/v1
Kind:         BatchTransformJob
Metadata:
  Creation Timestamp:  2019-11-18T03:44:00Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        2
  Resource Version:  21990924
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/batchtransformjobs/xgboost-mnist
  UID:               a88fb198-09b5-11ea-ac44-0aa8a9UIDNUM
Spec:
  Model Name:  TrainingJob-20190814SMJOb-IKEB
  Region:      us-east-1
  Transform Input:
    Content Type:  text/csv
    Data Source:
      S 3 Data Source:
        S 3 Data Type:  S3Prefix
        S 3 Uri:        s3://amzn-s3-demo-bucket/mnist_kmeans_example/input
  Transform Job Name:   xgboost-mnist-a88fb19809b511eaac440aa8a9SMJOB
  Transform Output:
    S 3 Output Path:  s3://amzn-s3-demo-bucket/mnist_kmeans_example/output
  Transform Resources:
    Instance Count:  1
    Instance Type:   ml.m4.xlarge
Status:
  Last Check Time:                2019-11-19T22:50:40Z
  Sage Maker Transform Job Name:  xgboost-mnist-a88fb19809b511eaac440aaSMJOB
  Transform Job Status:           Completed
Events:                           <none>
```

### Visualizza i registri da BatchTransformJobs
<a name="view-logs-from-batch-transform-jobs"></a>

Utilizza il seguente comando per visualizzare i registri del processo di trasformazione in batch `xgboost-mnist`: 

```
kubectl smlogs batchtransformjob xgboost-mnist-batch-transform
```

### Eliminare un BatchTransformJob
<a name="delete-a-batch-transform-job"></a>

Usa il seguente comando per interrompere un processo di trasformazione in batch in SageMaker AI. 

```
kubectl delete batchTransformJob xgboost-mnist-batch-transform
```

L'aspetto dell'output deve essere simile al seguente: 

```
batchtransformjob.sagemaker.aws.amazon.com "xgboost-mnist" deleted
```

Questo comando rimuove il processo di trasformazione in batch dal cluster Kubernetes e lo interrompe nell'IA. SageMaker I lavori interrotti o completati non comportano alcun addebito per le risorse AI. SageMaker L'eliminazione richiede circa 2 minuti per ripulire le risorse dall' SageMaker IA. 

**Nota**: l' SageMaker intelligenza artificiale non elimina i lavori di trasformazione in batch. I lavori interrotti continuano a essere visualizzati sulla console SageMaker AI. 

## L' HostingDeployment operatore
<a name="hosting-deployment-operator"></a>

HostingDeployment gli operatori supportano la creazione e l'eliminazione di un endpoint, nonché l'aggiornamento di un endpoint esistente, per l'inferenza in tempo reale. L'operatore di distribuzione dell'hosting riconcilia le specifiche del lavoro di distribuzione di hosting specificato con l'intelligenza artificiale creando modelli, configurazioni di endpoint ed endpoint nell' SageMaker intelligenza artificiale. SageMaker [Puoi saperne di più sull' SageMaker inferenza dell'IA nella documentazione dell'API AI. SageMaker CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpoint.html) 

**Topics**
+ [Configura una risorsa HostingDeployment](#configure-a-hostingdeployment-resource)
+ [Crea un HostingDeployment](#create-a-hostingdeployment)
+ [Elenco HostingDeployments](#list-hostingdeployments)
+ [Descrivi un HostingDeployment](#describe-a-hostingdeployment)
+ [Richiamo dell'endpoint](#invoking-the-endpoint)
+ [Aggiorna HostingDeployment](#update-hostingdeployment)
+ [Elimina il HostingDeployment](#delete-the-hostingdeployment)

### Configura una risorsa HostingDeployment
<a name="configure-a-hostingdeployment-resource"></a>

Scarica il file YAML di esempio per il processo di implementazione in hosting utilizzando il seguente comando: 

```
wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-hostingdeployment.yaml
```

Il file `xgboost-mnist-hostingdeployment.yaml` contiene i seguenti componenti, che possono essere modificati in base alle esigenze: 
+ *ProductionVariants*. Una variante di produzione è un insieme di istanze che servono un singolo modello. SageMaker L'IA bilancia il carico tra tutte le varianti di produzione in base ai pesi impostati. 
+ *Modelli*. Un modello è costituito dai container e dal ruolo di esecuzione ARN necessario per servire un modello. Richiede almeno un singolo container. 
+ *Container*. Un container specifica il set di dati e l'immagine di servizio. Se utilizzi un algoritmo personalizzato anziché un algoritmo fornito dall' SageMaker IA, il codice di inferenza deve soddisfare i requisiti dell'IA. SageMaker Per ulteriori informazioni, consulta [Using Your Own Algorithms with SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html). 

### Crea un HostingDeployment
<a name="create-a-hostingdeployment"></a>

Per creare un HostingDeployment, usa `kubectl` per applicare il file `hosting.yaml` con il seguente comando: 

```
kubectl apply -f hosting.yaml
```

SageMaker L'IA crea un endpoint con la configurazione specificata. Sono previsti costi per le risorse di SageMaker intelligenza artificiale utilizzate durante il ciclo di vita dell'endpoint. L’eliminazione dell'endpoint non influisce in alcun modo sulle risorse. 

La procedura di creazione richiede circa 10 minuti. 

### Elenco HostingDeployments
<a name="list-hostingdeployments"></a>

Per verificare che sia HostingDeployment stato creato, utilizzare il seguente comando: 

```
kubectl get hostingdeployments
```

L'aspetto dell'output deve essere simile al seguente: 

```
NAME           STATUS     SAGEMAKER-ENDPOINT-NAME
host-xgboost   Creating   host-xgboost-def0e83e0d5f11eaaa450aSMLOGS
```

#### HostingDeployment valori di stato
<a name="hostingdeployment-status-values"></a>

Il campo di stato può avere uno dei seguenti valori: 
+ `SynchronizingK8sJobWithSageMaker`: l'operatore si sta preparando a creare l'endpoint. 
+ `ReconcilingEndpoint`: l'operatore sta creando, aggiornando o eliminando le risorse dell'endpoint. Se HostingDeployment rimane in questo stato, usa `kubectl describe` per vedere il motivo nel `Additional` campo. 
+ `OutOfService`: l'endpoint non è disponibile per accettare le richieste in arrivo. 
+ `Creating`: [CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpoint.html)è in esecuzione. 
+ `Updating`: [UpdateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpoint.html)o [UpdateEndpointWeightsAndCapacities](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpointWeightsAndCapacities.html)è in esecuzione. 
+ `SystemUpdating`: l'endpoint è in fase di manutenzione e non può essere aggiornato, eliminato o ridimensionato fino al suo completamento. Questa operazione di manutenzione non modifica i valori specificati dal cliente come la configurazione del VPC, la AWS KMS crittografia, il modello, il tipo di istanza o il numero di istanze. 
+ `RollingBack`: l'endpoint non è in grado di aumentare o ridurre il peso della variante o di modificare il peso della variante ed è in procinto di ripristinare la configurazione precedente. Una volta completato il ripristino, l'endpoint torna allo stato `InService`. Questo stato transitorio si applica solo a un endpoint con scalabilità automatica attivata e che sta subendo variazioni di peso o capacità delle varianti nell'ambito di una chiamata o quando l'operazione viene richiamata in modo esplicito. [UpdateEndpointWeightsAndCapacities[UpdateEndpointWeightsAndCapacities](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpointWeightsAndCapacities.html)](https://docs.aws.amazon.com/sagemaker/latest/dg/API_UpdateEndpointWeightsAndCapacities.html) 
+ `InService`: l'endpoint è disponibile per elaborare le richieste in arrivo. 
+ `Deleting`[DeleteEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DeleteEndpoint.html): è in esecuzione. 
+ `Failed`: l'endpoint non può essere creato, aggiornato o ridimensionato. Usa [DescribeEndpoint: FailureReason](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DescribeEndpoint.html#SageMaker-DescribeEndpoint-response-FailureReason) per informazioni sull'errore. [DeleteEndpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/API_DeleteEndpoint.html)è l'unica operazione che può essere eseguita su un endpoint guasto. 

### Descrivi un HostingDeployment
<a name="describe-a-hostingdeployment"></a>

È possibile consultare i dettagli di debug utilizzando il comando `describe` `kubectl`.

```
kubectl describe hostingdeployment
```

L'aspetto dell'output deve essere simile al seguente: 

```
Name:         host-xgboost
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"HostingDeployment","metadata":{"annotations":{},"name":"host-xgboost","namespace":"def..."
API Version:  sagemaker.aws.amazon.com/v1
Kind:         HostingDeployment
Metadata:
  Creation Timestamp:  2019-11-22T19:40:00Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        1
  Resource Version:  4258134
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/hostingdeployments/host-xgboost
  UID:               def0e83e-0d5f-11ea-aa45-0a3507uiduid
Spec:
  Containers:
    Container Hostname:  xgboost
    Image:               123456789012.dkr.ecr.us-east-2.amazonaws.com/xgboost:latest
    Model Data URL:      s3://amzn-s3-demo-bucket/inference/xgboost-mnist/model.tar.gz
  Models:
    Containers:
      xgboost
    Execution Role Arn:  arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole
    Name:                xgboost-model
    Primary Container:   xgboost
  Production Variants:
    Initial Instance Count:  1
    Instance Type:           ml.c5.large
    Model Name:              xgboost-model
    Variant Name:            all-traffic
  Region:                    us-east-2
Status:
  Creation Time:         2019-11-22T19:40:04Z
  Endpoint Arn:          arn:aws:sagemaker:us-east-2:123456789012:endpoint/host-xgboost-def0e83e0d5f11eaaaexample
  Endpoint Config Name:  host-xgboost-1-def0e83e0d5f11e-e08f6c510d5f11eaaa450aexample
  Endpoint Name:         host-xgboost-def0e83e0d5f11eaaa450a350733ba06
  Endpoint Status:       Creating
  Endpoint URL:          https://runtime.sagemaker.us-east-2.amazonaws.com/endpoints/host-xgboost-def0e83e0d5f11eaaaexample/invocations
  Last Check Time:       2019-11-22T19:43:57Z
  Last Modified Time:    2019-11-22T19:40:04Z
  Model Names:
    Name:   xgboost-model
    Value:  xgboost-model-1-def0e83e0d5f11-df5cc9fd0d5f11eaaa450aexample
Events:     <none>
```

Il campo di stato fornisce ulteriori informazioni utilizzando i seguenti campi: 
+ `Additional`: ulteriori informazioni sullo stato dell’implementazione in hosting. Questo campo è facoltativo e viene compilato solo in caso di errore. 
+ `Creation Time`: Quando l'endpoint è stato creato in SageMaker AI. 
+ `Endpoint ARN`: L'ARN dell'endpoint SageMaker AI. 
+ `Endpoint Config Name`: il nome SageMaker AI della configurazione dell'endpoint. 
+ `Endpoint Name`: il nome SageMaker AI dell'endpoint. 
+ `Endpoint Status`: lo stato dell'endpoint. 
+ `Endpoint URL`: l'URL HTTPS che può essere utilizzato per accedere all'endpoint. Per ulteriori informazioni, consulta [Implementare un modello sui servizi di hosting SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html). 
+ `FailureReason`: se un comando di creazione, aggiornamento o eliminazione non riesce, la causa viene mostrata di seguito. 
+ `Last Check Time`: l'ultima volta in cui l'operatore ha verificato lo stato dell'endpoint. 
+ `Last Modified Time`: l'ultima volta in cui l'endpoint è stato modificato. 
+ `Model Names`: coppia chiave-valore di nomi di HostingDeployment modelli per nomi di modelli SageMaker AI. 

### Richiamo dell'endpoint
<a name="invoking-the-endpoint"></a>

Una volta raggiunto lo stato dell'endpoint`InService`, puoi richiamarlo in due modi: utilizzando la AWS CLI, che esegue l'autenticazione e la firma delle richieste URL, o utilizzando un client HTTP come cURL. Se utilizzi il tuo client, devi eseguire autonomamente la firma e l'autenticazione degli URL AWS v4. 

Per richiamare l'endpoint utilizzando la AWS CLI, esegui il comando seguente. Assicurati di sostituire la regione e il nome dell'endpoint con la regione e il nome dell'endpoint AI del tuo endpoint. SageMaker Queste informazioni possono essere ottenute dall'output di `kubectl describe`. 

```
# Invoke the endpoint with mock input data.
aws sagemaker-runtime invoke-endpoint \
  --region us-east-2 \
  --endpoint-name <endpoint name> \
  --body $(seq 784 | xargs echo | sed 's/ /,/g') \
  >(cat) \
  --content-type text/csv > /dev/null
```

Ad esempio, se la Regione è `us-east-2` e il nome di configurazione dell'endpoint è `host-xgboost-f56b6b280d7511ea824b129926example`, il comando seguente richiamerà l'endpoint: 

```
aws sagemaker-runtime invoke-endpoint \
  --region us-east-2 \
  --endpoint-name host-xgboost-f56b6b280d7511ea824b1299example \
  --body $(seq 784 | xargs echo | sed 's/ /,/g') \
  >(cat) \
  --content-type text/csv > /dev/null
4.95847082138
```

Di seguito si riporta la previsione `4.95847082138` tratta dal modello per i dati fittizi. 

### Aggiorna HostingDeployment
<a name="update-hostingdeployment"></a>

1. Una volta HostingDeployment che a ha uno stato di`InService`, può essere aggiornato. Potrebbero essere necessari circa 10 minuti HostingDeployment per essere in servizio. Utilizza il seguente comando per verificare che lo stato sia `InService`: 

   ```
   kubectl get hostingdeployments
   ```

1.  HostingDeployment Può essere aggiornato prima che lo stato sia`InService`. L'operatore attende l'arrivo dell'endpoint SageMaker AI `InService` prima di applicare l'aggiornamento. 

   Per applicare un aggiornamento, modifica il file `hosting.yaml`. Ad esempio, modifica il campo `initialInstanceCount` da 1 a 2 come segue: 

   ```
   apiVersion: sagemaker.aws.amazon.com/v1
   kind: HostingDeployment
   metadata:
     name: host-xgboost
   spec:
       region: us-east-2
       productionVariants:
           - variantName: all-traffic
             modelName: xgboost-model
             initialInstanceCount: 2
             instanceType: ml.c5.large
       models:
           - name: xgboost-model
             executionRoleArn: arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole
             primaryContainer: xgboost
             containers:
               - xgboost
       containers:
           - containerHostname: xgboost
             modelDataUrl: s3://amzn-s3-demo-bucket/inference/xgboost-mnist/model.tar.gz
             image: 123456789012.dkr.ecr.us-east-2.amazonaws.com/xgboost:latest
   ```

1. Salva il file, quindi usa `kubectl` per applicare l'aggiornamento come segue. Dovresti vedere lo stato cambiare da `InService` a `ReconcilingEndpoint`, quindi `Updating`. 

   ```
   $ kubectl apply -f hosting.yaml
   hostingdeployment.sagemaker.aws.amazon.com/host-xgboost configured
   
   $ kubectl get hostingdeployments
   NAME           STATUS                SAGEMAKER-ENDPOINT-NAME
   host-xgboost   ReconcilingEndpoint   host-xgboost-def0e83e0d5f11eaaa450a350abcdef
   
   $ kubectl get hostingdeployments
   NAME           STATUS     SAGEMAKER-ENDPOINT-NAME
   host-xgboost   Updating   host-xgboost-def0e83e0d5f11eaaa450a3507abcdef
   ```

SageMaker L'intelligenza artificiale implementa un nuovo set di istanze con i tuoi modelli, modifica il traffico per utilizzare le nuove istanze e prosciuga le vecchie istanze. Non appena questo processo inizia, lo stato diventa `Updating`. Una volta completato l'aggiornamento, l'endpoint diventa `InService`. La procedura richiede circa 10 minuti. 

### Elimina il HostingDeployment
<a name="delete-the-hostingdeployment"></a>

1. Usa `kubectl` per eliminare un HostingDeployment con il seguente comando: 

   ```
   kubectl delete hostingdeployments host-xgboost
   ```

   L'aspetto dell'output deve essere simile al seguente: 

   ```
   hostingdeployment.sagemaker.aws.amazon.com "host-xgboost" deleted
   ```

1. Per verificare che l’implementazione in hosting sia stata eliminata, utilizza il seguente comando: 

   ```
   kubectl get hostingdeployments
   No resources found.
   ```

Gli endpoint che sono stati eliminati non comportano alcun addebito per SageMaker le risorse AI. 

## L'operatore ProcessingJob
<a name="kubernetes-processing-job-operator"></a>

ProcessingJob gli operatori vengono utilizzati per avviare i processi di SageMaker elaborazione di Amazon. Per ulteriori informazioni sui SageMaker processi di elaborazione, consulta [CreateProcessingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html). 

**Topics**
+ [Creare un file ProcessingJob utilizzando un file YAML](#kubernetes-processing-job-yaml)
+ [Elenco ProcessingJobs](#kubernetes-processing-job-list)
+ [Descrivi un ProcessingJob](#kubernetes-processing-job-description)
+ [Eliminare un ProcessingJob](#kubernetes-processing-job-delete)

### Creare un file ProcessingJob utilizzando un file YAML
<a name="kubernetes-processing-job-yaml"></a>

Segui questi passaggi per creare un processo di SageMaker elaborazione Amazon utilizzando un file YAML:

1. Scarica lo script `kmeans_preprocessing.py` di pre-elaborazione.

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/kmeans_preprocessing.py
   ```

1. In uno dei bucket Amazon Simple Storage Service (Amazon S3), crea una cartella `mnist_kmeans_example/processing_code` e carica lo script nella cartella.

1. Scarica il file `kmeans-mnist-processingjob.yaml`.

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/kmeans-mnist-processingjob.yaml
   ```

1. Modifica il file YAML per specificare `sagemaker-execution-role` e sostituisci tutte le istanze di `amzn-s3-demo-bucket` con il bucket S3.

   ```
   ...
   metadata:
     name: kmeans-mnist-processing
   ...
     roleArn: arn:aws:iam::<acct-id>:role/service-role/<sagemaker-execution-role>
     ...
     processingOutputConfig:
       outputs:
         ...
             s3Output:
               s3Uri: s3://<amzn-s3-demo-bucket>/mnist_kmeans_example/output/
     ...
     processingInputs:
       ...
           s3Input:
             s3Uri: s3://<amzn-s3-demo-bucket>/mnist_kmeans_example/processing_code/kmeans_preprocessing.py
   ```

   `sagemaker-execution-role`Devono disporre delle autorizzazioni affinché l' SageMaker IA possa accedere al tuo bucket S3, ad Amazon CloudWatch e ad altri servizi per tuo conto. [Per ulteriori informazioni sulla creazione di un ruolo di esecuzione, consulta SageMaker AI Roles.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-createtrainingjob-perms)

1. Applica il file YAML usando uno dei comandi seguenti.

   Per l'installazione nell’ambito del cluster:

   ```
   kubectl apply -f kmeans-mnist-processingjob.yaml
   ```

   Per l'installazione nell’ambito dello spazio dei nomi:

   ```
   kubectl apply -f kmeans-mnist-processingjob.yaml -n <NAMESPACE>
   ```

### Elenco ProcessingJobs
<a name="kubernetes-processing-job-list"></a>

Utilizzate uno dei seguenti comandi per elencare tutti i lavori creati utilizzando l' ProcessingJob operatore. `SAGEMAKER-JOB-NAME `proviene dalla `metadata` sezione del file YAML.

Per l'installazione nell’ambito del cluster:

```
kubectl get ProcessingJob kmeans-mnist-processing
```

Per l'installazione nell’ambito dello spazio dei nomi:

```
kubectl get ProcessingJob -n <NAMESPACE> kmeans-mnist-processing
```

L'aspetto dell'output sarà simile al seguente:

```
NAME                    STATUS     CREATION-TIME        SAGEMAKER-JOB-NAME
kmeans-mnist-processing InProgress 2020-09-22T21:13:25Z kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385
```

L'output elenca tutti i processi, indipendentemente dal loro stato. Per rimuovere un processo dall'elenco, consulta [Eliminazione di un processo di elaborazione](https://docs.aws.amazon.com/sagemaker/latest/dg/kubernetes-processing-job-operator.html#kubernetes-processing-job-delete).

**ProcessingJob Stato**
+ `SynchronizingK8sJobWithSageMaker`: il processo viene innanzitutto trasmesso al cluster. L'operatore ha ricevuto la richiesta e si sta preparando per creare il processo di elaborazione.
+ `Reconciling`: l'operatore sta inizializzando o ripristinando errori transitori, insieme ad altri. Se il processo di elaborazione rimane in questo stato, utilizza il comando `kubectl` `describe` per visualizzare il motivo nel campo `Additional`.
+ `InProgress | Completed | Failed | Stopping | Stopped`— Stato del SageMaker processo di elaborazione. Per ulteriori informazioni, consulta [DescribeProcessingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeProcessingJob.html#sagemaker-DescribeProcessingJob-response-ProcessingJobStatus).
+ `Error`: l'operatore non può eseguire il ripristino mediante riconciliazione.

I lavori completati, interrotti o non riusciti non comportano ulteriori addebiti per le risorse di SageMaker intelligenza artificiale.

### Descrivi un ProcessingJob
<a name="kubernetes-processing-job-description"></a>

Utilizza uno dei seguenti comandi per ottenere maggiori dettagli su un processo di elaborazione. Questi comandi vengono in genere utilizzati per il debug di un problema o il controllo dei parametri di un processo di elaborazione.

Per l'installazione nell’ambito del cluster:

```
kubectl describe processingjob kmeans-mnist-processing
```

Per l'installazione nell’ambito dello spazio dei nomi:

```
kubectl describe processingjob kmeans-mnist-processing -n <NAMESPACE>
```

L'aspetto dell'output del processo di elaborazione sarà simile al seguente.

```
$ kubectl describe ProcessingJob kmeans-mnist-processing
Name:         kmeans-mnist-processing
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"ProcessingJob","metadata":{"annotations":{},"name":"kmeans-mnist-processing",...
API Version:  sagemaker.aws.amazon.com/v1
Kind:         ProcessingJob
Metadata:
  Creation Timestamp:  2020-09-22T21:13:25Z
  Finalizers:
    sagemaker-operator-finalizer
  Generation:        2
  Resource Version:  21746658
  Self Link:         /apis/sagemaker.aws.amazon.com/v1/namespaces/default/processingjobs/kmeans-mnist-processing
  UID:               7410ed52-fd18-11ea-b19a-165ae9f9e385
Spec:
  App Specification:
    Container Entrypoint:
      python
      /opt/ml/processing/code/kmeans_preprocessing.py
    Image Uri:  763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-training:1.5.0-cpu-py36-ubuntu16.04
  Environment:
    Name:   MYVAR
    Value:  my_value
    Name:   MYVAR2
    Value:  my_value2
  Network Config:
  Processing Inputs:
    Input Name:  mnist_tar
    s3Input:
      Local Path:   /opt/ml/processing/input
      s3DataType:   S3Prefix
      s3InputMode:  File
      s3Uri:        s3://<s3bucket>-us-west-2/algorithms/kmeans/mnist/mnist.pkl.gz
    Input Name:     source_code
    s3Input:
      Local Path:   /opt/ml/processing/code
      s3DataType:   S3Prefix
      s3InputMode:  File
      s3Uri:        s3://<s3bucket>/mnist_kmeans_example/processing_code/kmeans_preprocessing.py
  Processing Output Config:
    Outputs:
      Output Name:  train_data
      s3Output:
        Local Path:    /opt/ml/processing/output_train/
        s3UploadMode:  EndOfJob
        s3Uri:         s3://<s3bucket>/mnist_kmeans_example/output/
      Output Name:     test_data
      s3Output:
        Local Path:    /opt/ml/processing/output_test/
        s3UploadMode:  EndOfJob
        s3Uri:         s3://<s3bucket>/mnist_kmeans_example/output/
      Output Name:     valid_data
      s3Output:
        Local Path:    /opt/ml/processing/output_valid/
        s3UploadMode:  EndOfJob
        s3Uri:         s3://<s3bucket>/mnist_kmeans_example/output/
  Processing Resources:
    Cluster Config:
      Instance Count:     1
      Instance Type:      ml.m5.xlarge
      Volume Size In GB:  20
  Region:                 us-west-2
  Role Arn:               arn:aws:iam::<acct-id>:role/m-sagemaker-role
  Stopping Condition:
    Max Runtime In Seconds:  1800
  Tags:
    Key:    tagKey
    Value:  tagValue
Status:
  Cloud Watch Log URL:             https://us-west-2.console.aws.amazon.com/cloudwatch/home?region=us-west-2#logStream:group=/aws/sagemaker/ProcessingJobs;prefix=kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385;streamFilter=typeLogStreamPrefix
  Last Check Time:                 2020-09-22T21:14:29Z
  Processing Job Status:           InProgress
  Sage Maker Processing Job Name:  kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385
Events:                            <none>
```

### Eliminare un ProcessingJob
<a name="kubernetes-processing-job-delete"></a>

Quando elimini un processo di elaborazione, il processo di SageMaker elaborazione viene rimosso da Kubernetes ma non viene eliminato dall'AI. SageMaker Se lo stato del processo in SageMaker AI è, `InProgress` il processo viene interrotto. I processi di elaborazione interrotti non comportano alcun addebito per le risorse SageMaker AI. Utilizza uno dei seguenti comandi per eliminare un processo di elaborazione. 

Per l'installazione nell’ambito del cluster:

```
kubectl delete processingjob kmeans-mnist-processing
```

Per l'installazione nell’ambito dello spazio dei nomi:

```
kubectl delete processingjob kmeans-mnist-processing -n <NAMESPACE>
```

L'aspetto dell'output del processo di elaborazione sarà simile al seguente.

```
processingjob.sagemaker.aws.amazon.com "kmeans-mnist-processing" deleted
```



**Nota**  
SageMaker L'IA non elimina il processo di elaborazione. I lavori interrotti continuano a essere visualizzati nella console SageMaker AI. Il `delete` comando impiega alcuni minuti per ripulire le risorse dall' SageMaker IA.

## HostingAutoscalingPolicy (HAP) Operatore
<a name="kubernetes-hap-operator"></a>

L'operatore HostingAutoscalingPolicy (HAP) utilizza un elenco di risorse come input e applica la stessa politica a ciascuna di esse IDs . Ogni ID di risorsa è una combinazione di un nome di endpoint e un nome di variante. L'operatore HAP esegue due passaggi: registra la risorsa IDs e quindi applica la politica di scalabilità a ciascun ID di risorsa. `Delete`annulla entrambe le azioni. [Puoi applicare l'HAP a un endpoint SageMaker AI esistente oppure puoi creare un nuovo endpoint SageMaker AI utilizzando l'operatore. HostingDeployment ](https://docs.aws.amazon.com/sagemaker/latest/dg/hosting-deployment-operator.html#create-a-hostingdeployment) [Puoi leggere ulteriori informazioni sull'autoscaling dell' SageMaker IA nella documentazione dell'Application Autoscaling Policy.](https://docs.aws.amazon.com/sagemaker/latest/dg/endpoint-auto-scaling.html)

**Nota**  
Nei comandi `kubectl`, è possibile utilizzare la forma breve `hap` anziché `hostingautoscalingpolicy`.

**Topics**
+ [Crea un file utilizzando un file YAML HostingAutoscalingPolicy](#kubernetes-hap-job-yaml)
+ [Elenco HostingAutoscalingPolicies](#kubernetes-hap-list)
+ [Descrivi un HostingAutoscalingPolicy](#kubernetes-hap-describe)
+ [Aggiorna un HostingAutoscalingPolicy](#kubernetes-hap-update)
+ [Eliminare un HostingAutoscalingPolicy](#kubernetes-hap-delete)
+ [Aggiorna o elimina un endpoint con un HostingAutoscalingPolicy](#kubernetes-hap-update-delete-endpoint)

### Crea un file utilizzando un file YAML HostingAutoscalingPolicy
<a name="kubernetes-hap-job-yaml"></a>

Usa un file YAML per creare un HostingAutoscalingPolicy (HAP) che applichi una metrica predefinita o personalizzata a uno o più endpoint AI. SageMaker 

Amazon SageMaker AI richiede valori specifici per applicare la scalabilità automatica alla tua variante. Se questi valori non vengono configurati nelle specifiche YAML, l'operatore HAP applica i seguenti valori predefiniti.

```
# Do not change
Namespace                    = "sagemaker"
# Do not change
ScalableDimension            = "sagemaker:variant:DesiredInstanceCount"
# Only one supported
PolicyType                   = "TargetTrackingScaling"
# This is the default policy name but can be changed to apply a custom policy
DefaultAutoscalingPolicyName = "SageMakerEndpointInvocationScalingPolicy"
```

Utilizza i seguenti esempi per creare un HAP che applichi una metrica predefinita o personalizzata a uno o più endpoint.

#### Esempio 1: applicazione di una metrica predefinita a una singola variante di endpoint
<a name="kubernetes-hap-predefined-metric"></a>

1. Scarica il file YAML di esempio per una metrica predefinita utilizzando il seguente comando:

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-predefined-metric.yaml
   ```

1. Modifica il file YAML per specificare `endpointName`, `variantName` e `Region`.

1. Utilizza uno dei seguenti comandi per applicare una metrica predefinita a un singolo ID di risorsa (combinazione di nome dell'endpoint e nome della variante).

   Per l'installazione nell’ambito del cluster:

   ```
   kubectl apply -f hap-predefined-metric.yaml
   ```

   Per l'installazione nell’ambito dello spazio dei nomi:

   ```
   kubectl apply -f hap-predefined-metric.yaml -n <NAMESPACE>
   ```

#### Esempio 2: applicazione di una metrica personalizzata a una singola variante di endpoint
<a name="kubernetes-hap-custom-metric"></a>

1. Scarica il file YAML di esempio per una metrica personalizzata utilizzando il seguente comando:

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-custom-metric.yaml
   ```

1. Modifica il file YAML per specificare `endpointName`, `variantName` e `Region`.

1. Utilizza uno dei seguenti comandi per applicare una metrica personalizzata a un singolo ID di risorsa (combinazione di nome dell'endpoint e nome della variante) al posto di `SageMakerVariantInvocationsPerInstance` (consigliato).
**Nota**  
Amazon SageMaker AI non verifica la validità delle tue specifiche YAML.

   Per l'installazione nell’ambito del cluster:

   ```
   kubectl apply -f hap-custom-metric.yaml
   ```

   Per l'installazione nell’ambito dello spazio dei nomi:

   ```
   kubectl apply -f hap-custom-metric.yaml -n <NAMESPACE>
   ```

#### Esempio 3: applicazione di una policy di scalabilità a più endpoint e varianti
<a name="kubernetes-hap-scaling-policy"></a>

Puoi utilizzare l'operatore HAP per applicare la stessa politica di scalabilità a più risorse. IDs Viene creata una richiesta `scaling_policy` separata per ogni ID di risorsa (combinazione di nome dell'endpoint e nome della variante).

1. Scarica il file YAML di esempio per una metrica predefinita utilizzando il seguente comando:

   ```
   wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-predefined-metric.yaml
   ```

1. Modifica il file YAML per specificare `Region` e più valori `endpointName` e `variantName`.

1. Utilizzate uno dei seguenti comandi per applicare una metrica predefinita a più risorse IDs (combinazioni di nome dell'endpoint e nome della variante).

   Per l'installazione nell’ambito del cluster:

   ```
   kubectl apply -f hap-predefined-metric.yaml
   ```

   Per l'installazione nell’ambito dello spazio dei nomi:

   ```
   kubectl apply -f hap-predefined-metric.yaml -n <NAMESPACE>
   ```

#### Considerazioni relative a più endpoint e HostingAutoscalingPolicies varianti
<a name="kubernetes-hap-scaling-considerations"></a>

Le seguenti considerazioni si applicano quando si utilizzano più risorse: IDs
+ Se si applica una singola politica a più risorse IDs, viene creato un PolicYarn per ID di risorsa. Cinque endpoint hanno cinque policy. ARNs Quando si esegue il comando `describe` sulla policy, le risposte vengono visualizzate come un unico processo e includono un singolo stato del processo.
+ Se applichi una metrica personalizzata a più risorse IDs, viene utilizzata la stessa dimensione o lo stesso valore per tutti i valori dell'ID della risorsa (variante). Ad esempio, se si applica una metrica relativa al cliente per le istanze 1-5 e la dimensione della variante dell'endpoint viene mappata alla variante 1, quando la variante 1 supera le metriche, tutti gli endpoint vengono ridimensionati verso l'alto o verso il basso.
+ L'operatore HAP supporta l'aggiornamento dell'elenco delle risorse. IDs Se si modifica, si aggiunge o si elimina una risorsa IDs alla specifica, la politica di scalabilità automatica viene rimossa dall'elenco precedente di varianti e applicata alle nuove combinazioni di ID di risorsa specificate. Utilizzate il [https://docs.aws.amazon.com/sagemaker/latest/dg/kubernetes-hap-operator.html#kubernetes-hap-describe](https://docs.aws.amazon.com/sagemaker/latest/dg/kubernetes-hap-operator.html#kubernetes-hap-describe)comando per elencare la risorsa IDs a cui è attualmente applicata la politica.

### Elenco HostingAutoscalingPolicies
<a name="kubernetes-hap-list"></a>

Utilizzate uno dei seguenti comandi per elencare tutti i HostingAutoscalingPolicies (HAPs) creati utilizzando l'operatore HAP.

Per l'installazione nell’ambito del cluster:

```
kubectl get hap
```

Per l'installazione nell’ambito dello spazio dei nomi:

```
kubectl get hap -n <NAMESPACE>
```

L'aspetto dell'output sarà simile al seguente:

```
NAME             STATUS   CREATION-TIME
hap-predefined   Created  2021-07-13T21:32:21Z
```

Usa il seguente comando per controllare lo stato del tuo HostingAutoscalingPolicy (HAP).

```
kubectl get hap <job-name>
```

Viene restituito uno dei seguenti valori:
+ `Reconciling`: alcuni tipi di errori mostrano lo stato `Reconciling` anziché `Error`. Ne sono un esempio gli errori lato server e gli endpoint con stato `Creating` o `Updating`. Controlla il campo `Additional` dello stato o dei registri dell'operatore per ulteriori dettagli.
+ `Created`
+ `Error`

**Per visualizzare l'endpoint di scalabilità automatica a cui hai applicato la policy:**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel pannello laterale sinistro, espandi **Inferenza**.

1. Scegli **Endpoint**.

1. Seleziona il nome dell'endpoint di interesse.

1. Scorri fino alla sezione **Impostazioni di configurazione degli endpoint**.

### Descrivi un HostingAutoscalingPolicy
<a name="kubernetes-hap-describe"></a>

Usa il seguente comando per ottenere maggiori dettagli su a HostingAutoscalingPolicy (HAP). Questi comandi vengono in genere utilizzati per risolvere un problema o controllare la risorsa IDs (nome dell'endpoint e combinazioni di nomi delle varianti) di un HAP.

```
kubectl describe hap <job-name>
```

### Aggiorna un HostingAutoscalingPolicy
<a name="kubernetes-hap-update"></a>

L'operatore HostingAutoscalingPolicy (HAP) supporta gli aggiornamenti. È possibile cambiare le specifiche YAML per modificare i valori, quindi riapplicare la policy. L'operatore HAP elimina la policy esistente e applica quella nuova.

### Eliminare un HostingAutoscalingPolicy
<a name="kubernetes-hap-delete"></a>

Utilizzare uno dei seguenti comandi per eliminare una politica HostingAutoscalingPolicy (HAP).

Per l'installazione nell’ambito del cluster:

```
kubectl delete hap hap-predefined
```

Per l'installazione nell’ambito dello spazio dei nomi:

```
kubectl delete hap hap-predefined -n <NAMESPACE>
```

Questo comando elimina la policy di scalabilità e annulla la registrazione della destinazione di scalabilità da Kubernetes. Questo comando restituisce il seguente output:

```
hostingautoscalingpolicies.sagemaker.aws.amazon.com "hap-predefined" deleted
```

### Aggiorna o elimina un endpoint con un HostingAutoscalingPolicy
<a name="kubernetes-hap-update-delete-endpoint"></a>

Per aggiornare un endpoint che dispone di un HostingAutoscalingPolicy (HAP), utilizzare il `kubectl` `delete` comando per rimuovere l'HAP, aggiornare l'endpoint e quindi riapplicare l'HAP.

Per eliminare un endpoint con HAP, utilizza il comando `kubectl` `delete` per rimuovere l'HAP prima di eliminare l'endpoint.