

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à.

# MLflow Configurazione dell'app
<a name="mlflow-app-setup"></a>

Un'[MLflow app](https://mlflow.org/docs/latest/tracking.html#mlflow-tracking-server-optional) è un server HTTP autonomo che serve più endpoint API REST per tracciare esecuzioni ed esperimenti. È necessaria un' MLflow app per iniziare a tracciare gli esperimenti di machine learning (ML) con SageMaker AI e. MLflow Puoi creare un' MLflow app tramite l'interfaccia utente di Studio o tramite la AWS CLI per una personalizzazione della sicurezza più granulare.

È necessario disporre delle autorizzazioni IAM corrette configurate per creare un'app. MLflow 

MLflow Le app sono l'ultima MLflow offerta gestita disponibile SageMaker e dovrebbero essere preferite rispetto ai server di MLflow tracciamento esistenti. MLflow Le app offrono funzionalità aggiuntive come tempi di avvio più rapidi, condivisione tra account, integrazioni con altre SageMaker funzionalità e altre funzionalità oltre ai server di MLflow tracciamento esistenti.

**Topics**
+ [MLflow Prerequisiti per la configurazione dell'app](mlflow-app-setup-prerequisites.md)
+ [Crea MLflow app](mlflow-app-setup-create-app.md)

# MLflow Prerequisiti per la configurazione dell'app
<a name="mlflow-app-setup-prerequisites"></a>

# Configura le autorizzazioni IAM per le app MLflow
<a name="mlflow-app-setup-prerequisites-iam"></a>

È necessario configurare i ruoli di servizio IAM necessari per iniziare a utilizzare le MLflow app in Amazon SageMaker AI. 

Se crei un nuovo dominio Amazon SageMaker AI per accedere ai tuoi esperimenti in Studio, puoi configurare le autorizzazioni IAM necessarie durante la configurazione del dominio. Per ulteriori informazioni, consulta [Configura le autorizzazioni MLflow IAM quando crei un nuovo dominio](mlflow-create-tracking-server-iam.md#mlflow-create-tracking-server-iam-role-manager).

Per configurare le autorizzazioni utilizzando la console IAM, consulta [Creazione dei ruoli di servizio IAM necessari nella console IAM](mlflow-create-tracking-server-iam.md#mlflow-create-tracking-server-iam-service-roles).

È necessario configurare i controlli di autorizzazione per le azioni `sagemaker-mlflow`. Facoltativamente, puoi definire controlli di autorizzazione più granulari per gestire le autorizzazioni specifiche delle azioni. MLflow Per ulteriori informazioni, consulta [Creazione di controlli di autorizzazione specifici per azione](#mlflow-create-app-update-iam-actions).

## Configura le autorizzazioni MLflow IAM quando crei un nuovo dominio
<a name="mlflow-create-app-iam-role-manager"></a>

Quando configuri un nuovo dominio Amazon SageMaker AI per la tua organizzazione, puoi configurare le autorizzazioni IAM per il tuo ruolo di servizio di dominio tramite le impostazioni **Users and ML Activities**.

1. Configura un nuovo dominio utilizzando la console SageMaker AI. Nella pagina **Configura dominio SageMaker AI**, scegli **Configura per le organizzazioni**. Per ulteriori informazioni, consulta [Configurazione personalizzata tramite la console](onboard-custom.md#onboard-custom-instructions-console).

1. Quando configuri **utenti e attività di machine** learning, scegli tra le seguenti attività di machine MLflow learning per: **Utilizzo MLflow**, **gestione MLflow delle app** e **Accesso richiesto ai AWS servizi per MLflow**. Per ulteriori informazioni su tali attività, consulta le spiegazioni che seguono questa procedura.

1. Completa la configurazione e la creazione del tuo nuovo dominio.

Le seguenti attività di MLflow machine learning sono disponibili in Amazon SageMaker Role Manager:
+ **Uso MLflow**: questa attività di machine learning concede al ruolo del servizio di dominio l'autorizzazione a chiamare MLflow REST APIs per gestire esperimenti, esecuzioni e modelli. MLflow
+ **Gestione MLflow delle app**: questa attività di machine learning concede al ruolo del servizio di dominio l'autorizzazione a creare, aggiornare ed eliminare MLflow app.
+ **Accesso richiesto Servizi AWS per MLflow le app**: questa attività ML fornisce le autorizzazioni del ruolo di servizio di dominio necessarie per accedere ad Amazon S3 e al AI SageMaker Model Registry. Questo consente di utilizzare il ruolo del servizio di dominio come ruolo di servizio del server di tracciamento.

Per ulteriori informazioni sulle attività ML in Gestione dei ruoli, consulta [Riferimento all'attività ML](role-manager-ml-activities.md).

## Creazione dei ruoli di servizio IAM necessari nella console IAM
<a name="mlflow-create-app-iam-service-roles"></a>

Se non hai creato o aggiornato il ruolo di servizio di dominio, devi invece creare i seguenti ruoli di servizio nella console IAM per creare e utilizzare un' MLflow app:
+ Un ruolo del servizio IAM dell' MLflow app che l'app può utilizzare per accedere alle risorse SageMaker AI
+ Un ruolo del servizio IAM SageMaker SageMaker AI che l'IA può utilizzare per creare e gestire MLflow risorse

### Politiche IAM per il ruolo del servizio MLflow App IAM
<a name="mlflow-create-app-iam-service-roles-ts"></a>

Il ruolo del servizio MLflow App IAM viene utilizzato dall'app per accedere alle risorse di cui ha bisogno, come Amazon S3 e il SageMaker Model Registry.

Quando crei il ruolo del servizio IAM dell'app, utilizza la seguente policy di fiducia IAM:

------
#### [ JSON ]

****  

```
{
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Principal": {
                 "Service": [                     
                      "sagemaker.amazonaws.com"
                 ]
             },
             "Action": "sts:AssumeRole"
         }
     ]
 }
```

------

Nella console IAM, aggiungi la seguente politica di autorizzazione al tuo ruolo di servizio dell'app:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:Put*",
                "s3:List*",
                "sagemaker:AddTags",
                "sagemaker:CreateModelPackageGroup",
                "sagemaker:CreateModelPackage",
                "sagemaker:UpdateModelPackage",
                "sagemaker:DescribeModelPackageGroup"
            ],
            "Resource": "*"
        }
    ]
}
```

------

### Policy IAM per il ruolo del servizio IAM SageMaker AI
<a name="mlflow-create-app-iam-service-roles-sm"></a>

Il ruolo del servizio SageMaker AI viene utilizzato dal client che accede all' MLflow app e necessita delle autorizzazioni per chiamare MLflow REST APIs. Il ruolo del servizio SageMaker AI richiede anche le autorizzazioni SageMaker API per creare, visualizzare, aggiornare ed eliminare app. 

Puoi creare un nuovo ruolo o aggiornarne uno esistente. Il ruolo del servizio SageMaker AI richiede la seguente politica: 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	     
    "Statement": [        
        {            
            "Effect": "Allow",            
            "Action": [
                "sagemaker-mlflow:*",
                "sagemaker:CreateMlflowTrackingServer",
                "sagemaker:ListMlflowTrackingServers",
                "sagemaker:UpdateMlflowTrackingServer",
                "sagemaker:DeleteMlflowTrackingServer",
                "sagemaker:StartMlflowTrackingServer",
                "sagemaker:StopMlflowTrackingServer",
                "sagemaker:CreatePresignedMlflowTrackingServerUrl"
            ],            
            "Resource": "*"        
        }        
    ]
}
```

------

## Creazione di controlli di autorizzazione specifici per azione
<a name="mlflow-create-app-update-iam-actions"></a>

È necessario impostare i controlli di autorizzazione per e`sagemaker-mlflow`, facoltativamente, configurare controlli di autorizzazione specifici per le azioni per gestire le MLflow autorizzazioni più granulari degli utenti su un'app. MLflow 

**Nota**  
I passaggi seguenti presuppongono che tu disponga già di un ARN per un' MLflow app. 

### Azioni IAM Data Plane supportate per MLflow le app
<a name="mlflow-app-setup-iam-actions"></a>

Le seguenti MLflow azioni SageMaker AI sono supportate per il controllo degli accessi alle autorizzazioni:
+ saggista: CallMlflowAppApi

# Crea MLflow app
<a name="mlflow-app-setup-create-app"></a>

# Crea un'app utilizzando il AWS CLI
<a name="mlflow-app-create-app-cli"></a>

Puoi creare un'app utilizzando il AWS CLI per una personalizzazione della sicurezza più granulare.

## Prerequisiti
<a name="mlflow-app-create-app-cli-prereqs"></a>

Per creare un'app utilizzando il AWS CLI, è necessario disporre di quanto segue:
+ **Accesso a un terminale.**Ciò può includere IDE locali, un'istanza Amazon EC2 o. AWS CloudShell
+ **Accesso a un ambiente di sviluppo.** Ciò può includere un ambiente notebook locale IDEs o Jupyter all'interno di Studio o Studio Classic.
+ **Un'installazione configurata**. AWS CLI Per ulteriori informazioni, consulta [Configurazione della AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) 
+ **Un ruolo IAM con autorizzazioni appropriate**. Per le fasi seguenti, è necessario che l’ambiente disponga delle autorizzazioni `iam:CreateRole`, `iam:CreatePolicy`, `iam:AttachRolePolicy` e `iam:ListPolicies`. Queste autorizzazioni sono richieste dal ruolo utilizzato per eseguire le fasi descritte in questa guida per l’utente. Le istruzioni contenute in questa guida creano un ruolo IAM che viene utilizzato come ruolo di esecuzione dell' MLflow app in modo che possa accedere ai dati nei tuoi bucket Amazon S3. Inoltre, viene creata una policy per concedere al ruolo IAM dell'utente che interagisce con l'app tramite l' MLflow SDK l'autorizzazione alla chiamata. MLflow APIs Per ulteriori informazioni, consulta [Modifica di una policy di autorizzazioni del ruolo (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-modify_permissions-policy). 

  Se utilizzi uno SageMaker Studio Notebook, aggiorna il ruolo di servizio per il tuo profilo utente di Studio con queste autorizzazioni IAM. Per aggiornare il ruolo di servizio, accedi alla console SageMaker AI e seleziona il dominio che stai utilizzando. All’interno il dominio, seleziona quindi il profilo utente che stai utilizzando. Qui vedrai il ruolo di servizio elencato. Accedi alla console IAM, cerca il ruolo di servizio in **Ruoli** e aggiorna il tuo ruolo con una policy che consenta le azioni `iam:CreateRole`, `iam:CreatePolicy`, `iam:AttachRolePolicy` e `iam:ListPolicies`. 

## Configura il AWS CLI modello
<a name="mlflow-app-create-app-cli-setup"></a>

Segui questi passaggi della riga di comando all'interno di un terminale AWS CLI per configurare Amazon SageMaker AI con MLflow.

1. Installa una versione aggiornata di AWS CLI. Per ulteriori informazioni, consulta [Install or update to the latest version of the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) nella *Guida per l’utente di AWS CLI *.

1. Verificare che AWS CLI sia installato utilizzando il seguente comando: 

   ```
   aws sagemaker help
   ```

   Premi `q` per uscire dal prompt.

   Per la risoluzione dei problemi, consultare [Risoluzione dei problemi di configurazione comuni](mlflow-troubleshooting.md).

## Configurare l' MLflow infrastruttura
<a name="mlflow-create-app-cli-infra-setup"></a>

La sezione seguente mostra come configurare un' MLflow app insieme al bucket Amazon S3 e al ruolo IAM necessari per l'app.

### Creare un bucket S3
<a name="mlflow-infra-setup-s3-bucket"></a>

All’interno del tuo terminale, utilizza i seguenti comandi per creare un bucket Amazon S3 generico: 

**Importante**  
Quando fornisci l'URI Amazon S3 per il tuo negozio di artefatti, assicurati che il bucket Amazon S3 sia nello stesso dell'app. Regione AWS MLflow **L’archiviazione di artefatti tra Regioni non è supportata**.

```
bucket_name=bucket-name
  region=valid-region
  
  aws s3api create-bucket \
    --bucket $bucket_name \
    --region $region \
    --create-bucket-configuration LocationConstraint=$region
```

L’output visualizzato dovrebbe essere simile al seguente:

```
{
      "Location": "/bucket-name"
  }
```

### Configurazione di policy di attendibilità IAM
<a name="mlflow-app-create-app-cli-trust-policy"></a>

Utilizza le fasi seguenti per creare una policy di attendibilità IAM. Per ulteriori informazioni sui ruoli e sulle policy di attendibilità, consulta [Termini e concetti dei ruoli](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) nella *Guida per l’utente di AWS Identity and Access Management *.

1. All’interno del terminale, utilizza il comando seguente per creare un file denominato `mlflow-trust-policy.json`.

   ```
   cat <<EOF > /tmp/mlflow-trust-policy.json
     {
          "Version": "2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": [                     
                           "sagemaker.amazonaws.com"
                      ]
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
     EOF
   ```

1. All’interno del terminale, utilizza il comando seguente per creare un file denominato `custom-policy.json`.

   ```
   cat <<EOF > /tmp/custom-policy.json
     {
         "Version": "2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Action": [
                     "s3:Get*",
                     "s3:Put*",
                     "sagemaker:AddTags",
                     "sagemaker:CreateModelPackageGroup",
                     "sagemaker:CreateModelPackage",
                     "sagemaker:DescribeModelPackageGroup",
                     "sagemaker:UpdateModelPackage",
                     "s3:List*"
                 ],
                 "Resource": "*"
             }
         ]
     }
     EOF
   ```

1. Utilizza la policy di attendibilità per creare un ruolo. Quindi, collega le policy di ruolo IAM che consentono di accedere MLflow ad Amazon S3 e SageMaker Model Registry all'interno del tuo account. MLflow deve avere accesso ad Amazon S3 per l'archivio di artefatti della tua app e al Model Registry per la registrazione automatica dei SageMaker modelli. 
**Nota**  
Se stai aggiornando un ruolo esistente, utilizza invece il comando `aws iam update-assume-role-policy --role-name $role_name --policy-document file:///tmp/mlflow-trust-policy.json`.

   ```
   role_name=role-name
     
     aws iam  create-role \
       --role-name $role_name \
       --assume-role-policy-document file:///tmp/mlflow-trust-policy.json
     
     aws iam put-role-policy \
       --role-name $role_name \
       --policy-name custom-policy \
       --policy-document file:///tmp/custom-policy.json
     
     role_arn=$(aws iam get-role --role-name  $role_name --query 'Role.Arn' --output text)
   ```

## Crea app MLflow
<a name="mlflow-app-create-app-cli-create"></a>

All'interno del tuo terminale, usa l'`create-mlflow-app`API per creare un'app a tua scelta. Regione AWS Questo passaggio richiede in genere circa 2-3 minuti.

Il comando seguente crea una nuova app con la registrazione automatica del modello abilitata. Per disattivare la registrazione automatica dei modelli, specifica `--no-automatic-model-registration`. 

Dopo aver creato l'app, puoi avviare l' MLflow interfaccia utente. Per ulteriori informazioni, consulta [Avvio dell’interfaccia utente di MLflow mediante un URL prefirmato](mlflow-launch-ui.md).

**Nota**  
Potrebbero essere necessari fino a 2-3 minuti per completare la creazione dell'app. Se la creazione dell'app richiede più di 3 minuti, verifica di disporre delle autorizzazioni IAM necessarie. Quando crei correttamente un'app, questa si avvia automaticamente.

Per impostazione predefinita, l'app creata è la versione più recente e verrà aggiornata automaticamente.

```
app_name=app-name
  region=valid-region
  version=valid-version        
  
  
  aws sagemaker create-mlflow-app \
   --name $app_name \
   --artifact-store-uri s3://$bucket_name \
   --role-arn $role_arn \
   --automatic-model-registration \
   --region $region
```

L’output visualizzato dovrebbe essere simile al seguente: 

```
{
      "AppArn": "arn:aws:sagemaker:region:123456789012:mlflow-app/app-name"
  }
```

**Importante**  
**Prendi nota dell'ARN dell'app per un uso successivo.** Per le fasi di pulizia, ti servirà anche il `$bucket_name`. 