

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Crie um aplicativo usando o AWS CLI
<a name="mlflow-app-create-app-cli"></a>

Você pode criar um aplicativo usando o AWS CLI para uma personalização de segurança mais granular.

## Pré-requisitos
<a name="mlflow-app-create-app-cli-prereqs"></a>

Para criar um aplicativo usando o AWS CLI, você deve ter o seguinte:
+ **Acesso a um terminal. **Isso pode incluir IDEs locais, uma instância do Amazon EC2 ou. AWS CloudShell
+ **Acesso a um ambiente de desenvolvimento.** Isso pode incluir um ambiente de notebook local IDEs ou Jupyter no Studio ou no Studio Classic.
+ **Uma AWS CLI instalação configurada**. Para obter mais informações, consulte [Configurar a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html). 
+ **Um perfil do IAM com as permissões adequadas**. As etapas a seguir exigem que seu ambiente tenha as permissões `iam:CreateRole`, `iam:CreatePolicy`, `iam:AttachRolePolicy` e `iam:ListPolicies`. Essas permissões são necessárias no perfil que está sendo usado para executar as etapas deste guia do usuário. As instruções neste guia criam uma função do IAM que é usada como função de execução do MLflow aplicativo para que ele possa acessar dados em seus buckets do Amazon S3. Além disso, uma política é criada para dar ao papel do IAM do usuário que está interagindo com o aplicativo por meio do MLflow SDK permissão para chamar. MLflow APIs Para obter mais informações, consulte [Modificar a política de permissões (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-modify_permissions-policy). 

  Se estiver usando um SageMaker Studio Notebook, atualize a função de serviço do seu perfil de usuário do Studio com essas permissões do IAM. Para atualizar a função de serviço, navegue até o console do SageMaker AI e selecione o domínio que você está usando. Em seguida, no domínio, selecione o perfil de usuário que você está usando. Você verá o perfil de serviço listado. Navegue até o console do IAM, pesquise o perfil de serviço em **Perfis** e atualize seu perfil com uma política que permita as ações `iam:CreateRole`, `iam:CreatePolicy`, `iam:AttachRolePolicy` e `iam:ListPolicies`. 

## Configurar AWS CLI modelo
<a name="mlflow-app-create-app-cli-setup"></a>

Siga estas etapas da linha de comando em um terminal para configurar o AWS CLI para Amazon SageMaker AI com MLflow.

1. Instale uma versão atualizada do AWS CLI. Para obter mais informações, consulte [Instalar ou atualizar para a versão mais recente da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html), no *Guia do usuário da AWS CLI *.

1. Verifique se o AWS CLI está instalado usando o seguinte comando: 

   ```
   aws sagemaker help
   ```

   Clique em `q` para sair do prompt.

   Para obter ajuda sobre a solução de problemas, consulte [Solucionar problemas comuns de configuração](mlflow-troubleshooting.md).

## Configurar MLflow infraestrutura
<a name="mlflow-create-app-cli-infra-setup"></a>

A seção a seguir mostra como configurar um MLflow aplicativo junto com o bucket do Amazon S3 e a função do IAM necessária para o aplicativo.

### Crie um bucket do S3
<a name="mlflow-infra-setup-s3-bucket"></a>

Em seu terminal, use os seguintes comandos para criar um bucket do Amazon S3 de uso geral: 

**Importante**  
Ao fornecer o URI do Amazon S3 para seu armazenamento de artefatos, certifique-se de que o bucket do Amazon S3 esteja no mesmo que seu aplicativo. Região da AWS MLflow **Não é possível usar armazenamento de artefatos entre regiões**.

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

A saída deve ser semelhante à seguinte:

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

### Configurar políticas de confiança do IAM
<a name="mlflow-app-create-app-cli-trust-policy"></a>

Use as etapas a seguir para criar uma política de confiança do IAM. Para obter mais informações sobre políticas e perfis, consulte [Termos e conceitos das funções](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) no *Guia do usuário do AWS Identity and Access Management *.

1. No terminal, use o comando a seguir para criar um arquivo chamado `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. No terminal, use o comando a seguir para criar um arquivo chamado `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. Use a política de confiança para criar um perfil. Em seguida, anexe políticas de função do IAM que permitam MLflow acessar o Amazon S3 e o SageMaker Model Registry em sua conta. MLflow deve ter acesso ao Amazon S3 para o armazenamento de artefatos do seu aplicativo e ao Registro de SageMaker modelos para registro automático de modelos. 
**nota**  
Porém, se quiser atualizar um perfil existente, use o seguinte 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)
   ```

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

No seu terminal, use a `create-mlflow-app` API para criar um aplicativo no local Região da AWS de sua escolha. Essa etapa normalmente leva aproximadamente de 2 a 3 minutos.

O comando a seguir cria um novo aplicativo com o registro automático do modelo ativado. Para desativar o registro automático do modelo, especifique `--no-automatic-model-registration`. 

Depois de criar seu aplicativo, você pode iniciar a MLflow interface do usuário. Para obter mais informações, consulte [Iniciar a interface do usuário do MLflow com o uso de um URLs pré-assinado.](mlflow-launch-ui.md).

**nota**  
Pode levar de 2 a 3 minutos para concluir a criação do aplicativo. Se o aplicativo levar mais de 3 minutos para ser criado, verifique se você tem as permissões necessárias do IAM. Quando você cria um aplicativo com sucesso, ele é iniciado automaticamente.

Por padrão, o aplicativo criado é a versão mais recente e será atualizado 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
```

A saída deve ser semelhante ao seguinte: 

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

**Importante**  
**Anote o ARN do aplicativo para uso posterior.** Você também precisará de `$bucket_name` para as etapas de limpeza. 