

# Configuração de sessões interativas do AWS Glue para cadernos do Jupyter e do AWS Glue Studio
<a name="interactive-sessions-magics"></a>

## Introdução às mágicas do Jupyter
<a name="w2aac29c18b3"></a>

 As mágicas do Jupyter são comandos que podem ser executados no início de uma célula ou como um corpo inteiro de célula. As mágicas começam com `%` para mágicas de linha e `%%` para mágicas de células. Mágicas de linha, como `%region` e `%connections`, podem ser executadas com várias mágicas em uma célula ou com código incluído no corpo da célula, como no exemplo a seguir. 

```
%region us-east-2
%connections my_rds_connection
dy_f = glue_context.create_dynamic_frame.from_catalog(database='rds_tables', table_name='sales_table')
```

 As mágicas de célula devem usar toda a célula e podem fazer com que o comando englobe várias linhas. Veja um exemplo de `%%sql` abaixo. 

```
%%sql
select * from rds_tables.sales_table
```

## Mágicas compatíveis com sessões interativas do AWS Glue para Jupyter
<a name="interactive-sessions-supported-magics"></a><a name="interactive-sessions-magics2"></a>

 Veja a seguir mágicas que você pode usar com sessões interativas do AWS Glue para cadernos do Jupyter. 

 **Magics de sessões** 


| Nome | Tipo | Descrição | 
| --- | --- | --- | 
|  %help  |  n/a  |  Retorna uma lista de descrições e tipos de entrada para todos os comandos magic.  | 
| %profile | String | Especifica um perfil na sua configuração da AWS a ser usada como provedor de credenciais. | 
| %region | String |  Especifica a Região da AWS na qual uma sessão será inicializada. Padrão do `~/.aws/configure.` Exemplo: `%region us-west-1`  | 
| %idle\$1timeout | Int |   O número de minutos de inatividade após o qual uma sessão atingirá o tempo limite após a execução de uma célula. O valor de tempo limite de inatividade padrão para sessões de ETL do Spark é o tempo limite padrão, 2.880 minutos (48 horas). Para outros tipos de sessão, consulte a documentação correspondente. Exemplo: `%idle_timeout 3000`  | 
| %session\$1id | n/a | Retorna o ID da sessão em execução.  | 
| %session\$1id\$1prefix | String |   Definir uma string que precederá todos os IDs de sessão no formato **[prefixo\$1id\$1sessão]-[id\$1sessão].** Um UUID aleatório será gerado se um ID de sessão não for fornecido. Essa mágica não é compatível quando você executa um caderno Jupyter no AWS Glue Studio.  Exemplo: `%session_id_prefix 001`  | 
| %status |  | Retornar o status da atual da sessão AWS Glue, incluindo sua duração, configuração e usuário/função responsável pela execução.  | 
| %stop\$1session  |  | Interrompe a sessão atual. | 
| %list\$1sessions |  | Lista todas as sessões em execução atualmente por nome e ID. | 
| %session\$1type | String |  Define o tipo de sessão como Streaming, ETL ou Ray.  Exemplo: `%session_type Streaming`  | 
| %glue\$1version | String |  A versão do AWS Glue a ser usada pela sessão.  Exemplo: `%glue_version 3.0`  | 

 **Mágica para selecionar tipos de trabalho** 


