

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.

# Ejemplos de comandos programáticos para Cuadernos de EMR
Ejemplos de comandos programáticos para Cuadernos de EMR

## Descripción general de


Puede ejecutar cuadernos EMR ejecutándolos APIs desde un script o desde la línea de comandos. Al iniciar, detener, enumerar y describir las ejecuciones de cuadernos EMR fuera de la AWS consola, puede controlar mediante programación un cuaderno EMR. Puede pasar diferentes valores de parámetros a un cuaderno con una celda de cuaderno parametrizada. Esto elimina la necesidad de crear una copia del cuaderno para cada nuevo conjunto de valores de parámetros. Para obtener más información, consulte [Acciones de la API de Amazon EMR](https://docs.aws.amazon.com/emr/latest/APIReference/API_Operations.html).

Puede programar o agrupar las ejecuciones de cuadernos EMR con Amazon CloudWatch Events y. AWS Lambda Para obtener más información, consulte [Uso AWS Lambda con Amazon CloudWatch Events](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudwatchevents.html).

**nota**  
Cuadernos de EMR está disponible como Espacios de trabajo de EMR Studio en la consola. El botón **Crear espacio de trabajo** de la consola le permite crear nuevos cuadernos. Para crear espacios de trabajo o acceder a ellos, los usuarios de Cuadernos de EMR necesitan permisos de rol de IAM adicionales. Para obtener más información, consulte [Cuadernos de Amazon EMR es Espacios de trabajo de Amazon EMR Studio en la consola](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-migration.html) y [Consola Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html).

## Permisos de rol para la ejecución programática
Permisos

Para utilizar la ejecución programática con Cuadernos de EMR, debe configurar los permisos de usuario con las siguientes políticas:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowExecutionActions",
      "Effect": "Allow",
      "Action": [
        "elasticmapreduce:StartNotebookExecution",
        "elasticmapreduce:DescribeNotebookExecution",
        "elasticmapreduce:ListNotebookExecutions"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "AllowPassingServiceRole",
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::123456789012:role/EMR_Notebooks_DefaultRole"
      ]
    }
  ]
}
```

------

Al ejecutar mediante programación Cuadernos de EMR en un clúster de Cuadernos de EMR, debe agregar los siguientes permisos adicionales:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowRetrievingManagedEndpointCredentials",
      "Effect": "Allow",
      "Action": [
        "emr-containers:GetManagedEndpointSessionCredentials"
      ],
      "Resource": [
        "arn:aws:emr-containers:*:123456789012:/virtualclusters/virtual-cluster-id/endpoints/managed-endpoint-id"
      ],
      "Condition": {
        "StringEquals": {
          "emr-containers:ExecutionRoleArn": [
            "arn:aws:iam::123456789012:role/emr-on-eks-execution-role"
          ]
        }
      }
    },
    {
      "Sid": "AllowDescribingManagedEndpoint",
      "Effect": "Allow",
      "Action": [
        "emr-containers:DescribeManagedEndpoint"
      ],
      "Resource": [
        "arn:aws:emr-containers:*:123456789012:/virtualclusters/virtual-cluster-id/endpoints/managed-endpoint-id"
      ]
    }
  ]
}
```

------

## Limitaciones de la ejecución programática
Limitaciones
+ Se admite un máximo de 100 ejecuciones simultáneas Región de AWS por cuenta.
+ Una ejecución termina si dura más de 30 días.
+ Las aplicaciones interactivas de Amazon EMR sin servidor no admiten la ejecución programática de cuadernos.

## Ejemplos de ejecución programática de cuadernos de EMR
Ejemplos

En las siguientes secciones se proporcionan varios ejemplos de ejecución programática de cuadernos EMR con AWS CLI el SDK de Boto3 (Python) y Ruby:
+ [Ejemplos de comandos de la CLI de Cuadernos en EMR Studio](emr-managed-notebooks-headless-cli.md)
+ [Ejemplos de Python para un cuaderno de EMR](emr-managed-notebooks-headless-python.md)
+ [Ejemplos de Ruby para un cuaderno de EMR](emr-managed-notebooks-headless-ruby.md)

