

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.

# Creación y administración de aplicaciones Amazon EMR Serverless con Step Functions
<a name="connect-emr-serverless"></a>

Aprenda a crear, iniciar, detener y eliminar aplicaciones en EMR sin servidor mediante Step Functions. En esta página se enumeran los estados compatibles APIs y se proporcionan ejemplos de `Task` estados para realizar casos de uso comunes.

Para obtener más información sobre la integración con AWS los servicios de Step Functions, consulte [Integración de los servicios de ](integrate-services.md) y[Cómo pasar parámetros a una API de servicio en Step Functions](connect-parameters.md).

**Características principales de la integración optimizada de EMR Serverless**  
 La integración EMR Serverless de servicios optimizada tiene un conjunto personalizado [APIs](#connect-emr-serverless-custom-apis)que envuelve lo subyacente EMR Serverless APIs. Debido a esta personalización, la EMR Serverless integración optimizada difiere considerablemente de la integración del servicio del AWS SDK. 
Además, la integración de EMR Serverless optimizada admite el patrón de integración [Ejecutar un trabajo (.sync)](connect-to-resource.md#connect-sync).
**No** se admite el patrón de integración [Cómo esperar una devolución de llamada con el token de tarea](connect-to-resource.md#connect-wait-token).

## EMR Serverlessintegración de servicios APIs
<a name="connect-emr-serverless-custom-apis"></a>

Para realizar AWS Step Functions la integraciónEMR Serverless, puede utilizar las seis integraciones EMR Serverless de servicios siguientes APIs. Estas integraciones de servicios APIs son similares a las correspondientes EMR Serverless APIs, con algunas diferencias en los campos que se transfieren y en las respuestas que se devuelven.

En la siguiente tabla se describen las diferencias entre cada API de integración de servicios de EMR Serverless y sus API de EMR Serverless correspondientes.


| API de integración de servicios de EMR Serverless | API de EMR Serverless correspondiente | Diferencias | 
| --- | --- | --- | 
|  *createApplication* Crea una aplicación. EMR Serverless está vinculado a un tipo de rol de IAM único conocido como rol vinculado a servicio. Para que `createApplication` y `createApplication.sync` funcionen, tiene que tener configurados los permisos necesarios para crear el rol vinculado a servicios `AWSServiceRoleForAmazonEMRServerless`. Para obtener más información al respecto, incluida una instrucción que puede añadir a la política de permisos de IAM, consulte [Uso de roles vinculados a servicios para EMR Serverless](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/using-service-linked-roles.html).  |  [CreateApplication](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_CreateApplication.html)  | Ninguno | 
|  *createApplication.sync* Crea una aplicación.  |  [CreateApplication](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_CreateApplication.html)  |  No hay diferencias entre las solicitudes y las respuestas de la API de EMR Serverless y la API de integración de servicios de EMR Serverless. Sin embargo, *createApplication.sync* espera a que la aplicación alcance el estado `CREATED`.  | 
|  *startApplication* Inicia una aplicación especificada e inicializa la capacidad inicial de la aplicación si está configurada.  |  [StartApplication](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartApplication.html)  |  La respuesta de la API de EMR Serverless no contiene ningún dato, pero la respuesta de la API de integración de servicio EMR Serverless incluye los siguientes datos. <pre>{<br />  "ApplicationId": "string"<br />}</pre>  | 
|  *startApplication.sync* Inicia una aplicación específica e inicializa la capacidad inicial si está configurada.  |  [StartApplication](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartApplication.html)  |  La respuesta de la API de EMR Serverless no contiene ningún dato, pero la respuesta de la API de integración de servicio EMR Serverless incluye los siguientes datos. <pre>{<br />  "ApplicationId": "string"<br />}</pre> Además, *startApplication.sync* espera a que la aplicación alcance el estado `STARTED`.  | 
|  *stopApplication* Detiene una aplicación especificada y libera la capacidad inicial si está configurada. Todos los trabajos programados y en ejecución deben completarse o cancelarse antes de detener una aplicación.  |  [StopApplication](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StopApplication.html)  |  La respuesta de la API de EMR Serverless no contiene ningún dato, pero la respuesta de la API de integración de servicio EMR Serverless incluye los siguientes datos. <pre>{<br />  "ApplicationId": "string"<br />}</pre>  | 
|  *stopApplication.sync* Detiene una aplicación especificada y libera la capacidad inicial si está configurada. Todos los trabajos programados y en ejecución deben completarse o cancelarse antes de detener una aplicación.  |  [StopApplication](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StopApplication.html)  |  La respuesta de la API de EMR Serverless no contiene ningún dato, pero la respuesta de la API de integración de servicio EMR Serverless incluye los siguientes datos. <pre>{<br />  "ApplicationId": "string"<br />}</pre> Además, *stopApplication.sync* espera a que la aplicación alcance el estado `STOPPED`.  | 
|  *deleteApplication* Elimina una aplicación. Para poder eliminarla, una aplicación debe estar en el estado `STOPPED` o `CREATED`.  |  [DeleteApplication](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_DeleteApplication.html)  |  La respuesta de la API de EMR Serverless no contiene ningún dato, pero la respuesta de la API de integración de servicio EMR Serverless incluye los siguientes datos. <pre>{<br />  "ApplicationId": "string"<br />}</pre>  | 
|  *deleteApplication.sync* Elimina una aplicación. Para poder eliminarla, una aplicación debe estar en el estado `STOPPED` o `CREATED`.  |  [DeleteApplication](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_DeleteApplication.html)  |  La respuesta de la API de EMR Serverless no contiene ningún dato, pero la respuesta de la API de integración de servicio EMR Serverless incluye los siguientes datos. <pre>{<br />  "ApplicationId": "string"<br />}</pre> Además, *stopApplication.sync* espera a que la aplicación alcance el estado `TERMINATED`.  | 
|  *startJobRun* Inicia una ejecución de trabajo.  |  [StartJobRun](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html)  | Ninguno | 
|  *startJobRun.sync* Inicia una ejecución de trabajo.  |  [StartJobRun](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html)  |  No hay diferencias entre las solicitudes y las respuestas de la API de EMR Serverless y la API de integración de servicios de EMR Serverless. Sin embargo, *startJobRun.sync* espera a que la aplicación alcance el estado. `SUCCESS`  | 
|  *cancelJobRun* Cancela una ejecución de trabajo.  |  [CancelJobRun](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_CancelJobRun.html)  | Ninguno | 
|  *cancelJobRun.sync* Cancela una ejecución de trabajo.  |  [CancelJobRun](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_CancelJobRun.html)  |  No hay diferencias entre las solicitudes y las respuestas de la API de EMR Serverless y la API de integración de servicios de EMR Serverless. Sin embargo, *cancelJobRun.sync* espera a que la aplicación alcance el estado. `CANCELLED`  | 

## Casos de uso de integración de EMR sin servidor
<a name="connect-emr-serverless-use-cases"></a>

Para la integración optimizada del servicio de EMR Serverless, se recomienda crear una sola aplicación y, a continuación, utilizarla para ejecutar varios trabajos. Por ejemplo, en una máquina de un solo estado, puede incluir varias [startJobRun](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_StartJobRun.html)solicitudes, todas las cuales utilizan la misma aplicación. Los siguientes ejemplos de [Estado de un flujo de trabajo de tarea](state-task.md) estados muestran casos de uso EMR Serverless APIs con los que realizar la integraciónStep Functions. Para obtener información sobre otros casos de uso de EMR Serverless, consulte [Qué es Amazon EMR Serverless](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless.html).

**sugerencia**  
Para implementar un ejemplo de una máquina de estado que se integre con EMR Serverless para ejecutar varios trabajos, consulte [Ejecutar un trabajo de EMR Serverless](sample-emr-serverless-job.md).
+ [Crear una aplicación](#connect-emr-serverless-task-state-createapp)
+ [Iniciar una aplicación](#connect-emr-serverless-task-state-startapp)
+ [Detener una aplicación](#connect-emr-serverless-task-state-stopapp)
+ [Eliminación de una aplicación de](#connect-emr-serverless-task-state-deleteapp)
+ [Iniciar un trabajo en una aplicación](#connect-emr-serverless-task-state-startjobrun)
+ [Cancelar un trabajo en una aplicación](#connect-emr-serverless-task-state-canceljobrun)

Para obtener información sobre cómo configurar IAM los permisos cuando se utilizan Step Functions con otros AWS servicios, consulte[Generación de políticas de IAM para servicios integrados por Steps Functions](service-integration-iam-templates.md).

En los ejemplos que se muestran en los siguientes casos de uso, sustituya el *italicized* texto por la información específica del recurso. Por ejemplo, *yourApplicationId* sustitúyalo por el ID de tu EMR Serverless aplicación, como. `00yv7iv71inak893`

### Crear una aplicación
<a name="connect-emr-serverless-task-state-createapp"></a>

En el siguiente ejemplo de estado Task se crea una aplicación mediante la API de integración del servicio *CreateApplication.sync*.

```
"Create_Application": {
    "Type": "Task",
    "Resource": "arn:aws:states:::emr-serverless:createApplication.sync",
    "Arguments": {
        "Name": "MyApplication",
        "ReleaseLabel": "emr-6.9.0",
        "Type": "SPARK"
    },
    "End": true
}
```

### Iniciar una aplicación
<a name="connect-emr-serverless-task-state-startapp"></a>

En el siguiente ejemplo de estado Task se inicia una aplicación mediante la API de integración del servicio *StartApplication.sync*.

```
"Start_Application": {
    "Type": "Task",
    "Resource": "arn:aws:states:::emr-serverless:startApplication.sync",
    "Arguments": {
        "ApplicationId": "yourApplicationId"
    },
    "End": true
}
```

### Detener una aplicación
<a name="connect-emr-serverless-task-state-stopapp"></a>

En el siguiente ejemplo de estado Task se detiene una aplicación mediante la API de integración del servicio *StopApplication.sync*.

```
"Stop_Application": {
    "Type": "Task",
    "Resource": "arn:aws:states:::emr-serverless:stopApplication.sync",
    "Arguments": {
        "ApplicationId": "yourApplicationId"
    },
    "End": true
}
```

### Eliminación de una aplicación de
<a name="connect-emr-serverless-task-state-deleteapp"></a>

En el siguiente ejemplo de estado Task se elimina una aplicación mediante la API de integración del servicio *DeleteApplication.sync*.

```
"Delete_Application": {
    "Type": "Task",
    "Resource": "arn:aws:states:::emr-serverless:deleteApplication.sync",
    "Arguments": {
        "ApplicationId": "yourApplicationId"
    },
    "End": true
}
```

### Iniciar un trabajo en una aplicación
<a name="connect-emr-serverless-task-state-startjobrun"></a>

El siguiente ejemplo de estado de tarea inicia un trabajo en una aplicación mediante la API de integración de servicios *startJobRun.sync.*

```
"Start_Job": {
    "Type": "Task",
    "Resource": "arn:aws:states:::emr-serverless:startJobRun.sync",
    "Arguments": {
        "ApplicationId": "yourApplicationId",
        "ExecutionRoleArn": "arn:aws:iam::account-id:role/myEMRServerless-execution-role",
        "JobDriver": {
            "SparkSubmit": {
                "EntryPoint": "s3://<amzn-s3-demo-bucket>/sample.py",
                "EntryPointArguments": ["1"],
                "SparkSubmitParameters": "--conf spark.executor.cores=4 --conf spark.executor.memory=4g --conf spark.driver.cores=2 --conf spark.driver.memory=4g --conf spark.executor.instances=1"
            }
        }
    },
    "End": true
}
```

### Cancelar un trabajo en una aplicación
<a name="connect-emr-serverless-task-state-canceljobrun"></a>

En el siguiente ejemplo de estado de tarea, se cancela un trabajo en una aplicación mediante la API de integración de servicios *cancelJobRun.sync.*

```
"Cancel_Job": {
    "Type": "Task",
    "Resource": "arn:aws:states:::emr-serverless:cancelJobRun.sync",
    "Arguments": {
        "ApplicationId": "{% $states.input.ApplicationId %}",
        "JobRunId": "{% $states.input.JobRunId %}"
    },
    "End": true
}
```

## Políticas de IAM para las llamadas a Amazon EMR Serverless
<a name="emr-serverless-iam"></a>

Al crear una máquina de estado mediante la consola, Step Functions crea automáticamente un rol de ejecución para la máquina de estado con los privilegios mínimos necesarios. Estas IAM funciones generadas automáticamente son válidas para la máquina Región de AWS en la que se crea la máquina de estados.

Las siguientes plantillas de ejemplo muestran cómo se AWS Step Functions generan las políticas de IAM en función de los recursos de la definición de su máquina de estados. Para obtener más información, consulte [Generación de políticas de IAM para servicios integrados por Steps Functions](service-integration-iam-templates.md) y [Descubrimiento de los patrones de integración de servicios en Step Functions](connect-to-resource.md).

Le recomendamos que, al crear políticas de IAM, no incluya caracteres comodín en las políticas. Como práctica recomendada de seguridad, debe reducir el alcance de las políticas en la medida de lo posible. Debe usar políticas dinámicas solo cuando no se conozcan ciertos parámetros de entrada durante el tiempo de ejecución.

Además, los usuarios administradores deben tener cuidado al conceder roles de ejecución a los usuarios que no sean administradores para ejecutar las máquinas de estado. Le recomendamos que incluya políticas de PassRole en los roles de ejecución si va a crear políticas por su cuenta. También le recomendamos que añada las claves de contexto `aws:SourceARN` y `aws:SourceAccount` en los roles de ejecución.

### Ejemplos de políticas de IAM para la integración sin servidor de EMR con Step Functions
<a name="emr-serverless-iam-policy-eg"></a>
+ [Ejemplo de política de IAM para CreateApplication](#emr-serverless-policy-createapp)
+ [Ejemplo de política de IAM para StartApplication](#emr-serverless-policy-startapp)
+ [Ejemplo de política de IAM para StopApplication](#emr-serverless-policy-stopapp)
+ [Ejemplo de política de IAM para DeleteApplication](#emr-serverless-policy-deleteapp)
+ [Ejemplo de política de IAM para StartJobRun](#emr-serverless-policy-startjobrun)
+ [Ejemplo de política de IAM para CancelJobRun](#emr-serverless-policy-canceljobrun)

#### Ejemplo de política de IAM para CreateApplication
<a name="emr-serverless-policy-createapp"></a>

El siguiente es un ejemplo de política de IAM para una máquina de estados con un CreateApplication [Estado de un flujo de trabajo de tarea](state-task.md) estado.

**nota**  
Debe especificar los CreateServiceLinkedRole permisos en sus políticas de IAM durante la creación de la primera aplicación en su cuenta. A partir de entonces, ya no necesitará añadir este permiso. Para obtener más información al respecto CreateServiceLinkedRole, consulte la https://docs.aws.amazon.com/IAM/ última [CreateServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html)APIReferenceversión de//.

Los recursos estáticos y dinámicos de las siguientes políticas son los mismos.

------
#### [ Run a Job (.sync) ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "emr-serverless:CreateApplication"
            ],
            "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "emr-serverless:GetApplication",
                "emr-serverless:DeleteApplication"
            ],
            "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "events:PutTargets",
                "events:PutRule",
                "events:DescribeRule"
            ],
            "Resource": [
                "arn:aws:events:us-east-1:123456789012:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::123456789012:role/aws-service-role/ops.emr-serverless.amazonaws.com/AWSServiceRoleForAmazonEMRServerless*",
            "Condition": {
                "StringLike": {
                    "iam:AWSServiceName": "ops.emr-serverless.amazonaws.com"
                }
            }
        }
   ]
}
```

------
#### [ Request Response ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   
   "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "emr-serverless:CreateApplication"
            ],
            "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::123456789012:role/aws-service-role/ops.emr-serverless.amazonaws.com/AWSServiceRoleForAmazonEMRServerless*",
            "Condition": {
                "StringLike": {
                    "iam:AWSServiceName": "ops.emr-serverless.amazonaws.com"
                }
            }
        }
    ]
}
```

------

#### Ejemplo de política de IAM para StartApplication
<a name="emr-serverless-policy-startapp"></a>

**Recursos estáticos**  
A continuación, se muestran ejemplos de políticas de IAM para recursos estáticos cuando se utiliza una máquina de estados con un StartApplication [Estado de un flujo de trabajo de tarea](state-task.md) estado.

------
#### [ Run a Job (.sync) ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:StartApplication",
               "emr-serverless:GetApplication",
               "emr-serverless:StopApplication"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/applicationId"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "events:PutTargets",
                "events:PutRule",
                "events:DescribeRule"
            ],
            "Resource": [
                "arn:aws:events:us-east-1:123456789012:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule"
            ]
        }
    ]
}
```

------
#### [ Request Response ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:StartApplication"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/applicationId"
            ]
        }
    ]
}
```

------

**Recursos dinámicos**  
Los siguientes son ejemplos de políticas de IAM para recursos dinámicos cuando se utiliza una máquina de estados con un StartApplication [Estado de un flujo de trabajo de tarea](state-task.md) estado.

------
#### [ Run a Job (.sync) ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:StartApplication",
               "emr-serverless:GetApplication",
               "emr-serverless:StopApplication"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "events:PutTargets",
                "events:PutRule",
                "events:DescribeRule"
            ],
            "Resource": [
                "arn:aws:events:us-east-1:123456789012:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule"
            ]
        }
    ]
}
```

------
#### [ Request Response ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:StartApplication"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/*"
            ]
        }
    ]
}
```

------

#### Ejemplo de política de IAM para StopApplication
<a name="emr-serverless-policy-stopapp"></a>

**Recursos estáticos**  
A continuación, se muestran ejemplos de políticas de IAM para recursos estáticos cuando se utiliza una máquina de estados con un StopApplication [Estado de un flujo de trabajo de tarea](state-task.md) estado.

------
#### [ Run a Job (.sync) ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:StopApplication",
               "emr-serverless:GetApplication"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/applicationId"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "events:PutTargets",
                "events:PutRule",
                "events:DescribeRule"
            ],
            "Resource": [
                "arn:aws:events:us-east-1:123456789012:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule"
            ]
        }
    ]
}
```

------
#### [ Request Response ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:StopApplication"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/applicationId"
            ]
        }
    ]
}
```

