Configuración de las sesiones interactivas de AWS Glue para cuadernos de Jupyter y AWS Glue Studio - AWS Glue

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración de las sesiones interactivas de AWS Glue para cuadernos de Jupyter y AWS Glue Studio

Introducción a los comandos mágicos de Jupyter

Los comandos mágicos de Jupyter son comandos que se pueden ejecutar al principio de una celda o como un cuerpo de celda completo. Los comandos mágicos comienzan por % en el caso de los comandos mágicos de línea, y por %% si son comandos mágicos de celda. Los comandos mágicos de línea como %region y %connections se pueden ejecutar con varios comandos mágicos en una celda, o bien con código incluido en el cuerpo de la celda, como en el siguiente ejemplo.

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

Los comandos mágicos de celda deben utilizar toda la celda y pueden hacer que el comando abarque varias líneas. A continuación aparece un ejemplo de %%sql.

%%sql select * from rds_tables.sales_table

Comandos mágicos compatibles con las sesiones interactivas de AWS Glue para Jupyter

Los siguientes son comandos mágicos que se pueden utilizar con sesiones interactivas de AWS Glue para cuadernos de Jupyter.

Comandos mágicos de las sesiones

Nombre Tipo Descripción
%help n/a Devuelve una lista de descripciones y tipos de entrada para todos los comandos mágicos.
%profile Cadena Especifica un perfil en su configuración de AWS que se utilizará como proveedor de credenciales.
%region Cadena Especifica la Región de AWS en la que inicializar una sesión. Valor predeterminado de ~/.aws/configure.
%idle_timeout Int Número de minutos de inactividad tras los que se agotará el tiempo de espera de una sesión una vez que se haya ejecutado una celda. El valor predeterminado de tiempo de inactividad para las sesiones de ETL de Spark es el tiempo de espera predeterminado: 2880 minutos (48 horas). Para otros tipos de sesiones, consulte la documentación correspondiente.
%session_id Cadena Devuelve el ID de la sesión en ejecución. Si se proporciona una cadena, se establecerá como ID de sesión de la próxima sesión en ejecución. Cuando se ejecuta un cuaderno de Jupyter en AWS Glue Studio, esta magia devuelve un valor de solo lectura que no se puede cambiar.
%session_id_prefix Cadena Defina una cadena que precederá a todos los ID de sesión con el formato [session_id_prefix]-[session_id] ([prefijo_id_sesión]-[id_sesión]). Si no se proporciona un ID de sesión, se generará un UUID aleatorio. Esta magia no se admite cuando se ejecuta un cuaderno de Jupyter en AWS Glue Studio.
%status Devuelve el estado de la sesión actual de AWS Glue, incluyendo su duración, configuración y rol o usuario ejecutante.
%stop_session Detiene la sesión actual.
%list_sessions Se enumeran todas las sesiones que se están ejecutando actualmente por nombre e ID.
%glue_version Cadena Versión de Glue que debe utilizar esta sesión. Actualmente, las únicas opciones válidas son 2.0 y 3.0. El valor predeterminado es 2.0.
%streaming Cadena Cambia el tipo de sesión a streaming de AWS Glue.
%etl Cadena Cambia el tipo de sesión a ETL de AWS Glue.

Comandos mágicos de configuración de AWS Glue

Nombre Tipo Descripción
%%configure Diccionario Especifica un diccionario en formato JSON que consta de todos los parámetros de configuración para una sesión. Cada parámetro se puede especificar aquí o mediante comandos mágicos individuales.
%iam_role Cadena Especifica un ARN de rol de IAM con el que ejecutar la sesión. Valor predeterminado de ~/.aws/configure
%number_of_workers int Número de procesos de empleados de un worker_type definido que se asignan cuando se ejecuta un trabajo. También se debe configurar worker_type. El valor predeterminado de number_of_workers es 5.
%worker_type Cadena Estándar, G.1X o G.2X. También se debe configurar number_of_workers. El valor predeterminado de worker_type es G.1X.
%security_config Cadena Define la configuración de seguridad que se utilizará con esta sesión.
%connections Enumeración Especifica una lista separada por comas de conexiones que se utilizarán en la sesión.
%additional_python_modules Enumeración Lista separada por comas de módulos de Python adicionales que se deben incluir en el clúster (pueden ser de PyPI o S3).
%extra_py_files Enumeración Lista separada por comas de archivos de Python adicionales de Simple Storage Service (Amazon S3).
%extra_jars Enumeración Lista separada por comas de archivos jar adicionales que se deben incluir en el clúster.

Comando mágico de acción

Nombre Tipo Descripción
%%sql Cadena Ejecuta código SQL. Todas las líneas después del comando mágico inicial %%sql se pasarán como parte del código SQL.

Denominación de sesiones

Las sesiones interactivas de AWS Glue son recursos de AWS y requieren un nombre. Los nombres deben ser exclusivos para cada sesión y los administradores de IAM pueden restringirlos. Para obtener más información, consulte Sesiones interactivas con IAM. El kernel de Jupyter se encarga de generar automáticamente nombres de sesión exclusivos. No obstante, se puede poner nombre manualmente a las sesiones de dos formas:

  1. Utilizando el archivo de configuración de la AWS Command Line Interface situado en ~.aws/config. Consulte Establecimiento de la configuración de AWS con la AWS Command Line Interface.

  2. Utilizando los comandos mágicos %session_id_prefix. Consulte Comandos mágicos compatibles con las sesiones interactivas de AWS Glue para Jupyter.

Un nombre de sesión se genera de la siguiente manera:

  • Cuando se proporcionan el prefijo y session_id: el nombre de la sesión será {prefijo}-{UUID}.

  • Cuando no se proporciona nada: el nombre de la sesión será {UUID}.

Ponerles prefijos a los nombres de las sesiones permite reconocerlas cuando aparecen en la AWS CLI o la consola.

Especificación de un rol de IAM para las sesiones interactivas

Debe especificar un rol de AWS Identity and Access Management (IAM) para utilizar con el código ETL de AWS Glue que ejecuta con sesiones interactivas.

El rol requiere los mismos permisos de IAM que los necesarios para ejecutar trabajos de AWS Glue. Consulte Crear un rol de IAM para AWS Glue para obtener más información sobre cómo crear un rol para trabajos y sesiones interactivas de AWS Glue.

Los roles de IAM se pueden especificar de dos formas:

Configuración de sesiones con perfiles con nombre

AWS Glue Interactive Sessions utiliza las mismas credenciales que AWS Command Line Interface o boto3. Interactive Sessions respeta y utiliza perfiles con nombre tales como la AWS CLI que se encuentra en ~/.aws/config (Linux y MacOS) o %USERPROFILE%\.aws\config (Windows). Para obtener más información, consulte Perfiles con nombre para la AWS Command Line Interface.

Las sesiones interactivas aprovechan los perfiles con nombre permitiendo que se especifiquen el rol de servicio y el prefijo de ID de sesión de AWS Glue en un perfil. Para configurar un rol de perfil, agregue una línea para la clave de iam_role o session_id_prefix al perfil con nombre tal y como se muestra a continuación.

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

Si tiene un método personalizado para generar credenciales, también puede configurar el perfil para que utilice el parámetro credential_process en el archivo ~/.aws/config. Por ejemplo:

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

Puede encontrar más información sobre cómo obtener credenciales a través del parámetro credential_process aquí: Obtención de credenciales con un proceso externo.

Si el perfil que está utilizando no tiene configurados una región o un iam_role, debe especificarlos mediante los comandos mágicos %region y %iam_role en la primera celda que ejecute.