| Nome | Tipo | Descrição | 
| --- | --- | --- | 
| %streaming | String | Altera o tipo de sessão para transmissão do AWS Glue. | 
| %etl | String | Altera o tipo de sessão para ETL do AWS Glue. | 
| %glue\$1ray | String | Altera o tipo de sessão para AWS Glue para Ray. Consulte [Mágicas compatíveis com sessões interativas do AWS Glue Ray](https://docs.aws.amazon.com/glue/latest/dg/is-using-ray-configuration).  | 

 **Mágicas de configuração do AWS Glue para Spark** 

 A mágica `%%configure` é um dicionário formatado em json que consiste em todos os parâmetros de configuração para uma sessão. Cada parâmetro pode ser especificado aqui ou por meio de magics individuais. 


| Nome | Tipo | Descrição | 
| --- | --- | --- | 
|  %%configure  |  Dicionário  |   Especifica um dicionário formatado em JSON que consiste em todos os parâmetros de configuração para uma sessão. Cada parâmetro pode ser especificado aqui ou por meio de magics individuais.   Para obter uma lista de parâmetros e exemplos de como usar `%%configure`, consulte [%%configure argumentos da mágica da célula](#interactive-sessions-magics-configure-arguments).   | 
| %iam\$1role | String |   Especificar um ARN de função do IAM com o qual executar sua sessão. Padrão de \$1/.aws/configure.   Exemplo: `%iam_role AWSGlueServiceRole`  | 
| %number\$1of\$1workers | Int |  O número de operadores de um worker\$1type definido que são alocados quando um trabalho é executado. `worker_type` também precisa estar definido. O `number_of_workers` padrão é 5. Exemplo: `%number_of_workers 2`  | 
| %additional\$1python\$1modules | Lista |  Lista separada por vírgulas de módulos adicionais do Python para incluir no cluster (pode ser do Pypi ou do S3). Exemplo: : `%additional_python_modules pandas, numpy`.  | 
| %%tags | String |   Adiciona tags a uma sessão. Especifique as tags entre colchetes \$1 \$1. Cada par de nomes de tag está entre parênteses (" ") e separado por uma vírgula (,).  <pre>%%tags<br />{"billing":"Data-Platform", "team":"analytics"}<br />                      </pre> Use a mágica `%status` para ver as tags associadas à sessão. <pre>%status</pre> <pre>Session ID: <sessionId><br /> Status: READY<br /> Role: <example-role><br /> CreatedOn: 2023-05-26 11:12:17.056000-07:00<br /> GlueVersion: 3.0<br /> Job Type: glueetl<br /> Tags: {'owner':'example-owner', 'team':'analytics', 'billing':'Data-Platform'}<br /> Worker Type: G.4X<br /> Number of Workers: 5<br /> Region: us-west-2<br /> Applying the following default arguments:<br /> --glue_kernel_version 0.38.0<br /> --enable-glue-datacatalog true<br /> Arguments Passed: ['--glue_kernel_version: 0.38.0', '--enable-glue-datacatalog: true']                <br />                </pre>  | 
| %%assume\$1role | Dicionário |  Especifique um dicionário formatado em json ou uma string ARN do perfil do IAM para criar uma sessão para acesso entre contas. Exemplo com ARN: <pre>%%assume_role<br />{<br />  'arn:aws:iam::XXXXXXXXXXXX:role/AWSGlueServiceRole'<br />}<br />                </pre> Exemplo com credenciais: <pre> %%assume_role<br />{{<br />    "aws_access_key_id" = "XXXXXXXXXXXX",<br />    "aws_secret_access_key" = "XXXXXXXXXXXX",<br />    "aws_session_token" = "XXXXXXXXXXXX"<br />}}</pre>  | 

### %%configure argumentos da mágica da célula
<a name="interactive-sessions-magics-configure-arguments"></a>

 A mágica `%%configure` é um dicionário formatado em json que consiste em todos os parâmetros de configuração para uma sessão. Cada parâmetro pode ser especificado aqui ou por meio de magics individuais. Veja abaixo exemplos de argumentos compatíveis com a mágica da célula `%%configure`. Use o prefixo `--` para os argumentos de execução especificados para o trabalho. Exemplo: 

```
%%configure
{
   "--user-jars-first": "true",
   "--enable-glue-datacatalog": "false"
}
```

 Para obter mais informações sobre parâmetros de trabalho, consulte [Parâmetros de trabalho](aws-glue-programming-etl-glue-arguments.md). 

**Configuração da sessão**


| Parâmetro | Tipo | Descrição | 
| --- | --- | --- | 
| max\$1retries | Int | O número máximo de novas tentativas desse trabalho em caso de falha. <pre>%%configure<br />{<br />  "max_retries": "0"<br />}                      <br />                          </pre> | 
| max\$1concurrent\$1runs | Int | O número máximo de execuções simultâneas permitidas para um trabalho. Exemplo: <pre>%%configure<br />{<br />  "max_concurrent_runs": "3"<br />}</pre> | 

**Parâmetros da sessão**


| Parâmetro | Tipo | Descrição | 
| --- | --- | --- | 
| --enable-spark-ui | Booleano | Ative a interface de usuário do Spark para monitorar e depurar trabalhos de AWS Glue ETL. <pre>%%configure<br />{<br />  "--enable-spark-ui": "true"<br />}</pre> | 
| --spark-event-logs-path | String | Especifica um caminho do Amazon S3. Quando usar o atributo de monitoramento da interface do usuário do Spark. Exemplo: <pre>%%configure<br />{<br />  "--spark-event-logs-path": "s3://path/to/event/logs/"<br />}                           <br />                          </pre> | 
| --script\$1location | String | Especifica o caminho do S3 para um script que executa um trabalho. Exemplo:<pre>%%configure <br />{<br />  "script_location": "s3://new-folder-here"<br />}                            <br />                          </pre> | 
| --SECURITY\$1CONFIGURATION | String | O nome de uma configuração de segurança do AWS Glue. Exemplo: <pre>%%configure<br />{<br />    "--security_configuration": {<br />"encryption_type": "kms",<br />"kms_key_id": "YOUR_KMS_KEY_ARN"<br />}<br />}<br />                  </pre>  | 
| --job-language | String | A linguagem de programação de script. Aceita um valor de 'scala' ou 'python'. O padrão é 'python'. Exemplo: <pre>%%configure <br />{<br />  "--job-language": "scala"<br />}                            <br />                  </pre>  | 
| --class | String | A classe Scala que serve como ponto de entrada para o seu script Scala. O padrão é null. Exemplo: <pre>%%configure <br />{<br />  "--class": "className"<br />}                            <br />                  </pre>  | 
| --user-jars-first | Booleano | Prioriza os arquivos JAR extras do cliente no classpath. O padrão é null. Exemplo: <pre>%%configure <br />{<br />  "--user-jars-first": "true"<br />}                            <br />                  </pre>  | 
| --use-postgres-driver | Booleano | Prioriza o driver JDBC do Postgres no caminho da classe para evitar um conflito com o driver JDBC do Amazon Redshift. O padrão é null. Exemplo: <pre>%%configure <br />{<br />  "--use-postgres-driver": "true"<br />}                            <br />                  </pre>  | 
| --extra-files | List(string) | Os caminhos do Amazon S3 para arquivos adicionais, como arquivos de configuração, que o AWS Glue copia para o diretório de trabalho do script antes de executá-lo. Exemplo: <pre>%%configure <br />{<br />  "--extra-files": "s3://path/to/additional/files/"<br />}                            <br />                  </pre>  | 
| --job-bookmark-option | String | Controla o comportamento de um marcador de trabalho. Aceita um valor de 'job-bookmark-enable', 'job-bookmark-disable' ou 'job-bookmark-pause'. O padrão é 'job-bookmark-disable'. Exemplo: <pre>%%configure<br />{<br />  "--job-bookmark-option": "job-bookmark-enable"<br />}                            <br />                  </pre>  | 
| --TempDir | String | Especifica um caminho do Amazon S3 para um bucket que pode ser usado como um diretório temporário para o trabalho. O padrão é null. Exemplo: <pre>%%configure <br />{<br />  "--TempDir": "s3://path/to/temp/dir"<br />}                            <br />                  </pre>  | 
| --enable-s3-parquet-optimized-committer | Booleano | Habilita o committer otimizado para EMRFS otimizado para Amazon S3 a gravar dados Parquet no Amazon S3. O padrão é 'true'. Exemplo: <pre>%%configure <br />{<br />  "--enable-s3-parquet-optimized-committer": "false"<br />}                            <br />                  </pre>  | 
| --enable-rename-algorithm-v2 | Booleano | Define a versão do algoritmo de renomeação do EMRFS como versão 2. O padrão é 'true'. Exemplo: <pre>%%configure <br />{<br />  "--enable-rename-algorithm-v2": "true"<br />}                            <br />                  </pre>  | 
| --enable-glue-datacatalog | Booleano | Habilita o uso do catálogo de dados do AWS Glue como um metastore do Apache Spark Hive. Exemplo: <pre>%%configure <br />{<br />  "--enable-glue-datacatalog": "true"<br />}                            <br />                  </pre>  | 
| --enable-metrics | Booleano | Habilita a coleta de métricas para criar perfis de trabalhos para a execução da tarefa. O padrão é 'false'. Exemplo: <pre>%%configure <br />{<br />  "--enable-metrics": "true"<br />}                            <br />                  </pre>  | 
| --enable-continuous-cloudwatch-log | Booleano | Habilita o registro em log contínuo em tempo real para trabalhos do AWS Glue. O padrão é 'false'. Exemplo: <pre>%%configure <br />{<br />  "--enable-continuous-cloudwatch-log": "true"<br />}                            <br />                  </pre>  | 
| --enable-continuous-log-filter | Booleano | Especifica um filtro padrão ou nenhum filtro quando você cria ou edita um trabalho habilitado para registro em log contínuo. O padrão é 'true'. Exemplo: <pre>%%configure <br />{<br />  "--enable-continuous-log-filter": "true"<br />}                            <br />                  </pre>  | 
| --continuous-log-stream-prefix | String | Especifica um prefixo personalizado de fluxo de logs do Amazon CloudWatch para um trabalho habilitado para registro em log contínuo. O padrão é null. Exemplo: <pre>%%configure <br />{<br />  "--continuous-log-stream-prefix": "prefix"<br />}                            <br />                  </pre>  | 
| --continuous-log-conversionPattern | String | Especifica um padrão personalizado de conversão de logs para um trabalho habilitado para registro em log contínuo. O padrão é null. Exemplo: <pre>%%configure <br />{<br />  "--continuous-log-conversionPattern": "pattern"<br />}                      <br />                  </pre>  | 
| --conf | String | Controla os parâmetros de configuração do Spark. Destina-se a casos de uso avançados. Use --conf antes de cada parâmetro. Exemplo: <pre>%%configure<br />{<br />    "--conf": "spark.hadoop.hive.metastore.glue.catalogid=123456789012 --conf hive.metastore.client.factory.class=com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory --conf hive.metastore.schema.verification=false"<br />}       <br />        </pre>  | 
| timeout | Int | Determina o tempo máximo que a sessão do Spark deve esperar pela conclusão de uma declaração antes de ser encerrada. <pre>%%configure <br />{<br />  "timeout": "30"<br />}</pre>  | 
| ajuste de escala automático | Booleano | Determina se deve ou não usar o ajuste de escala automático. <pre>%%configure <br />{<br />  "––enable-auto-scaling": "true"<br />}</pre>  | 

### Mágica de trabalhos do Spark (ETL e streaming)
<a name="interactive-sessions-magics-spark-jobs"></a>


| Nome | Tipo | Descrição | 
| --- | --- | --- | 
| %worker\$1type | String | Padrão, G.1X, G.2X, G.4X, G.8X, G.12X, G.16X, R.1X, R.2X, R.4X ou R.8X. number\$1of\$1workers também deve ser configurado. O worker\$1type padrão é G.1X. | 
| %connections | Lista |  Especifica uma lista separada por vírgulas de conexões para usar na sessão.   Exemplo:  <pre>%connections my_rds_connection<br />                    dy_f = glue_context.create_dynamic_frame.from_catalog(database='rds_tables', table_name='sales_table')</pre>  | 
| %extra\$1py\$1files | Lista | Lista separada por vírgulas de arquivos Python adicionais do Amazon S3. | 
| %extra\$1jars | Lista | Lista separada por vírgulas de JARs adicionais para incluir no cluster. | 
| %spark\$1conf | String | Especifique configurações personalizadas do Spark para sua sessão. Por exemplo, %spark\$1conf spark.serializer=org.apache.spark.serializer.KryoSerializer. | 

### Mágicas para trabalhos do Ray
<a name="interactive-sessions-magics-ray-jobs"></a>


| Nome | Tipo | Descrição | 
| --- | --- | --- | 
| %min\$1workers | Int |  O número mínimo de operadores alocados a um trabalho do Ray. Padrão: 1.  Exemplo: `%min_workers 2`   | 
| %object\$1memory\$1head | Int | A porcentagem de memória livre no nó principal da instância após uma inicialização a quente. Mínimo: 0. Máximo: 100. Exemplo: `%object_memory_head 100`  | 
| %object\$1memory\$1worker | Int | A porcentagem de memória livre nos nós de processamento da instância após uma inicialização a quente. Mínimo: 0. Máximo: 100. Exemplo: `%object_memory_worker 100` | 

### Magics de ação
<a name="interactive-sessions-magics-action"></a>


| Nome | Tipo | Descrição | 
| --- | --- | --- | 
| %%sql | String |   Executar o código SQL. Todas as linhas após a mágica `%%sql` inicial serão transmitidas como parte do código SQL.   Exemplo: `%%sql select * from rds_tables.sales_table`  | 
| %matplot | Figura Matplotlib |  Visualize seus dados usando a biblioteca matplotlib. Exemplo: <pre>import matplotlib.pyplot as plt<br /><br /># Set X-axis and Y-axis values<br />x = [5, 2, 8, 4, 9]<br />y = [10, 4, 8, 5, 2]<br />  <br /># Create a bar chart <br />plt.bar(x, y)<br />  <br /># Show the plot<br />%matplot plt      <br />                </pre>  | 
| %plotly | Figura Ploty |  Visualize seus dados usando a biblioteca ploty. Exemplo: <pre>import plotly.express as px<br />                  <br />#Create a graphical figure<br />fig = px.line(x=["a","b","c"], y=[1,3,2], title="sample figure")<br /><br />#Show the figure<br />%plotly fig</pre>  | 

## Nomeação de sessões
<a name="interactive-sessions-naming-sessions"></a>

 As sessões interativas do AWS Glue são recursos da AWS que exigem um nome. Os nomes devem ser exclusivos para cada sessão e podem ser restringidos pelos administradores do IAM. Para obter mais informações, consulte [Sessões interativas com o IAM](glue-is-security.md). O kernel do Jupyter gera automaticamente nomes de sessão exclusivos para você. No entanto, é possível nomear as sessões manualmente de duas maneiras: 

1.  Usar o arquivo de configuração AWS Command Line Interface localizado em `~.aws/config`. Consulte [Configuração do AWS Config com a AWS Command Line Interface](https://docs.aws.amazon.com/config/latest/developerguide/gs-cli.html). 

1.  Usar as mágicas `%session_id_prefix`. Consulte [Mágicas compatíveis com sessões interativas do AWS Glue para Jupyter](#interactive-sessions-supported-magics). 

 Um nome de sessão é gerado da seguinte forma: 
+ Quando o prefixo e o session\$1id forem fornecidos: o nome da sessão será \$1prefixo\$1-\$1UUID\$1.
+ Quando nada for fornecido: o nome da sessão será \$1UUID\$1.

A aplicação de prefixos aos nomes de sessão permite que você reconheça sua sessão ao listá-la na AWS CLI ou no console.

## Especificação de um perfil do IAM para sessões interativas
<a name="iam-role-interactive-sessions"></a>

 Você deve especificar uma função do AWS Identity and Access Management (IAM) a ser usada com o código de ETL do AWS Glue que você executa com sessões interativas. 

 A função requer as mesmas permissões do IAM que são necessárias para executar trabalhos do AWS Glue. Consulte [Criar um perfil do IAM para o AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/create-an-iam-role.html) para obter mais informações sobre como criar uma função para trabalhos e sessões interativas do AWS Glue. 

 É possível especificar as funções do IAM de duas formas: 
+  Usar o arquivo de configuração AWS Command Line Interface localizado em `~.aws/config` (recomendada). Para obter mais informações, consulte [Configurar sessões com \$1/.aws/config](https://docs.aws.amazon.com/glue/latest/ug/interactive-sessions-magics.html#interactive-sessions-named-profiles). 
**nota**  
 Quando a mágica `%profile` é usada, a configuração para `glue_iam_role` do respectivo perfil é respeitada. 
+  Uso da mágica %iam\$1role. Para obter mais informações, consulte [Mágicas compatíveis com sessões interativas do AWS Glue para Jupyter](#interactive-sessions-supported-magics). 

## Configurar sessões com perfis nomeados
<a name="interactive-sessions-named-profiles"></a>

 As sessões interativas do AWS Glue usam as mesmas credenciais que a AWS Command Line Interface ou boto3. As sessões interativas aceitam e trabalham com perfis nomeados como a AWS CLI encontrada em `~/.aws/config` (Linux e MacOS) ou `%USERPROFILE%\.aws\config` (Windows). Para obter mais informações, consulte [ Usar perfis nomeados](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-using-profiles). 

 As sessões interativas aproveitam os perfis nomeados permitindo que o perfil de serviço e o prefixo do ID da sessão do AWS Glue sejam especificados em um perfil. Para configurar uma função de perfil, adicione uma linha para a chave `iam_role` e/ou `session_id_prefix ` ao seu perfil nomeado, conforme apresentado abaixo. O `session_id_prefix` não requer haspas. Por exemplo, se você quiser adicionar um ` session_id_prefix`, insira o valor de `session_id_prefix=myprefix`. 

```
[default]
region=us-east-1
aws_access_key_id=AKIAIOSFODNN7EXAMPLE 
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
glue_iam_role=arn:aws:iam::<AccountID>:role/<GlueServiceRole> 
session_id_prefix=<prefix_for_session_names>

[user1] 
region=eu-west-1
aws_access_key_id=AKIAI44QH8DHBEXAMPLE 
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
glue_iam_role=arn:aws:iam::<AccountID>:role/<GlueServiceRoleUser1> 
session_id_prefix=<prefix_for_session_names_for_user1>
```

 Se tiver um método personalizado de geração de credenciais, você também poderá configurar seu perfil para usar o parâmetro `credential_process` em seu arquivo `~/.aws/config`. Por exemplo: 

```
[profile developer]
region=us-east-1
credential_process = "/Users/Dave/generate_my_credentials.sh" --username helen
```

 Você encontrará mais detalhes sobre a aquisição de credenciais por meio do parâmetro `credential_process` em: [Credenciais de fornecimento com um processo externo](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sourcing-external.html). 

 Se não houver uma região ou `iam_role` definidas no perfil que você está usando, será necessário especificá-las usando as mágicas `%region` e `%iam_role` na primeira célula que você executar. 