

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.

# Créez une application à l'aide du AWS CLI
<a name="mlflow-app-create-app-cli"></a>

Vous pouvez créer une application à l'aide du AWS CLI pour une personnalisation plus précise de la sécurité.

## Conditions préalables
<a name="mlflow-app-create-app-cli-prereqs"></a>

Pour créer une application à l'aide de AWS CLI, vous devez disposer des éléments suivants :
+ **Accès à un terminal.**Cela peut inclure des IDE locaux, une instance Amazon EC2 ou. AWS CloudShell
+ **Accès à un environnement de développement.** Cela peut inclure un environnement de bloc-notes local IDEs ou Jupyter dans Studio ou Studio Classic.
+ **Une AWS CLI installation configurée**. Pour plus d’informations, consultez [Configuration de l’ AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html). 
+ **Rôle IAM avec autorisations appropriées**. Les étapes suivantes nécessitent que votre environnement dispose des autorisations `iam:CreateRole`, `iam:CreatePolicy`, `iam:AttachRolePolicy` et `iam:ListPolicies`. Ces autorisations sont nécessaires sur le rôle utilisé pour exécuter les étapes indiquées dans ce guide de l’utilisateur. Les instructions de ce guide créent un rôle IAM qui est utilisé comme rôle d'exécution de l' MLflow application afin qu'elle puisse accéder aux données de vos compartiments Amazon S3. En outre, une politique est créée pour donner au rôle IAM de l'utilisateur qui interagit avec l'application via le MLflow SDK l'autorisation d'appeler. MLflow APIs Pour plus d’informations, consultez [Modification d’une stratégie d’autorisation de rôle (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-modify_permissions-policy). 

  Si vous utilisez un bloc-notes SageMaker Studio, mettez à jour le rôle de service de votre profil utilisateur Studio avec ces autorisations IAM. Pour mettre à jour le rôle de service, accédez à la console SageMaker AI et sélectionnez le domaine que vous utilisez. Ensuite, sous le domaine, sélectionnez le profil utilisateur que vous utilisez. Vous y verrez le rôle de service répertorié. Accédez à la console IAM, recherchez le rôle de service sous **Rôles**, puis mettez à jour votre rôle avec une politique autorisant les actions `iam:CreateRole`, `iam:CreatePolicy`, `iam:AttachRolePolicy` et `iam:ListPolicies`. 

## Configurer le AWS CLI modèle
<a name="mlflow-app-create-app-cli-setup"></a>

Suivez ces étapes de ligne de commande dans un terminal AWS CLI pour configurer Amazon SageMaker AI avec MLflow.

1. Installez une version mise à jour du AWS CLI. Pour plus d’informations, consultez [Installation ou mise à jour de la dernière version de l’ AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dans le *Guide de l’utilisateur de l’AWS CLI *.

1. Vérifiez que le AWS CLI est installé à l'aide de la commande suivante : 

   ```
   aws sagemaker help
   ```

   Appuyez sur `q` pour quitter l’invite.

   Pour bénéficier d'une aide à la résolution des problèmes, consultez [Résolution des problèmes de configuration courants](mlflow-troubleshooting.md).

## Configuration de MLflow l'infrastructure
<a name="mlflow-create-app-cli-infra-setup"></a>

La section suivante explique comment configurer une MLflow application ainsi que le compartiment Amazon S3 et le rôle IAM nécessaires à l'application.

### Création d’un compartiment S3
<a name="mlflow-infra-setup-s3-bucket"></a>

Dans votre terminal, utilisez les commandes suivantes pour créer un compartiment Amazon S3 à usage général : 

**Important**  
Lorsque vous fournissez l'URI Amazon S3 pour votre magasin d'artefacts, assurez-vous que le compartiment Amazon S3 se trouve dans le même emplacement Région AWS que votre MLflow application. **Le stockage d’artefacts entre régions n’est pas pris en charge.**

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

La sortie doit ressembler à ce qui suit :

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

### Configuration de politiques de confiance IAM
<a name="mlflow-app-create-app-cli-trust-policy"></a>

Procédez comme suit pour créer une politique de confiance IAM. Pour plus d’informations sur les rôles et les politiques de confiance, consultez [Termes et concepts relatifs aux rôles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) dans le *Guide de l’utilisateur Gestion des identités et des accès AWS *.

1. Dans votre terminal, utilisez la commande suivante pour créer un fichier appelé `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. Dans votre terminal, utilisez la commande suivante pour créer un fichier appelé `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. Utilisez le fichier de la politique de confiance pour créer un rôle. Ajoutez ensuite des politiques de rôle IAM qui permettent d'accéder MLflow à Amazon S3 et à SageMaker Model Registry depuis votre compte. MLflow doit avoir accès à Amazon S3 pour le magasin d'artefacts de votre application et au SageMaker Model Registry pour l'enregistrement automatique des modèles. 
**Note**  
Si vous mettez à jour un rôle existant, utilisez plutôt la commande `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)
   ```

## Créer une MLflow application
<a name="mlflow-app-create-app-cli-create"></a>

Dans votre terminal, utilisez l'`create-mlflow-app`API pour créer une application dans l'application Région AWS de votre choix. Cette étape prend normalement environ 2 à 3 minutes.

La commande suivante crée une nouvelle application avec l'enregistrement automatique des modèles activé. Pour désactiver l’enregistrement automatique des modèles, spécifiez `--no-automatic-model-registration`. 

Après avoir créé votre application, vous pouvez lancer l' MLflow interface utilisateur. Pour de plus amples informations, veuillez consulter [Lancement de l’interface utilisateur MLflow à l’aide d’une URL présignée](mlflow-launch-ui.md).

**Note**  
La création de l'application peut prendre jusqu'à 2 à 3 minutes. Si la création de l'application prend plus de 3 minutes, vérifiez que vous disposez des autorisations IAM nécessaires. Lorsque vous créez une application avec succès, elle démarre automatiquement.

Par défaut, l'application créée est la dernière version et sera automatiquement mise à jour.

```
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
```

La sortie doit ressembler à ce qui suit : 

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

**Important**  
**Prenez note de l'ARN de l'application pour une utilisation ultérieure.** Vous aurez également besoin du `$bucket_name` pour les étapes de nettoyage. 