

# Criação e gerenciamento de perfis de uso
<a name="start-usage-profiles-managing"></a>

## Criação de um perfil de uso do AWS Glue
<a name="w2aac15c15c19b3"></a>

Os administradores devem criar perfis de uso e depois atribuí-los aos diversos usuários. Ao criar um perfil de uso, você especifica valores padrão, bem como um intervalo de valores permitidos para vários parâmetros de tarefa e sessão. Você deve configurar ao menos um parâmetro para tarefas ou sessões interativas. É possível personalizar o valor padrão a ser usado quando um valor de parâmetro não for fornecido para a tarefa e/ou configurar um limite de intervalo ou um conjunto de valores permitidos para validação se um usuário fornecer um valor de parâmetro ao usar esse perfil. 

Os *padrões* são uma prática recomendada definida pelo administrador para auxiliar os autores da tarefa. Quando um usuário cria uma nova tarefa e não define um valor de tempo limite, o sistema aplicará o tempo limite padrão do perfil de uso. Se o autor não tiver um perfil, o sistema vai aplicar os padrões de serviço do AWS Glue e salvá-los na definição de tarefa. No runtime, o AWS Glue aplica os limites definidos no perfil (mínimo, máximo, operadores permitidos).

 Após a configuração de um parâmetro, todos os outros parâmetros serão opcionais. Os parâmetros passíveis de personalização para tarefas ou sessões interativas são: 
+  **Número de operadores**: restrinja o número de operadores para evitar o uso excessivo dos recursos computacionais. É possível definir um valor padrão, mínimo e máximo. O mínimo é 1. 
+  **Tipo de operador**: restrinja os tipos de operadores relevantes para suas workloads. Você pode definir um tipo padrão e permitir tipos de operador para um perfil de usuário. 
+  **Tempo limite**: defina o tempo máximo durante o qual uma tarefa ou sessão interativa pode ser executada e consumir recursos antes de ser encerrada. Configure valores de tempo limite para evitar tarefas de longa duração.

  É possível definir um valor padrão, mínimo e máximo em minutos. O mínimo é de 1 (minuto). Embora o tempo limite padrão do AWS Glue seja de 2.880 minutos, você pode definir qualquer valor padrão no perfil de uso.

  Uma prática recomendada é a definição de um valor para “padrão”. Esse valor será usado para a criação da tarefa ou da sessão se o usuário não tiver definido nenhum valor.
+  **Tempo limite de inatividade**: defina o número de minutos em que uma sessão interativa fica inativa antes de expirar após a execução de uma célula. Defina o tempo limite de inatividade para que as sessões interativas sejam encerradas após a conclusão da tarefa. O intervalo de tempo limite de inatividade deverá estar dentro do limite do tempo limite.

  É possível definir um valor padrão, mínimo e máximo em minutos. O mínimo é de 1 (minuto). Embora o tempo limite padrão do AWS Glue seja de 2.880 minutos, você pode definir qualquer valor padrão no perfil de uso. 

  Uma prática recomendada é a definição de um valor para “padrão”. Esse valor será usado para a criação da sessão se o usuário não tiver definido nenhum valor.

**Para criar um perfil de uso do AWS Glue como administrador (console)**

1. No menu de navegação à esquerda, escolha **Gerenciamento de custos**.

1. Escolha **Criar perfil de uso**.

1. Insira o **Nome do perfil de uso** para o perfil de uso.

1. Insira uma descrição opcional que ajudará outras pessoas a reconhecer a finalidade do perfil de uso.

1. Defina pelo menos um parâmetro no perfil. Qualquer campo no formulário é um parâmetro. Por exemplo, o tempo limite mínimo de inatividade da sessão.

1. Defina qualquer tag opcional que seja aplicável ao perfil de uso.

1. Escolha **Salvar**.  
![Um exemplo de um administrador criando um perfil de uso no AWS Glue.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/usage-profiles-2-create.png)

**Para criar um novo perfil de uso (AWS CLI)**