------

**Recursos dinámicos**  
Los siguientes son ejemplos de políticas de IAM para recursos dinámicos cuando se utiliza una máquina de estados con un StopApplication [Estado de un flujo de trabajo de tarea](state-task.md) estado.

------
#### [ Run a Job (.sync) ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:StopApplication",
               "emr-serverless:GetApplication"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "events:PutTargets",
                "events:PutRule",
                "events:DescribeRule"
            ],
            "Resource": [
                "arn:aws:events:us-east-1:123456789012:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule"
            ]
        }
    ]
}
```

------
#### [ Request Response ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:StopApplication"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/*"
            ]
        }
    ]
}
```

------

#### Ejemplo de política de IAM para DeleteApplication
<a name="emr-serverless-policy-deleteapp"></a>

**Recursos estáticos**  
A continuación, se muestran ejemplos de políticas de IAM para recursos estáticos cuando se utiliza una máquina de estados con un DeleteApplication [Estado de un flujo de trabajo de tarea](state-task.md) estado.

------
#### [ Run a Job (.sync) ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:DeleteApplication",
               "emr-serverless:GetApplication"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/applicationId"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "events:PutTargets",
                "events:PutRule",
                "events:DescribeRule"
            ],
            "Resource": [
                "arn:aws:events:us-east-1:123456789012:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule"
            ]
        }
    ]
}
```

------
#### [ Request Response ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:DeleteApplication"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/applicationId"
            ]
        }
    ]
}
```

