

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exécutez des charges de travail interactives avec EMR Serverless via EMR Studio
<a name="interactive-workloads"></a>

Avec les applications interactives EMR Serverless, exécutez des charges de travail interactives pour Spark avec EMR Serverless à l'aide de blocs-notes hébergés dans EMR Studio.

## Présentation de
<a name="interactive-overview"></a>

Une *application interactive* est une application EMR sans serveur dont les fonctionnalités interactives sont activées. Avec les applications interactives Amazon EMR Serverless, vous pouvez exécuter des charges de travail interactives avec des blocs-notes Jupyter gérés dans Amazon EMR Studio. Cela permet aux ingénieurs de données, aux scientifiques des données et aux analystes de données d'utiliser EMR Studio pour exécuter des analyses interactives avec des ensembles de données dans des magasins de données tels qu'Amazon S3 et Amazon DynamoDB.

Les cas d'utilisation des applications interactives dans EMR Serverless sont les suivants :
+ Les ingénieurs de données utilisent l'expérience IDE d'EMR Studio pour créer un script ETL. Le script ingère des données sur site, les transforme à des fins d'analyse et les stocke dans Amazon S3.
+ Les data scientists utilisent des carnets pour explorer les ensembles de données et entraîner des modèles d'apprentissage automatique (ML) afin de détecter les anomalies dans les ensembles de données.
+ Les analystes de données explorent les ensembles de données et créent des scripts qui génèrent des rapports quotidiens pour mettre à jour des applications telles que les tableaux de bord commerciaux.

## Conditions préalables
<a name="interactive-prereqs"></a>

Pour utiliser des charges de travail interactives avec EMR Serverless, répondez aux exigences suivantes :
+ Les applications interactives EMR Serverless sont prises en charge avec Amazon EMR 6.14.0 et versions ultérieures.
+ Pour accéder à votre application interactive, exécuter les charges de travail que vous soumettez et exécuter des blocs-notes interactifs depuis EMR Studio, vous avez besoin d'autorisations et de rôles spécifiques. Pour plus d’informations, consultez [Autorisations requises pour les charges de travail interactives](#interactive-permissions).

## Autorisations requises pour les charges de travail interactives
<a name="interactive-permissions"></a>

Outre les [autorisations de base requises pour accéder à EMR Serverless](setting-up.md#setting-up-iam), configurez des autorisations supplémentaires pour votre identité ou votre rôle IAM :

**Pour accéder à votre application interactive**  
Configurez les autorisations d'utilisateur et d'espace de travail pour EMR Studio. Pour plus d'informations, consultez la section [Configurer les autorisations utilisateur d'EMR Studio](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-user-permissions.html) dans le guide de gestion Amazon *EMR.*

**Pour exécuter les charges de travail que vous soumettez avec EMR Serverless**  
Configurez un rôle d'exécution des tâches. Pour plus d’informations, consultez [Création d'un rôle d'exécution de tâches](getting-started.md#gs-runtime-role).