1. Insira o comando a seguir.

   ```
   aws glue create-usage-profile --name {{profile-name}} --configuration {{file://config.json}} --tags {{list-of-tags}}
   ```

   no qual config.json pode definir valores de parâmetros para sessões interativas (`SessionConfiguration`) e tarefas (`JobConfiguration`):

   ```
   //config.json (There is a separate blob for session/job configuration
   {
       "SessionConfiguration": {
           "timeout": {
               "DefaultValue": "2880",
               "MinValue": "100",
               "MaxValue": "4000"
           },
           "idleTimeout": {
               "DefaultValue": "30",
               "MinValue": "10",
               "MaxValue": "4000"
           },
           "workerType": {
               "DefaultValue": "G.2X",
               "AllowedValues": [
                   "G.1X",
                   "G.2X",
                   "G.4X",
                   "G.8X",
                   "G.12X",
                   "G.16X",
                   "R.1X",
                   "R.2X",
                   "R.4X",
                   "R.8X"
               ]
           },
           "numberOfWorkers": {
               "DefaultValue": "10",
               "MinValue": "1",
               "MaxValue": "10"
           }
       },
       "JobConfiguration": {
           "timeout": {
               "DefaultValue": "2880",
               "MinValue": "100",
               "MaxValue": "4000"
           },
           "workerType": {
               "DefaultValue": "G.2X",
               "AllowedValues": [
                   "G.1X",
                   "G.2X",
                   "G.4X",
                   "G.8X",
                   "G.12X",
                   "G.16X",
                   "R.1X",
                   "R.2X",
                   "R.4X",
                   "R.8X"
               ]
           },
           "numberOfWorkers": {
               "DefaultValue": "10",
               "MinValue": "1",
               "MaxValue": "10"
           }
       }
   }
   ```

1. Insira o comando a seguir para visualizar o perfil de uso criado:

   ```
   aws glue get-usage-profile --name {{profile-name}}
   ```

   A resposta:

   ```
   {
       "ProfileName": "foo",
       "Configuration": {
           "SessionConfiguration": {
               "numberOfWorkers": {
                   "DefaultValue": "10",
                   "MinValue": "1",
                   "MaxValue": "10"
               },
               "workerType": {
                   "DefaultValue": "G.2X",
                   "AllowedValues": [
                       "G.1X",
                       "G.2X",
                       "G.4X",
                       "G.8X",
                       "G.12X",
                       "G.16X",
                       "R.1X",
                       "R.2X",
                       "R.4X",
                       "R.8X"
                   ]
               },
               "timeout": {
                   "DefaultValue": "2880",
                   "MinValue": "100",
                   "MaxValue": "4000"
               },
               "idleTimeout": {
                   "DefaultValue": "30",
                   "MinValue": "10",
                   "MaxValue": "4000"
               }
           },
           "JobConfiguration": {
               "numberOfWorkers": {
                   "DefaultValue": "10",
                   "MinValue": "1",
                   "MaxValue": "10"
               },
               "workerType": {
                   "DefaultValue": "G.2X",
                   "AllowedValues": [
                       "G.1X",
                       "G.2X",
                       "G.4X",
                       "G.8X",
                       "G.12X",
                       "G.16X",
                       "R.1X",
                       "R.2X",
                       "R.4X",
                       "R.8X"
                   ]
               },
               "timeout": {
                   "DefaultValue": "2880",
                   "MinValue": "100",
                   "MaxValue": "4000"
               }
           }
       },
       "CreatedOn": "2024-01-19T23:15:24.542000+00:00"
   }
   ```