------

**Recursos dinámicos**  
Los siguientes son ejemplos de políticas de IAM para recursos dinámicos cuando se utiliza una máquina de estados con un DeleteApplication [Estado de un flujo de trabajo de tarea](state-task.md) estado.

------
#### [ Run a Job (.sync) ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:DeleteApplication",
               "emr-serverless:GetApplication"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "events:PutTargets",
                "events:PutRule",
                "events:DescribeRule"
            ],
            "Resource": [
                "arn:aws:events:us-east-1:123456789012:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule"
            ]
        }
    ]
}
```

------
#### [ Request Response ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:DeleteApplication"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/*"
            ]
        }
    ]
}
```

------

#### Ejemplo de política de IAM para StartJobRun
<a name="emr-serverless-policy-startjobrun"></a>

**Recursos estáticos**  
A continuación, se muestran ejemplos de políticas de IAM para recursos estáticos cuando se utiliza una máquina de estados con un StartJobRun [Estado de un flujo de trabajo de tarea](state-task.md) estado.

------
#### [ Run a Job (.sync) ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:StartJobRun"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/applicationId"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::123456789012:role/jobExecutionRoleArn"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "emr-serverless.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "emr-serverless:GetJobRun",
                "emr-serverless:CancelJobRun"
            ],
            "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/applicationId/jobruns/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "events:PutTargets",
                "events:PutRule",
                "events:DescribeRule"
            ],
            "Resource": [
                "arn:aws:events:us-east-1:123456789012:rule/StepFunctionsGetEventsForEMRServerlessJobRule"
            ]
        }
    ]
}
```

------
#### [ Request Response ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:StartJobRun"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/applicationId"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::123456789012:role/jobExecutionRoleArn"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "emr-serverless.amazonaws.com"
                }
            }
        }
    ]
}
```