**Pour exécuter les blocs-notes interactifs depuis EMR Studio**  
Ajoutez les autorisations supplémentaires suivantes à la politique IAM pour les utilisateurs de Studio :  
+ **`emr-serverless:AccessInteractiveEndpoints`**- Accorde l'autorisation d'accéder à l'application interactive que vous spécifiez et de vous y connecter`Resource`. Cette autorisation est requise pour se connecter à une application EMR Serverless depuis un espace de travail EMR Studio.
+ **`iam:PassRole`**- Accorde l'autorisation d'accéder au rôle d'exécution IAM que vous prévoyez d'utiliser lorsque vous vous connectez à une application. L'`PassRole`autorisation appropriée est requise pour se connecter à une application EMR Serverless depuis un espace de travail EMR Studio.  
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EMRServerlessInteractiveAccess",
      "Effect": "Allow",
      "Action": [
        "emr-serverless:AccessInteractiveEndpoints"
      ],
      "Resource": [
        "arn:aws:emr-serverless:*:123456789012:/applications/*"
      ]
    },
    {
      "Sid": "EMRServerlessRuntimeRoleAccess",
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::123456789012:role/EMRServerlessInteractiveRole"
      ],
      "Condition": {
        "StringLike": {
          "iam:PassedToService": "emr-serverless.amazonaws.com"
        }
      }
    }
  ]
}
```

## Configuration d'applications interactives
<a name="interactive-configure"></a>

Suivez les étapes de haut niveau suivantes pour créer une application EMR sans serveur dotée de fonctionnalités interactives à partir d'Amazon EMR Studio dans le. AWS Management Console

1. Suivez les étapes décrites [Commencer à utiliser Amazon EMR Serverless](getting-started.md) pour créer une application. 

1. Lancez ensuite un espace de travail depuis EMR Studio et connectez-le à une application EMR Serverless en tant qu'option de calcul. Pour plus d'informations, reportez-vous à l'onglet **Charge de travail interactive** de l'étape 2 de la documentation de [démarrage d'EMR Serverless](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/getting-started.html#gs-job-run-console).

Lorsque vous attachez une application à un espace de travail Studio, le démarrage de l'application se déclenche automatiquement si elle n'est pas déjà en cours d'exécution. Vous pouvez également prédémarrer l'application et la garder prête avant de l'associer à l'espace de travail.

## Considérations relatives aux applications interactives
<a name="interactive-considerations"></a>
+ Les applications interactives EMR Serverless sont prises en charge avec Amazon EMR 6.14.0 et versions ultérieures.
+ EMR Studio est le seul client intégré aux applications interactives EMR Serverless. Les fonctionnalités EMR Studio suivantes ne sont pas prises en charge par les applications interactives EMR Serverless : collaboration dans l'espace de travail, SQL Explorer et exécution programmatique de blocs-notes.
+ Les applications interactives ne sont prises en charge que pour le moteur Spark. 
+ Les applications interactives prennent en charge les noyaux Python 3 PySpark et Spark Scala.
+ Vous pouvez exécuter jusqu'à 25 blocs-notes simultanément sur une seule application interactive.
+ Aucun point de terminaison ou interface API ne prend en charge les blocs-notes Jupyter auto-hébergés dotés d'applications interactives.
+ Pour une expérience de démarrage optimisée, nous vous suggérons de configurer la capacité préinitialisée pour les pilotes et les exécuteurs, et de démarrer votre application au préalable. Lorsque vous prédémarrez l'application, vous vous assurez qu'elle est prête lorsque vous souhaitez l'associer à votre espace de travail. 

  ```
  aws emr-serverless start-application \ 
  --application-id your-application-id
  ```
+ Par défaut, `autoStopConfig` est activé pour les applications. Cela arrête l'application après 30 minutes d'inactivité. Vous pouvez modifier cette configuration dans le cadre de votre `update-application` demande `create-application` ou de votre demande.
+ Lorsque vous utilisez une application interactive, nous vous conseillons de configurer une capacité pré-initialisée de noyaux, de pilotes et d'exécuteurs pour exécuter vos ordinateurs portables. Chaque session interactive Spark nécessite un noyau et un pilote. EMR Serverless gère donc un programme de travail de noyau préinitialisé pour chaque pilote préinitialisé. Par défaut, EMR Serverless conserve une capacité préinitialisée d'un utilisateur du noyau dans l'ensemble de l'application, même si vous ne spécifiez aucune capacité préinitialisée pour les pilotes. Chaque kernel worker utilise 4 vCPU et 16 Go de mémoire. Pour obtenir des informations sur les prix actuels, consultez la page de [tarification d'Amazon EMR.](https://aws.amazon.com/emr/pricing/)
+ Vous devez disposer d'un quota de service vCPU suffisant Compte AWS pour exécuter des charges de travail interactives. Si vous n'exécutez pas de charges de travail compatibles avec Lake Formation, nous vous conseillons d'utiliser au moins 24 vCPU. Si c'est le cas, nous vous conseillons d'utiliser au moins 28 vCPU.
+ EMR Serverless arrête automatiquement les noyaux des ordinateurs portables s'ils sont inactifs depuis plus de 60 minutes. EMR Serverless calcule le temps d'inactivité du noyau depuis la dernière activité effectuée pendant la session du bloc-notes. Vous ne pouvez actuellement pas modifier le paramètre de délai d'inactivité du noyau.
+ Pour activer Lake Formation avec des charges de travail interactives, définissez la configuration comme `spark.emr-serverless.lakeformation.enabled` étant inférieure à la `spark-defaults` classification dans l'`runtime-configuration`objet lorsque vous [créez une `true` application EMR sans serveur.](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/getting-started.html) Pour en savoir plus, consultez [Enabling Lake Formation in Amazon EMR](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless-lf-enable.html#emr-serverless-lf-enable-config).

# Exécutez des charges de travail interactives avec EMR sans serveur via un point de terminaison Apache Livy
<a name="interactive-workloads-livy-endpoints"></a>

Avec les versions 6.14.0 et supérieures d'Amazon EMR, créez et activez un point de terminaison Apache Livy lors de la création d'une application EMR sans serveur et exécutez des charges de travail interactives via vos blocs-notes auto-hébergés ou avec un client personnalisé. Un point de terminaison Apache Livy offre les avantages suivants :
+ Vous pouvez vous connecter en toute sécurité à un point de terminaison Apache Livy via les blocs-notes Jupyter et gérer les charges de travail Apache Spark avec l'interface REST d'Apache Livy.
+ Utilisez les opérations de l'API REST d'Apache Livy pour les applications Web interactives qui utilisent les données des charges de travail Apache Spark.

## Conditions préalables
<a name="interactive-workloads-livy-endpoints-prereqs"></a>

Pour utiliser un point de terminaison Apache Livy avec EMR Serverless, répondez aux exigences suivantes :
+ Suivez les étapes décrites dans [Getting started with Amazon EMR](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/getting-started.html) Serverless. 
+ Pour exécuter des charges de travail interactives via les points de terminaison Apache Livy, vous avez besoin de certaines autorisations et de certains rôles. Pour plus d'informations, reportez-vous à la section [Autorisations requises pour les charges de travail interactives](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/interactive-workloads.html#interactive-permissions).

## Autorisations requises
<a name="interactive-workloads-livy-endpoints-permissions"></a>

Outre les autorisations requises pour accéder à EMR Serverless, ajoutez également les autorisations suivantes à votre rôle IAM pour accéder à un point de terminaison Apache Livy et exécuter des applications :
+ `emr-serverless:AccessLivyEndpoints`— autorise l'accès et la connexion à l'application compatible Livy que vous spécifiez comme. `Resource` Vous avez besoin de cette autorisation pour exécuter les opérations d'API REST disponibles depuis le point de terminaison Apache Livy.
+ `iam:PassRole`— accorde l'autorisation d'accéder au rôle d'exécution IAM lors de la création de la session Apache Livy. EMR Serverless utilisera ce rôle pour exécuter vos charges de travail.
+ `emr-serverless:GetDashboardForJobRun`— autorise la génération de l'interface utilisateur de Spark Live et des liens vers les journaux des pilotes et donne accès aux journaux dans le cadre des résultats de la session Apache Livy.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EMRServerlessInteractiveAccess",
      "Effect": "Allow",
      "Action": [
        "emr-serverless:AccessLivyEndpoints"
      ],
      "Resource": [
        "arn:aws:emr-serverless:*:123456789012:/applications/*"
      ]
    },
    {
      "Sid": "EMRServerlessRuntimeRoleAccess",
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::123456789012:role/EMRServerlessExecutionRole"
      ],
      "Condition": {
        "StringLike": {
          "iam:PassedToService": "emr-serverless.amazonaws.com"
        }
      }
    },
    {
      "Sid": "EMRServerlessDashboardAccess",
      "Effect": "Allow",
      "Action": [
        "emr-serverless:GetDashboardForJobRun"
      ],
      "Resource": [
        "arn:aws:emr-serverless:*:123456789012:/applications/*"
      ]
    }
  ]
}
```