También puede ejecutar cuadernos parametrizados como parte de los flujos de trabajo programados con una herramienta de orquestación como Apache Airflow o Amazon Managed Workflows para Apache Airflow (MWAA). Para obtener más información, consulte [Orquestación de trabajos de análisis en Cuadernos de EMR mediante MWAA](https://aws.amazon.com/blogs/big-data/orchestrating-analytics-jobs-on-amazon-emr-notebooks-using-amazon-mwaa/) en el *blog de macrodatos de AWS *.

# Ejemplos de comandos de la CLI de Cuadernos en EMR Studio
Ejemplos de comandos de la CLI de Cuadernos

En este tema se muestran ejemplos de comandos CLI para un cuaderno de EMR. El ejemplo utiliza el cuaderno de demostración de la consola de Cuadernos de EMR. Para localizar el cuaderno, utilice la ruta del archivo relativa al directorio principal. En este ejemplo, hay dos archivos de cuadernos que puede ejecutar: `demo_pyspark.ipynb` y `my_folder/python3.ipynb`. 

**nota**  
Cuadernos de EMR está disponible como Espacios de trabajo de EMR Studio en la nueva consola. El botón **Crear espacio de trabajo** de la consola le permite crear nuevos cuadernos. Para crear espacios de trabajo o acceder a ellos, los usuarios de Cuadernos de EMR necesitan permisos de rol de IAM adicionales. Para obtener más información, consulte [Cuadernos de Amazon EMR es Espacios de trabajo de Amazon EMR Studio en la consola](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-migration.html) y [Consola Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html).

La ruta relativa del archivo `demo_pyspark.ipynb` es `demo_pyspark.ipynb`, como se muestra a continuación.

![\[Jupyter notebook interface showing a file explorer and code editor with PySpark content.\]](http://docs.aws.amazon.com/es_es/emr/latest/ManagementGuide/images/notebook_exe_folder_structure_1.png)


La ruta relativa de `python3.ipynb` es `my_folder/python3.ipynb`, como se muestra a continuación.

![\[File explorer showing python3.ipynb in my_folder, and Jupyter notebook interface with code.\]](http://docs.aws.amazon.com/es_es/emr/latest/ManagementGuide/images/notebook_exe_folder_structure_2.png)


Para obtener información sobre las acciones `NotebookExecution` de la API de Amazon EMR, consulte [Acciones de la API de Amazon EMR](https://docs.aws.amazon.com/emr/latest/APIReference/API_Operations.html).

## Ejecutar un cuaderno


Puede utilizar el AWS CLI para ejecutar la `start-notebook-execution` acción en su bloc de notas, tal y como se muestra en los siguientes ejemplos. 

**Example – Ejecución de un cuaderno de EMR en un espacio de trabajo de EMR Studio con un clúster de Amazon EMR (que se ejecuta en Amazon EC2)**  

```
aws emr --region us-east-1 \
start-notebook-execution \
--editor-id e-ABCDEFG123456 \
--notebook-params '{"input_param":"my-value", "good_superhero":["superman", "batman"]}' \
--relative-path test.ipynb \
--notebook-execution-name my-execution \
--execution-engine '{"Id" : "j-1234ABCD123"}' \
--service-role EMR_Notebooks_DefaultRole 
 
{
    "NotebookExecutionId": "ex-ABCDEFGHIJ1234ABCD"
}
```

**Example – Ejecución de un cuaderno de EMR en un espacio de trabajo de EMR Studio con un clúster de Cuadernos de EMR**  

```
aws emr start-notebook-execution \
    --region us-east-1 \
    --service-role EMR_Notebooks_DefaultRole \
    --environment-variables '{"KERNEL_EXTRA_SPARK_OPTS": "--conf spark.executor.instances=1", "KERNEL_LAUNCH_TIMEOUT": "350"}' \
    --output-notebook-format HTML \
    --execution-engine Id=arn:aws:emr-containers:us-west-2:account-id:/virtualclusters/ABCDEFG/endpoints/ABCDEF,Type=EMR_ON_EKS,ExecutionRoleArn=arn:aws:iam::account-id:role/execution-role \
    --editor-id e-ABCDEFG \
    --relative-path EMRonEKS-spark_python.ipynb
```

**Example – Ejecución de un cuaderno de EMR al especificar su ubicación en Amazon S3**  

```
aws emr start-notebook-execution \
    --region us-east-1 \
    --notebook-execution-name my-execution-on-emr-on-eks-cluster \
    --service-role EMR_Notebooks_DefaultRole \
    --environment-variables '{"KERNEL_EXTRA_SPARK_OPTS": "--conf spark.executor.instances=1", "KERNEL_LAUNCH_TIMEOUT": "350"}' \
    --output-notebook-format HTML \
    --execution-engine Id=arn:aws:emr-containers:us-west-2:account-id:/virtualclusters/ABCDEF/endpoints/ABCDEF,Type=EMR_ON_EKS,ExecutionRoleArn=arn:aws:iam::account-id:role/execution-role \
    --notebook-s3-location '{"Bucket": "amzn-s3-demo-bucket","Key": "s3-prefix-to-notebook-location/EMRonEKS-spark_python.ipynb"}' \
    --output-notebook-s3-location '{"Bucket": "amzn-s3-demo-bucket","Key": "s3-prefix-for-storing-output-notebook"}'
```

## Salida de bloc de notas


 Este es el resultado de un ejemplo de cuaderno. La celda 3 muestra los valores de los parámetros recién inyectados.

![\[Jupyter notebook cells showing Python code and output for parameter injection and manipulation.\]](http://docs.aws.amazon.com/es_es/emr/latest/ManagementGuide/images/HelloWorld_notebook.png)


## Describir un cuaderno


Puede utilizar la acción `describe-notebook-execution` para acceder a la información sobre la ejecución de un cuaderno específico.

```
aws emr --region us-east-1 \
describe-notebook-execution --notebook-execution-id ex-IZWZZVR9DKQ9WQ7VZWXJZR29UGHTE
 
{
    "NotebookExecution": {
        "NotebookExecutionId": "ex-IZWZZVR9DKQ9WQ7VZWXJZR29UGHTE",
        "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N",
        "ExecutionEngine": {
            "Id": "j-2QMOV6JAX1TS2",
            "Type": "EMR",
            "MasterInstanceSecurityGroupId": "sg-05ce12e58cd4f715e"
        },
        "NotebookExecutionName": "my-execution",
        "NotebookParams": "{\"input_param\":\"my-value\", \"good_superhero\":[\"superman\", \"batman\"]}",
        "Status": "FINISHED",
        "StartTime": 1593490857.009,
        "Arn": "arn:aws:elasticmapreduce:us-east-1:123456789012:notebook-execution/ex-IZWZZVR9DKQ9WQ7VZWXJZR29UGHTE",
        "LastStateChangeReason": "Execution is finished for cluster j-2QMOV6JAX1TS2.",
        "NotebookInstanceSecurityGroupId": "sg-0683b0a39966d4a6a",
        "Tags": []
    }
}
```

## Detener un cuaderno


Si su cuaderno está ejecutando una ejecución que desea detener, puede hacerlo con el comando `stop-notebook-execution`.

```
# stop a running execution
aws emr --region us-east-1 \
stop-notebook-execution --notebook-execution-id ex-IZWZX78UVPAATC8LHJR129B1RBN4T
 
 
# describe it
aws emr --region us-east-1 \
describe-notebook-execution --notebook-execution-id ex-IZWZX78UVPAATC8LHJR129B1RBN4T
 
{
    "NotebookExecution": {
        "NotebookExecutionId": "ex-IZWZX78UVPAATC8LHJR129B1RBN4T",
        "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N",
        "ExecutionEngine": {
            "Id": "j-2QMOV6JAX1TS2",
            "Type": "EMR"
        },
        "NotebookExecutionName": "my-execution",
        "NotebookParams": "{\"input_param\":\"my-value\", \"good_superhero\":[\"superman\", \"batman\"]}",
        "Status": "STOPPED",
        "StartTime": 1593490876.241,
        "Arn": "arn:aws:elasticmapreduce:us-east-1:123456789012:editor-execution/ex-IZWZX78UVPAATC8LHJR129B1RBN4T",
        "LastStateChangeReason": "Execution is stopped for cluster j-2QMOV6JAX1TS2. Internal error",
        "Tags": []
    }
}
```

## Enumerar las ejecuciones de un cuaderno por hora de inicio
Enumerar las ejecuciones por hora de inicio

Puede pasar un parámetro `--from` a `list-notebook-executions` para enumerar las ejecuciones de su cuaderno por hora de inicio.

```
# filter by start time 
aws emr --region us-east-1 \ 
list-notebook-executions --from 1593400000.000
 
{
    "NotebookExecutions": [
        {
            "NotebookExecutionId": "ex-IZWZX78UVPAATC8LHJR129B1RBN4T",
            "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N",
            "NotebookExecutionName": "my-execution",
            "Status": "STOPPED",
            "StartTime": 1593490876.241
        },
        {
            "NotebookExecutionId": "ex-IZWZZVR9DKQ9WQ7VZWXJZR29UGHTE",
            "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N",
            "NotebookExecutionName": "my-execution",
            "Status": "RUNNING",
            "StartTime": 1593490857.009
        },
        {
            "NotebookExecutionId": "ex-IZWZYRS0M14L5V95WZ9OQ399SKMNW",
            "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N",
            "NotebookExecutionName": "my-execution",
            "Status": "STOPPED",
            "StartTime": 1593490292.995
        },
        {
            "NotebookExecutionId": "ex-IZX009ZK83IVY5E33VH8MDMELVK8K",
            "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N",
            "NotebookExecutionName": "my-execution",
            "Status": "FINISHED",
            "StartTime": 1593489834.765
        },
        {
            "NotebookExecutionId": "ex-IZWZXOZF88JWDF9J09GJ91R57VI0N",
            "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N",
            "NotebookExecutionName": "my-execution",
            "Status": "FAILED",
            "StartTime": 1593488934.688
        }
    ]
}
```

## Enumerar las ejecuciones de un cuaderno por hora de inicio y estado
Enumerar las ejecuciones por hora de inicio y estado

El comando `list-notebook-executions` también puede utilizar un parámetro `--status` para filtrar los resultados.

```
# filter by start time and status 
aws emr --region us-east-1 \                 
list-notebook-executions --from 1593400000.000 --status FINISHED
{
    "NotebookExecutions": [
        {
            "NotebookExecutionId": "ex-IZWZZVR9DKQ9WQ7VZWXJZR29UGHTE",
            "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N",
            "NotebookExecutionName": "my-execution",
            "Status": "FINISHED",
            "StartTime": 1593490857.009
        },
        {
            "NotebookExecutionId": "ex-IZX009ZK83IVY5E33VH8MDMELVK8K",
            "EditorId": "e-BKTM2DIHXBEDRU44ANWRKIU8N",
            "NotebookExecutionName": "my-execution",
            "Status": "FINISHED",
            "StartTime": 1593489834.765
        }
    ]
}
```

# Ejemplos de Python para un cuaderno de EMR
Ejemplo de script del SDK de Boto3

Este tema contiene un ejemplo de archivo de comandos. El ejemplo de código es un archivo de SDK para Python (Boto3) denominado `demo.py`. Muestra la ejecución del cuaderno APIs.

**nota**  
Cuadernos de EMR está disponible como Espacios de trabajo de EMR Studio en la consola. El botón **Crear espacio de trabajo** de la consola le permite crear nuevos cuadernos. Para crear espacios de trabajo o acceder a ellos, los usuarios de Cuadernos de EMR necesitan permisos de rol de IAM adicionales. Para obtener más información, consulte [Cuadernos de Amazon EMR es Espacios de trabajo de Amazon EMR Studio en la consola](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-migration.html) y [Consola Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html).

Para obtener información sobre las acciones `NotebookExecution` de la API de Amazon EMR, consulte [Acciones de la API de Amazon EMR.](https://docs.aws.amazon.com/emr/latest/APIReference/API_Operations.html)

```
import boto3,time

emr = boto3.client(
    'emr',
    region_name='us-west-1'
)     
     
start_resp = emr.start_notebook_execution(
    EditorId='e-40AC8ZO6EGGCPJ4DLO48KGGGI',
    RelativePath='boto3_demo.ipynb',
    ExecutionEngine={'Id':'j-1HYZS6JQKV11Q'},
    ServiceRole='EMR_Notebooks_DefaultRole'
)

execution_id = start_resp["NotebookExecutionId"]
print(execution_id)
print("\n")
     
describe_response = emr.describe_notebook_execution(NotebookExecutionId=execution_id)
     
print(describe_response)
print("\n")
     
list_response = emr.list_notebook_executions()
print("Existing notebook executions:\n")
for execution in list_response['NotebookExecutions']:
    print(execution)
    print("\n")  
     
print("Sleeping for 5 sec...")
time.sleep(5)
     
print("Stop execution " + execution_id)
emr.stop_notebook_execution(NotebookExecutionId=execution_id)
describe_response = emr.describe_notebook_execution(NotebookExecutionId=execution_id)
print(describe_response)
print("\n")
```

Este es el resultado de ejecutar `demo.py`.

```
ex-IZX56YJDW1D29Q1PHR32WABU2SAPK
     
{'NotebookExecution': {'NotebookExecutionId': 'ex-IZX56YJDW1D29Q1PHR32WABU2SAPK', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'ExecutionEngine': {'Id': 'j-1HYZS6JQKV11Q', 'Type': 'EMR'}, 'NotebookExecutionName': '', 'Status': 'STARTING', 'StartTime': datetime.datetime(2020, 8, 19, 0, 49, 19, 418000, tzinfo=tzlocal()), 'Arn': 'arn:aws:elasticmapreduce:us-west-1:123456789012:notebook-execution/ex-IZX56YJDW1D29Q1PHR32WABU2SAPK', 'LastStateChangeReason': 'Execution is starting for cluster j-1HYZS6JQKV11Q.', 'Tags': []}, 'ResponseMetadata': {'RequestId': '70f12c5f-1dda-45b7-adf6-964987d373b7', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '70f12c5f-1dda-45b7-adf6-964987d373b7', 'content-type': 'application/x-amz-json-1.1', 'content-length': '448', 'date': 'Wed, 19 Aug 2020 00:49:22 GMT'}, 'RetryAttempts': 0}}
     
Existing notebook executions:
     
{'NotebookExecutionId': 'ex-IZX56YJDW1D29Q1PHR32WABU2SAPK', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'NotebookExecutionName': '', 'Status': 'STARTING', 'StartTime': datetime.datetime(2020, 8, 19, 0, 49, 19, 418000, tzinfo=tzlocal())}
     
     
{'NotebookExecutionId': 'ex-IZX5ABS5PR1E5AHMFYEMX3JJIORRB', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'NotebookExecutionName': '', 'Status': 'RUNNING', 'StartTime': datetime.datetime(2020, 8, 19, 0, 48, 36, 373000, tzinfo=tzlocal())}
     
     
{'NotebookExecutionId': 'ex-IZX5GLVXIU1HNI8BWVW057F6MF4VE', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'NotebookExecutionName': '', 'Status': 'FINISHED', 'StartTime': datetime.datetime(2020, 8, 19, 0, 45, 14, 646000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 8, 19, 0, 46, 26, 543000, tzinfo=tzlocal())}
     
     
{'NotebookExecutionId': 'ex-IZX5CV8YDUO8JAIWMXN2VH32RUIT1', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'NotebookExecutionName': '', 'Status': 'FINISHED', 'StartTime': datetime.datetime(2020, 8, 19, 0, 43, 5, 807000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 8, 19, 0, 44, 31, 632000, tzinfo=tzlocal())}
     
     
{'NotebookExecutionId': 'ex-IZX5AS0PPW55CEDEURZ9NSOWSUJZ6', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'NotebookExecutionName': '', 'Status': 'FINISHED', 'StartTime': datetime.datetime(2020, 8, 19, 0, 42, 29, 265000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 8, 19, 0, 43, 48, 320000, tzinfo=tzlocal())}
     
     
{'NotebookExecutionId': 'ex-IZX57YF5Q53BKWLR4I5QZ14HJ7DRS', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'NotebookExecutionName': '', 'Status': 'FINISHED', 'StartTime': datetime.datetime(2020, 8, 19, 0, 38, 37, 81000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 8, 19, 0, 40, 39, 646000, tzinfo=tzlocal())}
     
Sleeping for 5 sec...
Stop execution ex-IZX56YJDW1D29Q1PHR32WABU2SAPK
{'NotebookExecution': {'NotebookExecutionId': 'ex-IZX56YJDW1D29Q1PHR32WABU2SAPK', 'EditorId': 'e-40AC8ZO6EGGCPJ4DLO48KGGGI', 'ExecutionEngine': {'Id': 'j-1HYZS6JQKV11Q', 'Type': 'EMR'}, 'NotebookExecutionName': '', 'Status': 'STOPPING', 'StartTime': datetime.datetime(2020, 8, 19, 0, 49, 19, 418000, tzinfo=tzlocal()), 'Arn': 'arn:aws:elasticmapreduce:us-west-1:123456789012:notebook-execution/ex-IZX56YJDW1D29Q1PHR32WABU2SAPK', 'LastStateChangeReason': 'Execution is being stopped for cluster j-1HYZS6JQKV11Q.', 'Tags': []}, 'ResponseMetadata': {'RequestId': '2a77ef73-c1c6-467c-a1d1-7204ab2f6a53', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '2a77ef73-c1c6-467c-a1d1-7204ab2f6a53', 'content-type': 'application/x-amz-json-1.1', 'content-length': '453', 'date': 'Wed, 19 Aug 2020 00:49:30 GMT'}, 'RetryAttempts': 0}}
```

# Ejemplos de Ruby para un cuaderno de EMR
Script de ejemplo de Ruby

Este tema contiene un ejemplo de Ruby que demuestra la funcionalidad de un cuaderno.

**nota**  
Cuadernos de EMR está disponible como Espacios de trabajo de EMR Studio en la nueva consola. El botón **Crear espacio de trabajo** de la consola le permite crear nuevos cuadernos. Para crear espacios de trabajo o acceder a ellos, los usuarios de Cuadernos de EMR necesitan permisos de rol de IAM adicionales. Para obtener más información, consulte [Cuadernos de Amazon EMR es Espacios de trabajo de Amazon EMR Studio en la consola](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-migration.html) y [Consola Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html).

Los siguientes son ejemplos de código de Ruby que muestran el uso de la API de ejecución de cuadernos.

```
# prepare an Amazon EMR client

emr = Aws::EMR::Client.new(
  region: 'us-east-1',
  access_key_id: 'AKIA...JKPKA',
  secret_access_key: 'rLMeu...vU0OLrAC1',
)
```

## Iniciar la ejecución del cuaderno y obtener el identificador de ejecución


En este ejemplo, el editor de Amazon S3 y el cuaderno de EMR son `s3://amzn-s3-demo-bucket/notebooks/e-EA8VGAA429FEQTC8HC9ZHWISK/test.ipynb`.

Para obtener información sobre las acciones `NotebookExecution` de la API de Amazon EMR, consulte [Acciones de la API de Amazon EMR.](https://docs.aws.amazon.com/emr/latest/APIReference/API_Operations.html)

```
start_response = emr.start_notebook_execution({
    editor_id: "e-EA8VGAA429FEQTC8HC9ZHWISK",
    relative_path: "test.ipynb",
    
    execution_engine: {id: "j-3U82I95AMALGE"},
    
    service_role: "EMR_Notebooks_DefaultRole",
})


notebook_execution_id = start_resp.notebook_execution_id
```

## Descripción de la ejecución del cuaderno e impresión de los detalles


```
describe_resp = emr.describe_notebook_execution({
    notebook_execution_id: notebook_execution_id
})
puts describe_resp.notebook_execution
```

El resultado de los comandos anteriores será el siguiente.

```
{
:notebook_execution_id=>"ex-IZX3VTVZWVWPP27KUB90BZ7V9IEDG", 
:editor_id=>"e-EA8VGAA429FEQTC8HC9ZHWISK",
:execution_engine=>{:id=>"j-3U82I95AMALGE", :type=>"EMR", :master_instance_security_group_id=>nil}, 
:notebook_execution_name=>"", 
:notebook_params=>nil, 
:status=>"STARTING", 
:start_time=>2020-07-23 15:07:07 -0700, 
:end_time=>nil, 
:arn=>"arn:aws:elasticmapreduce:us-east-1:123456789012:notebook-execution/ex-IZX3VTVZWVWPP27KUB90BZ7V9IEDG", 
:output_notebook_uri=>nil, 
:last_state_change_reason=>"Execution is starting for cluster j-3U82I95AMALGE.", :notebook_instance_security_group_id=>nil, 
:tags=>[]
}
```

## Filtros para cuadernos


```
"EditorId": "e-XXXX",           [Optional]
"From" : "1593400000.000",    [Optional]
"To" :
```

### Detener la ejecución del cuaderno


```
stop_resp = emr.stop_notebook_execution({
    notebook_execution_id: notebook_execution_id
})
```