------

**Recursos dinámicos**  
Los siguientes son ejemplos de políticas de IAM para recursos dinámicos cuando se utiliza una máquina de estados con un StartJobRun [Estado de un flujo de trabajo de tarea](state-task.md) estado.

------
#### [ Run a Job (.sync) ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:StartJobRun",
               "emr-serverless:GetJobRun",
               "emr-serverless:CancelJobRun"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::123456789012:role/jobExecutionRoleArn"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "emr-serverless.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "events:PutTargets",
                "events:PutRule",
                "events:DescribeRule"
            ],
            "Resource": [
                "arn:aws:events:us-east-1:123456789012:rule/StepFunctionsGetEventsForEMRServerlessJobRule"
            ]
        }
    ]
}
```

------
#### [ Request Response ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:StartJobRun"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::123456789012:role/jobExecutionRoleArn"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "emr-serverless.amazonaws.com"
                }
            }
        }
    ]
}
```

------

#### Ejemplo de política de IAM para CancelJobRun
<a name="emr-serverless-policy-canceljobrun"></a>

**Recursos estáticos**  
A continuación, se muestran ejemplos de políticas de IAM para recursos estáticos cuando se utiliza una máquina de estados con un CancelJobRun [Estado de un flujo de trabajo de tarea](state-task.md) estado.