------

## Prise en main
<a name="interactive-workloads-livy-endpoints-getting-started"></a>

Pour créer une application compatible Apache Livy et l'exécuter, procédez comme suit.

1. Pour créer une application compatible avec Apache Livy, exécutez la commande suivante.

   ```
    aws emr-serverless create-application \
   --name my-application-name \ 
   --type 'application-type' \
    --release-label <Amazon EMR-release-version>
   --interactive-configuration '{"livyEndpointEnabled": true}'
   ```

1. Une fois que EMR Serverless a créé votre application, démarrez-la pour rendre le point de terminaison Apache Livy disponible.

   ```
    aws emr-serverless start-application \
    --application-id application-id
   ```

   Utilisez la commande suivante pour vérifier l'état de votre demande. Une fois le statut atteint`STARTED`, accédez au point de terminaison Apache Livy.

   ```
   aws emr-serverless get-application \
   --region <AWS_REGION> --application-id >application_id>
   ```

1. Utilisez l'URL suivante pour accéder au point de terminaison :

   ```
   https://_<application-id>_.livy.emr-serverless-services._<AWS_REGION>_.amazonaws.com
   ```

Une fois que le terminal est prêt, soumettez les charges de travail en fonction de votre cas d'utilisation. Vous devez signer chaque demande envoyée au point de terminaison avec [le SIGv4 protocole](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html) et transmettre un en-tête d'autorisation. Vous pouvez utiliser les méthodes suivantes pour exécuter des charges de travail :
+ Client HTTP : soumettez les opérations de l'API de votre point de terminaison Apache Livy avec un client HTTP personnalisé.
+ Noyau Sparkmagic — exécutez le noyau Sparkmagic localement et soumettez des requêtes interactives avec les blocs-notes Jupyter.