Comandos adicionais de CLI usados para gerenciar perfis de uso:
+ aws glue list-usage-profiles
+ aws glue update-usage-profile --name {{profile-name}} --configuration {{file://config.json}}
+ aws glue delete-usage-profile --name {{profile-name}}

## Editar um perfil de uso
<a name="w2aac15c15c19b5"></a>

Para alterar os valores do parâmetro do perfil para tarefas e sessões interativas, os administradores podem editar os perfis de uso que eles criaram.

Para editar um perfil de uso:

**Para editar um perfil de uso do AWS Glue como administrador (console)**

1. No menu de navegação à esquerda, escolha **Gerenciamento de custos**.

1. Escolha um perfil de uso para o qual você tenha permissões para editar e escolha **Editar**.

1. Faça as alterações necessárias no perfil. Por padrão, os parâmetros que já têm valores serão expandidos.

1. Escolha **Salvar edições**.  
![Um exemplo de um usuário editando um perfil de uso no AWS Glue.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/usage-profiles-4-edit.png)

**Para editar um perfil de uso (AWS CLI)**
+ Insira o comando a seguir. A mesma sintaxe de arquivo `--configuration` é usada conforme apresentado acima no comando criar.

  ```
  aws glue update-usage-profile --name {{profile-name}} --configuration {{file://config.json}}
  ```

  no qual config.json define valores de parâmetros para sessões interativas (`SessionConfiguration`) e tarefas (`JobConfiguration`):

## Atribuição de um perfil de uso
<a name="w2aac15c15c19b7"></a>

A coluna **Status de utilização** na página **Perfis de uso** mostra se um perfil de uso está ou não atribuído a usuários. Passar o mouse sobre o status mostra as entidades atribuídas do IAM.

O administrador pode atribuir um perfil de uso do AWS Glue aos usuários/perfis que criarem recursos do AWS Glue. A atribuição de um perfil é uma combinação de duas ações:
+ Atualizar a tag de usuário/perfil do IAM com a chave `glue:UsageProfile` e, em seguida
+ Atualizar a política do IAM do usuário/perfil.

Para usuários que usam o AWS Glue Studio para criar tarefas/sessões interativas, o administrador marca com tags os seguintes perfis:
+ Para restrições em tarefas, o administrador marca o perfil de console conectado.
+ Para restrições em sessões interativas, o administrador marca com tag o perfil que o usuário fornece ao criar o notebook.

Veja a seguir um exemplo de política que o administrador precisa atualizar nos usuários/perfis do IAM que criam recursos do AWS Glue:

```
{
    "Effect": "Allow",
    "Action": [
        "glue:GetUsageProfile"
    ],
    "Resource": [
        "arn:aws:glue:us-east-1:123456789012:usageProfile/foo"
    ]
}
```

O AWS Glue valida solicitações de tarefa, execução de tarefa e sessões com base nos valores especificados no perfil de uso do AWS Glue e gera uma exceção se a solicitação não for permitida. Para APIs síncronas, haverá o lançamento de um erro para o usuário. Para caminhos assíncronos, o sistema criará uma execução de tarefa com falha com a mensagem de erro de que o parâmetro de entrada está fora do intervalo permitido para o perfil atribuído do usuário/perfil.

Para atribuir um perfil de uso a um usuário/perfil:

1. Abra o console do Identity and Access Management (IAM).

1. No painel de navegação à esquerda, escolha **Usuários** ou **Perfis**.

1. Escolha um usuário ou um perfil.

1. Escolha a guia **Tags**.

1. Selecione **Adicionar nova tag**

1. Adicione uma tag com a **Chave** de `glue:UsageProfile` e o **Valor** do nome do seu perfil de uso.

1. Selecione **Save changes** (Salvar alterações)  
![Um exemplo de adição de uma tag a um perfil do IAM.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/usage-profiles-iam-role-tagged.png)

## Visualizar seu perfil de uso atribuído
<a name="w2aac15c15c19b9"></a>

Os usuários podem visualizar seus perfis de uso atribuídos e usá-los ao fazer chamadas de API para criar recursos de tarefa e sessão do AWS Glue ou ao iniciar uma tarefa.

As permissões de perfil são fornecidas nas políticas do IAM. O usuário poderá visualizar o perfil desde que a política de chamadas tenha a permissão `glue:UsageProfile`. Caso contrário, você receberá um erro de acesso negado.

Para visualizar um perfil de uso atribuído:

1. No menu de navegação à esquerda, escolha **Gerenciamento de custos**.

1. Escolha um perfil de uso para o qual você tenha permissões de visualizar.

![Um exemplo de um usuário visualizando seu perfil de uso atribuído no AWS Glue.](http://docs.aws.amazon.com/pt_br/glue/latest/dg/images/usage-profiles-3-view.png)