------
#### [ Run a Job (.sync) ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:CancelJobRun",
               "emr-serverless:GetJobRun"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/applicationId/jobruns/jobRunId"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "events:PutTargets",
                "events:PutRule",
                "events:DescribeRule"
            ],
            "Resource": [
                "arn:aws:events:us-east-1:123456789012:rule/StepFunctionsGetEventsForEMRServerlessJobRule"
            ]
        }
    ]
}
```

------
#### [ Request Response ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:CancelJobRun"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/applicationId/jobruns/jobRunId"
            ]
        }
    ]
}
```

------

**Recursos dinámicos**  
Los siguientes son ejemplos de políticas de IAM para recursos dinámicos cuando se utiliza una máquina de estados con un CancelJobRun [Estado de un flujo de trabajo de tarea](state-task.md) estado.

------
#### [ Run a Job (.sync) ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:CancelJobRun",
               "emr-serverless:GetJobRun"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "events:PutTargets",
                "events:PutRule",
                "events:DescribeRule"
            ],
            "Resource": [
                "arn:aws:events:us-east-1:123456789012:rule/StepFunctionsGetEventsForEMRServerlessJobRule"
            ]
        }
    ]
}
```

------
#### [ Request Response ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
           "Effect": "Allow",
           "Action": [
               "emr-serverless:CancelJobRun"
            ],
           "Resource": [
                "arn:aws:emr-serverless:us-east-1:123456789012:/applications/*"
            ]
        }
    ]
}
```

------