### Clients HTTP
<a name="interactive-workloads-livy-endpoints-getting-started-http"></a>

Pour créer une session Apache Livy, soumettez-la `emr-serverless.session.executionRoleArn` dans les `conf` paramètres du corps de votre requête. L'exemple suivant est un exemple de `POST /sessions` demande.

```
{    
    "kind": "pyspark",
    "heartbeatTimeoutInSecond": 60, 
    "conf": {
        "emr-serverless.session.executionRoleArn": "<executionRoleArn>"
    }
}
```

Le tableau suivant décrit toutes les opérations d'API Apache Livy disponibles.


| Opération API | Description | 
| --- | --- | 
| OBTENIR /sessions | Renvoie la liste de toutes les sessions interactives actives. | 
| POST/sessions | Crée une nouvelle session interactive via Spark ou Pyspark. | 
| OBTENEZ /sessions/ < > sessionId | Renvoie les informations de session. | 
| GET /sessions/ < >/state sessionId | Renvoie l'état de la session. | 
| SUPPRIMER /sessions/ < > sessionId | Arrête et supprime la session. | 
| GET /sessions/ < >/déclarations sessionId | Renvoie toutes les instructions d'une session. | 
| POST /sessions/ < >/déclarations sessionId | Exécute une instruction au cours d'une session. | 
| GET /sessions/ < >/déclarations/< > sessionId statementId | Renvoie les détails de l'instruction spécifiée dans une session. | 
| POST /sessions/ < >/déclarations/< >/annuler sessionId statementId | Annule l'instruction spécifiée dans cette session. | 

#### Envoi de requêtes au point de terminaison Apache Livy
<a name="interactive-workloads-livy-endpoints-getting-started-http-send-requests"></a>

Vous pouvez également envoyer des demandes directement au point de terminaison Apache Livy à partir d'un client HTTP. Cela vous permet d'exécuter du code à distance pour vos cas d'utilisation en dehors d'un bloc-notes.

Avant de commencer à envoyer des demandes au terminal, assurez-vous d'avoir installé les bibliothèques suivantes :

```
pip3 install botocore awscrt requests
```

Voici un exemple de script Python permettant d'envoyer des requêtes HTTP directement à un point de terminaison :

```
from botocore import crt
import requests 
from botocore.awsrequest import AWSRequest
from botocore.credentials import Credentials
import botocore.session
import json, pprint, textwrap

endpoint = 'https://<application_id>.livy.emr-serverless-services.<AWS_REGION>.amazonaws.com'
headers = {'Content-Type': 'application/json'}

session = botocore.session.Session()
signer = crt.auth.CrtS3SigV4Auth(session.get_credentials(), 'emr-serverless', '<AWS_REGION>')


### Create session request

data = {'kind': 'pyspark', 'heartbeatTimeoutInSecond': 60, 'conf': { 'emr-serverless.session.executionRoleArn': 'arn:aws:iam::123456789012:role/role1'}}

request = AWSRequest(method='POST', url=endpoint + "/sessions", data=json.dumps(data), headers=headers)

request.context["payload_signing_enabled"] = False

signer.add_auth(request)

prepped = request.prepare()

r = requests.post(prepped.url, headers=prepped.headers, data=json.dumps(data))

pprint.pprint(r.json())


### List Sessions Request

request = AWSRequest(method='GET', url=endpoint + "/sessions", headers=headers)

request.context["payload_signing_enabled"] = False

signer.add_auth(request)

prepped = request.prepare()

r2 = requests.get(prepped.url, headers=prepped.headers)
pprint.pprint(r2.json())


### Get session state

session_url = endpoint + r.headers['location']

request = AWSRequest(method='GET', url=session_url, headers=headers)

request.context["payload_signing_enabled"] = False

signer.add_auth(request)

prepped = request.prepare()

r3 = requests.get(prepped.url, headers=prepped.headers)

pprint.pprint(r3.json())


### Submit Statement

data = {
      'code': "1 + 1"
}

statements_url = endpoint + r.headers['location'] + "/statements"

request = AWSRequest(method='POST', url=statements_url, data=json.dumps(data), headers=headers)

request.context["payload_signing_enabled"] = False

signer.add_auth(request)

prepped = request.prepare()

r4 = requests.post(prepped.url, headers=prepped.headers, data=json.dumps(data))

pprint.pprint(r4.json())

### Check statements results

specific_statement_url = endpoint + r4.headers['location']

request = AWSRequest(method='GET', url=specific_statement_url, headers=headers)

request.context["payload_signing_enabled"] = False

signer.add_auth(request)

prepped = request.prepare()

r5 = requests.get(prepped.url, headers=prepped.headers)

pprint.pprint(r5.json())


### Delete session


session_url = endpoint + r.headers['location']

request = AWSRequest(method='DELETE', url=session_url, headers=headers)

request.context["payload_signing_enabled"] = False

signer.add_auth(request)

prepped = request.prepare()

r6 = requests.delete(prepped.url, headers=prepped.headers)

pprint.pprint(r6.json())
```

### Noyau Sparkmagic
<a name="interactive-workloads-livy-endpoints-getting-started-sparkmagic"></a>

Avant d'installer sparkmagic, assurez-vous d'avoir configuré les AWS informations d'identification dans l'instance dans laquelle vous souhaitez installer sparkmagic

1. Installez sparkmagic en suivant les étapes d'[installation](https://github.com/jupyter-incubator/sparkmagic?tab=readme-ov-file#installation). Notez que vous n'effectuez que les quatre premières étapes.

1. Le noyau sparkmagic prend en charge les authentificateurs personnalisés. Vous pouvez donc intégrer un authentificateur au noyau sparkmagic afin que chaque demande soit signée. SIGv4 

1. Installez l'authentificateur personnalisé EMR Serverless.

   ```
   pip install emr-serverless-customauth
   ```

1. Indiquez maintenant le chemin d'accès à l'authentificateur personnalisé et l'URL du point de terminaison Apache Livy dans le fichier json de configuration de sparkmagic. Utilisez la commande suivante pour ouvrir le fichier de configuration.

   ```
   vim ~/.sparkmagic/config.json
   ```

   Voici un exemple de `config.json` fichier.

   ```
   {
   "kernel_python_credentials" : {
       "username": "",
       "password": "",
       "url": "https://<application-id>.livy.emr-serverless-services.<AWS_REGION>.amazonaws.com",
       "auth": "Custom_Auth"
     },
   
     "kernel_scala_credentials" : {
       "username": "",
       "password": "",
       "url": "https://<application-id>.livy.emr-serverless-services.<AWS_REGION>.amazonaws.com",
       "auth": "Custom_Auth"
     },
     "authenticators": {
       "None": "sparkmagic.auth.customauth.Authenticator",
       "Basic_Access": "sparkmagic.auth.basic.Basic",
       "Custom_Auth": "emr_serverless_customauth.customauthenticator.EMRServerlessCustomSigV4Signer"
     },
     "livy_session_startup_timeout_seconds": 600,
     "ignore_ssl_errors": false
   }
   ```

1. Démarrez Jupyter Lab. Il doit utiliser l'authentification personnalisée que vous avez configurée lors de la dernière étape.

1. Vous pouvez ensuite exécuter les commandes de bloc-notes suivantes et votre code pour commencer.

   ```
   %%info //Returns the information about the current sessions.
   ```

   ```
   %%configure -f //Configure information specific to a session. We supply executionRoleArn in this example. Change it for your use case.
   {
       "driverMemory": "4g",
       "conf": {
             "emr-serverless.session.executionRoleArn": "arn:aws:iam::123456789012:role/JobExecutionRole"
       }
   }
   ```

   ```
   <your code>//Run your code to start the session
   ```

En interne, chaque instruction appelle chacune des opérations de l'API Apache Livy via l'URL du point de terminaison Apache Livy configurée. Vous pouvez ensuite rédiger vos instructions en fonction de votre cas d'utilisation.

## Considérations
<a name="interactive-workloads-livy-endpoints-considerations"></a>

Tenez compte des considérations suivantes lorsque vous exécutez des charges de travail interactives via les points de terminaison Apache Livy.
+ EMR Serverless maintient l'isolation au niveau de la session en utilisant le principal de l'appelant. Le principal appelant qui crée la session est le seul à pouvoir accéder à cette session. Pour une isolation plus précise, configurez une identité source lorsque vous utilisez des informations d'identification. Dans ce cas, EMR Serverless applique une isolation au niveau de la session en fonction du principal appelant et de l'identité de la source. Pour plus d'informations sur l'identité de la source, reportez-vous à la section [Surveiller et contrôler les actions entreprises avec des rôles assumés](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html#id_credentials_temp_control-access_monitor-specify-sourceid). 
+ Les points de terminaison Apache Livy sont pris en charge avec les versions 6.14.0 et supérieures d'EMR Serverless.
+ Les points de terminaison Apache Livy ne sont pris en charge que pour le moteur Apache Spark.
+ Les points de terminaison Apache Livy prennent en charge Scala Spark et. PySpark
+ Par défaut, `autoStopConfig` est activé dans vos applications. Cela signifie que les applications s'arrêtent après 15 minutes d'inactivité. Vous pouvez modifier cette configuration dans le cadre de votre `update-application` demande `create-application` ou de votre demande. 
+ Vous pouvez exécuter jusqu'à 25 sessions simultanées sur une seule application compatible avec le point de terminaison Apache Livy.
+ Pour une expérience de démarrage optimale, nous vous conseillons de configurer la capacité pré-initialisée pour les pilotes et les exécuteurs.
+ Vous devez démarrer manuellement votre application avant de vous connecter au point de terminaison Apache Livy.
+ Vous devez disposer d'un quota de service vCPU suffisant Compte AWS pour exécuter des charges de travail interactives avec le point de terminaison Apache Livy. Nous vous conseillons d'utiliser au moins 24 vCPU.
+ Le délai d'expiration de session Apache Livy par défaut est de 1 heure. Si vous n'exécutez aucune instruction pendant une heure, Apache Livy supprime la session et libère le pilote et les exécuteurs. À partir de la version emr-7.8.0, cette valeur peut être définie en spécifiant le `ttl` paramètre dans le cadre de la `/sessions POST` demande Livy, par exemple `2h` (heures), (minutes), `120m` (secondes), `7200s` (millisecondes). `7200000ms`
**Note**  
Cette configuration ne peut pas être modifiée avant emr-7.8.0. Voici un exemple de corps de `POST /sessions` demande.

  ```
  {    
      "kind": "pyspark",
      "heartbeatTimeoutInSecond": 60, 
      "conf": {
          "emr-serverless.session.executionRoleArn": "executionRoleArn"
      },
      "ttl": "2h"
  }
  ```
+ À partir de la version emr-7.8.0 d'Amazon EMR pour les applications dont le contrôle d'accès détaillé est LakeFormation activé, le paramètre peut être désactivé par session. Pour plus d'informations sur l'activation du contrôle d'accès détaillé pour une application EMR sans serveur, reportez-vous [à la section Méthodes de contrôle d'](emr-serverless-lf-enable.html#emr-serverless-lf-enable-config)accès détaillé.
**Note**  
Lake Formation ne peut pas être activée pour une session alors qu'elle n'a pas été activée pour une application. Voici un exemple de corps de `POST /sessions` demande.

  ```
  {    
      "kind": "pyspark",
      "heartbeatTimeoutInSecond": 60, 
      "conf": {
          "emr-serverless.session.executionRoleArn": "executionRoleArn"
      },
      "spark.emr-serverless.lakeformation.enabled" : "false"
  }
  ```
+ Seules les sessions actives peuvent interagir avec un point de terminaison Apache Livy. Une fois la session terminée, annulée ou terminée, vous ne pouvez pas y accéder via le point de terminaison Apache Livy.