

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.

# Qu'est-ce que l'agent de résolution des problèmes Apache Spark pour Amazon EMR
<a name="spark-troubleshoot"></a>

## Introduction
<a name="spark-troubleshooting-agent-intro"></a>

L'agent de résolution des problèmes Apache Spark pour Amazon EMR est une fonctionnalité d'intelligence artificielle conversationnelle qui simplifie le dépannage des applications Apache Spark sur Amazon EMR, Glue AWS et Amazon Notebooks. SageMaker Le dépannage traditionnel de Spark nécessite une analyse manuelle approfondie des journaux, des indicateurs de performance et des modèles d'erreur afin d'identifier les causes profondes et de corriger le code. L'agent simplifie ce processus grâce à des instructions en langage naturel, à une analyse automatisée de la charge de travail et à des recommandations de code intelligentes.

Vous pouvez utiliser l'agent pour résoudre les problèmes PySpark et les défaillances des applications Scala. L'agent analyse vos tâches qui ont échoué, identifie les goulots d'étranglement liés aux performances et fournit des recommandations pratiques et des corrections de code tout en vous donnant un contrôle total sur les décisions de mise en œuvre.

**Note**  
L'agent de dépannage Apache Spark est disponible sans frais supplémentaires dans le cadre d'Amazon EMR. L'agent fournit uniquement des analyses et des recommandations. Vous ne payez que pour les ressources Amazon EMR que vous utilisez lorsque vous exécutez vos applications pour valider les correctifs recommandés.

## Présentation de l'architecture
<a name="spark-troubleshooting-agent-architecture"></a>

L'agent de dépannage comporte trois composants principaux : un assistant AI compatible MCP dans votre environnement de développement pour l'interaction, le [proxy MCP AWS qui gère la communication et l'authentification sécurisées entre votre client et vos AWS services, et le serveur MCP distant Amazon SageMaker Unified Studio `(preview)` qui fournit des outils de dépannage Spark spécialisés pour](https://github.com/aws/mcp-proxy-for-aws) Amazon EMR, Glue AWS et Amazon Notebooks. SageMaker Ce schéma illustre la manière dont vous interagissez avec le serveur MCP Amazon SageMaker Unified Studio Remote par le biais de votre assistant AI.

![\[Architecture de l'agent de résolution des problèmes Spark.\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/images/spark-troubleshooting-agent-architecture.png)


L'assistant AI orchestrera le dépannage à l'aide des outils spécialisés fournis par le serveur MCP en suivant les étapes suivantes :
+ **Extraction de fonctionnalités et création de contexte :** l'agent collecte et analyse automatiquement les données de télémétrie de votre application Spark, notamment les journaux du serveur Spark History, les paramètres de configuration et les traces d'erreur. Il extrait les indicateurs de performance clés, les modèles d'utilisation des ressources et les signatures de défaillance afin de créer un profil contextuel complet pour un dépannage intelligent.
+ **Analyseur des causes profondes et moteur de recommandation GenAI :** l'agent utilise les modèles d'IA et la base de connaissances Spark pour corréler les fonctionnalités extraites et identifier les causes profondes des problèmes ou défaillances de performance. Il fournit des informations diagnostiques et une analyse des problèmes survenus lors de l'exécution de votre application Spark.
+ **Recommandation de code GenAI Spark :** Sur la base de l'analyse des causes premières de l'étape précédente, l'agent analyse vos modèles de code existants et identifie les opérations inefficaces qui nécessitent des corrections de code en cas de défaillance des applications. Il fournit des recommandations pratiques, notamment des modifications de code spécifiques, des ajustements de configuration et des améliorations architecturales avec des exemples concrets.

**Topics**
+ [Introduction](#spark-troubleshooting-agent-intro)
+ [Présentation de l'architecture](#spark-troubleshooting-agent-architecture)
+ [Configuration de l'agent de dépannage](spark-troubleshooting-agent-setup.md)
+ [Utilisation de l'agent de dépannage](spark-troubleshooting-using-troubleshooting-agent.md)
+ [Caractéristiques et capacités](spark-troubleshooting-features.md)
+ [Résolution des problèmes et questions et réponses](spark-troubleshooting-agent-troubleshooting.md)
+ [Le flux de travail des agents de dépannage de Spark en détail](spark-troubleshooting-agent-workflow.md)
+ [Exemples rapides](spark-troubleshooting-agent-prompt-examples.md)
+ [Configuration du rôle IAM](spark-troubleshooting-agent-iam-setup.md)
+ [Utilisation des outils de dépannage de Spark](spark-troubleshooting-agent-using-tools.md)
+ [Configuration des points de terminaison VPC d'interface pour Amazon Unified Studio MCP SageMaker](spark-troubleshooting-agent-vpc-endpoints.md)
+ [Traitement interrégional pour l'agent de résolution des problèmes Apache Spark](spark-troubleshooting-cross-region-processing.md)
+ [Journalisation des appels MCP Amazon SageMaker Unified Studio à l'aide de AWS CloudTrail](spark-troubleshooting-cloudtrail-integration.md)
+ [Améliorations des services pour les agents Apache Spark](spark-agents-service-improvements.md)

# Configuration de l'agent de dépannage
<a name="spark-troubleshooting-agent-setup"></a>

**Note**  
L'agent de résolution des problèmes Apache Spark utilise l'inférence entre régions pour traiter les demandes en langage naturel et générer des réponses. Pour plus de détails, veuillez consulter[Traitement interrégional pour l'agent de résolution des problèmes Apache Spark](spark-troubleshooting-cross-region-processing.md). Le serveur Amazon SageMaker Unified Studio MCP est en version préliminaire et est sujet à modification.

## Conditions préalables
<a name="spark-troubleshooting-agent-prerequisites"></a>

Avant de commencer notre processus de configuration pour l'intégration à Kiro CLI, assurez-vous que les éléments suivants sont installés sur votre poste de travail :
+  [Installer la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 
+  [Installez Python 3.10\$1](https://www.python.org/downloads/release/python-3100/) 
+  [Installez le gestionnaire de `uv` packages](https://docs.astral.sh/uv/getting-started/installation/) pour [MCP Proxy](https://github.com/aws/mcp-proxy-for-aws?tab=readme-ov-file) pour AWS
+  [Installez Kiro CLI](https://kiro.dev/docs/cli/) 
+ AWS informations d'identification locales configurées (via une [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html), des variables d'environnement ou des rôles IAM) : pour les opérations locales telles que le téléchargement d'artefacts de tâche mis à niveau pour l'exécution de tâches de validation EMR.

## Ressources de configuration
<a name="spark-troubleshooting-agent-setup-resources"></a>

Vous pouvez utiliser un AWS CloudFormation modèle pour configurer la ressource pour le serveur MCP. Ces modèles sont des exemples que vous devez modifier pour répondre à vos besoins. Le modèle crée les ressources suivantes pour le processus de dépannage :

1. Rôle IAM autorisé à appeler le serveur MCP et aux autorisations requises pour le processus de dépannage pour la plate-forme sélectionnée.

Choisissez l'un des boutons **Launch Stack** (Lancer la pile) du tableau suivant. Cela lance la pile sur la AWS CloudFormation console dans la région correspondante.


| Région | Lancer | 
| --- | --- | 
| USA Est (Ohio) |  [https://console.aws.amazon.com/cloudformation/home?region=us-east-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-us-east-2.s3.us-east-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=us-east-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-us-east-2.s3.us-east-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| USA Est (Virginie du Nord) |  [https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-us-east-1.s3.us-east-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-us-east-1.s3.us-east-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| USA Ouest (Oregon) |  [https://console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-us-west-2.s3.us-west-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-us-west-2.s3.us-west-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| Asie Pacifique (Tokyo) |  [https://console.aws.amazon.com/cloudformation/home?region=ap-northeast-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-northeast-1.s3.ap-northeast-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=ap-northeast-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-northeast-1.s3.ap-northeast-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| Europe (Irlande) |  [https://console.aws.amazon.com/cloudformation/home?region=eu-west-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-west-1.s3.eu-west-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=eu-west-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-west-1.s3.eu-west-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| Asie-Pacifique (Singapour) |  [https://console.aws.amazon.com/cloudformation/home?region=ap-southeast-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-southeast-1.s3.ap-southeast-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=ap-southeast-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-southeast-1.s3.ap-southeast-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| Asie-Pacifique (Sydney) |  [https://console.aws.amazon.com/cloudformation/home?region=ap-southeast-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-southeast-2.s3.ap-southeast-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=ap-southeast-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-southeast-2.s3.ap-southeast-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| Canada (Centre) |  [https://console.aws.amazon.com/cloudformation/home?region=ca-central-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ca-central-1.s3.ca-central-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=ca-central-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ca-central-1.s3.ca-central-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| Amérique du Sud (São Paulo) |  [https://console.aws.amazon.com/cloudformation/home?region=sa-east-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-sa-east-1.s3.sa-east-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=sa-east-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-sa-east-1.s3.sa-east-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| Europe (Francfort) |  [https://console.aws.amazon.com/cloudformation/home?region=eu-central-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-central-1.s3.eu-central-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=eu-central-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-central-1.s3.eu-central-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| Europe (Stockholm) |  [https://console.aws.amazon.com/cloudformation/home?region=eu-north-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-north-1.s3.eu-north-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=eu-north-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-north-1.s3.eu-north-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| Europe (Londres) |  [https://console.aws.amazon.com/cloudformation/home?region=eu-west-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-west-2.s3.eu-west-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=eu-west-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-west-2.s3.eu-west-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| Europe (Paris) |  [https://console.aws.amazon.com/cloudformation/home?region=eu-west-3#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-west-3.s3.eu-west-3.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=eu-west-3#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-west-3.s3.eu-west-3.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| Asie-Pacifique (Séoul) |  [https://console.aws.amazon.com/cloudformation/home?region=ap-northeast-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-northeast-2.s3.ap-northeast-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=ap-northeast-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-northeast-2.s3.ap-northeast-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| Asie-Pacifique (Mumbai) |  [https://console.aws.amazon.com/cloudformation/home?region=ap-south-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-south-1.s3.ap-south-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=ap-south-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-south-1.s3.ap-south-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 

Accédez à la page **Spécifier les détails de la pile**, entrez le **nom de la pile**. Saisissez des informations supplémentaires sous **Paramètres**. Fournissez les informations suivantes et procédez à la création de la pile.
+ **TroubleshootingRoleName**- Nom du rôle IAM à créer pour les opérations de dépannage
+ **Activer EMREC2** : active les autorisations de dépannage EMR-EC2 (valeur par défaut : true)
+ **Activer EMRServerless** : active les autorisations de dépannage sans serveur EMR (valeur par défaut : true)
+ **EnableGlue**- Activer les autorisations de dépannage de Glue (valeur par défaut : true)
+ **CloudWatchKmsKeyArn**- (Facultatif) ARN de la clé KMS existante pour le chiffrement CloudWatch des journaux (EMR sans serveur uniquement, laissez le champ vide pour le chiffrement par défaut)

Vous pouvez également télécharger et consulter [le CloudFormation modèle](https://github.com/aws-samples/aws-emr-utilities/blob/03c20fece616de23ec0ea5389f0113a5bc65fc3a/utilities/apache-spark-agents/spark-troubleshooting-agent-cloudformation/spark-troubleshooting-mcp-setup.yaml), spécifier les options ci-dessus et lancer le modèle vous-même à l'aide des commandes de la CloudFormation CLI, voir un exemple ci-dessous :

```
# deploy the stack with CloudFormation CLI commands
aws cloudformation deploy \
  --template-file spark-troubleshooting-mcp-setup.yaml \
  --stack-name spark-troubleshooting-mcp-setup \
  --region <your Spark MCP server launch region> \
  --capabilities CAPABILITY_NAMED_IAM \
  --parameter-overrides \
    TroubleshootingRoleName=spark-troubleshooting-role


# retrieve the 1-line instruction to set the local environment variables, which will be used for the following MCP server configuration
aws cloudformation describe-stacks \
  --stack-name spark-troubleshooting-mcp-setup \
  --region <your Spark MCP server launch region> \
  --query "Stacks[0].Outputs[?OutputKey=='ExportCommand'].OutputValue" \
  --output text
```

Ouvrez l'onglet Sorties (ou récupérez-la à partir de la commande de la CLI CloudFormation describe-stacks ci-dessus) et copiez l'instruction d'une ligne à partir de CloudFormation la sortie pour définir vos variables d'environnement, puis exécutez-la dans votre environnement local. Exemple d'instruction d'une ligne :

```
export SMUS_MCP_REGION=<your mcp server launch region> && export IAM_ROLE=arn:aws:iam::111122223333:role/spark-troubleshooting-role-xxxxxx
```

Exécutez ensuite la commande suivante localement pour configurer le profil IAM et la configuration du serveur MCP :

```
# Step 1: Configure AWS CLI Profile
aws configure set profile.smus-mcp-profile.role_arn ${IAM_ROLE}
aws configure set profile.smus-mcp-profile.source_profile <AWS CLI Profile to assume the IAM role - ex: default>
aws configure set profile.smus-mcp-profile.region ${SMUS_MCP_REGION}

# Step 2: if you are using kiro CLI, use the following command to add the MCP configuration
# Add Spark Troubleshooting MCP Server
kiro-cli-chat mcp add \
    --name "sagemaker-unified-studio-mcp-troubleshooting" \
    --command "uvx" \
    --args "[\"mcp-proxy-for-aws@latest\",\"https://sagemaker-unified-studio-mcp.${SMUS_MCP_REGION}.api.aws/spark-troubleshooting/mcp\", \"--service\", \"sagemaker-unified-studio-mcp\", \"--profile\", \"smus-mcp-profile\", \"--region\", \"${SMUS_MCP_REGION}\", \"--read-timeout\", \"180\"]" \
    --timeout 180000 \
    --scope global
    
# Add Spark Code Recommendation MCP Server
kiro-cli-chat mcp add \
    --name "sagemaker-unified-studio-mcp-code-rec" \
    --command "uvx" \
    --args "[\"mcp-proxy-for-aws@latest\",\"https://sagemaker-unified-studio-mcp.${SMUS_MCP_REGION}.api.aws/spark-code-recommendation/mcp\", \"--service\", \"sagemaker-unified-studio-mcp\", \"--profile\", \"smus-mcp-profile\", \"--region\", \"${SMUS_MCP_REGION}\", \"--read-timeout\", \"180\"]" \
    --timeout 180000 \
    --scope global
```

Cela devrait être mis `~/.kiro/settings/mcp.json` à jour pour inclure la configuration du serveur MCP comme indiqué ci-dessous.

```
{
  "mcpServers": {
    "sagemaker-unified-studio-mcp-troubleshooting": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-proxy-for-aws@latest",
        "https://sagemaker-unified-studio-mcp.us-east-1.api.aws/spark-troubleshooting/mcp",
        "--service",
        "sagemaker-unified-studio-mcp",
        "--profile",
        "smus-mcp-profile",
        "--region",
        "us-east-1",
        "--read-timeout",
        "180"
      ],
      "timeout": 180000,
      "disabled": false
    },
    "sagemaker-unified-studio-mcp-code-rec": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-proxy-for-aws@latest",
        "https://sagemaker-unified-studio-mcp.us-east-1.api.aws/spark-code-recommendation/mcp",
        "--service",
        "sagemaker-unified-studio-mcp",
        "--profile",
        "smus-mcp-profile",
        "--region",
        "us-east-1",
        "--read-timeout",
        "180"
      ],
      "timeout": 180000,
      "disabled": false
    }
  }
}
```

Consultez [Interfaces prises en charge](spark-troubleshooting-using-troubleshooting-agent.md#supported-interfaces) les conseils de configuration pour différents clients MCP tels que Kiro, Cline et. GitHub CoPilot

# Utilisation de l'agent de dépannage
<a name="spark-troubleshooting-using-troubleshooting-agent"></a>

## Modes de déploiement pris en charge
<a name="supported-deployment-modes"></a>

L'agent de résolution des problèmes Apache Spark pour Amazon EMR prend en charge des fonctionnalités d'analyse complètes des charges de travail Spark défaillantes, notamment le diagnostic automatique des erreurs, l'identification des goulots d'étranglement des performances, les recommandations de code et les suggestions exploitables pour améliorer les performances des applications dans le mode de déploiement Spark suivant :
+ EMR sur EC2
+ EMR sans serveur
+ AWS Glue

Veuillez vous référer à cette section [Caractéristiques et capacités](spark-troubleshooting-features.md) pour en savoir plus sur les fonctionnalités, les capacités et les limites.

## Interfaces prises en charge
<a name="supported-interfaces"></a>

### Résolution des problèmes liés aux cellules dans les SageMaker blocs-notes Amazon
<a name="troubleshooting-sagemaker-notebooks"></a>

Une démonstration de l'expérience de dépannage avec Amazon SageMaker Notebooks. En cas de panne d'une cellule Notebook, vous pouvez demander à l'agent Amazon SageMaker Notebook de remédier à l'échec de la demande d'analyse suivie d'une éventuelle correction de code si l'erreur est due au code, en cliquant sur le `Fix with AI` bouton.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/btW8hwio0tE/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/btW8hwio0tE)


### Résolution des problèmes liés aux applications Glue et EMR Spark avec Kiro CLI
<a name="troubleshooting-glue-emr-applications"></a>

Démarrez Kiro CLI ou votre assistant AI et vérifiez les outils chargés pour le processus de dépannage.

```
...
 sagemaker-unified-studio-mcp-code-rec (MCP)
 - spark_code_recommendation    not trusted
 
 sagemaker-unified-studio-mcp-troubleshooting (MCP)
 - analyze_spark_workload       not trusted
...
```

Vous êtes maintenant prêt à démarrer le flux de travail de l'agent de dépannage Spark.

Une démonstration de l'expérience de dépannage avec Kiro CLI. Vous pouvez simplement démarrer le processus de résolution des problèmes en suivant le message suivant :

```
Analyze my Glue job. The job name is "xxx" and the job run id is "xxx"
```

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/YLwV_EenJXY/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/YLwV_EenJXY)


### Intégration avec d'autres clients MCP
<a name="integration-other-mcp-clients"></a>

La configuration décrite dans [Configuration de l'agent de dépannage](spark-troubleshooting-agent-setup.md) peut également être utilisée dans d'autres clients MCP et IDEs pour se connecter au serveur MCP géré :
+ **Intégration avec Cline** - Pour utiliser le serveur MCP avec Cline, modifiez `cline_mcp_settings.json` et ajoutez la configuration ci-dessus. Consultez [la documentation de Cline](https://docs.cline.bot/mcp/configuring-mcp-servers) pour plus d'informations sur la gestion de la configuration MCP.
+ **Intégration avec Claude Code** Pour utiliser le serveur MCP avec Claude Code, modifiez le fichier de configuration pour inclure la configuration MCP. Le chemin du fichier varie en fonction de votre système d'exploitation. Reportez-vous à [ https://code.claude.com/docs/en/mcp](https://code.claude.com/docs/en/mcp) pour une configuration détaillée.
+ **Intégration avec GitHub Copilot** - Pour utiliser le serveur MCP avec GitHub Copilot, suivez les instructions contenues dans [ https://docs.github.com/en/copilot/how-tos/provide-context/use-mcp/extend- copilot-chat-with-mcp](https://docs.github.com/en/copilot/how-tos/provide-context/use-mcp/extend-copilot-chat-with-mcp) pour modifier le fichier de configuration correspondant et suivez les instructions de chaque IDE pour activer l'installation.

# Caractéristiques et capacités
<a name="spark-troubleshooting-features"></a>

## Plateformes prises en charge
<a name="supported-platforms"></a>
+ **Langages** : applications Python et Scala Spark
+ **Plateformes cibles** : Amazon EMR, EMR Serverless et Glue AWS 

## Comment ça marche
<a name="how-it-works"></a>

En cas de défaillance de votre application Spark, vous pouvez utiliser l'agent de résolution des problèmes pour rechercher automatiquement ce qui s'est mal passé. Il analyse vos journaux d'événements Spark, vos messages d'erreur et l'utilisation des ressources pour identifier le problème exact, qu'il s'agisse d'un manque de mémoire, d'une erreur de configuration ou d'un bogue de code.

Lorsque vous demandez à une invite en langage naturel d'analyser votre charge de travail Spark, l'agent se connecte aux ressources de votre plateforme et extrait des fonctionnalités (notamment les journaux d'événements Spark, les plans de requêtes, les chronologies des exécuteurs, les traces de journal, les configurations et les métriques) :
+ Sur EMR-EC2 : il se connecte à l'interface utilisateur persistante [EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/app-history-spark-UI.html) du cluster
+ On Glue : il crée le contexte à partir de l'[interface utilisateur Spark](https://docs.aws.amazon.com/glue/latest/dg/monitor-spark-ui-jobs.html) de Glue Studio pour le travail
+ [Sur EMR-Serverless : il se connecte au serveur d'historique Spark sans serveur EMR pour le travail](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_GetDashboardForJobRun.html)
+ L'agent analyse également les traces de votre pile d'erreurs et les détails de configuration pour vous fournir des informations exploitables.

Pour les charges de travail défaillantes, vous obtenez une explication claire de la cause première et des étapes spécifiques pour y remédier. Si l'agent détecte un problème lié au code, il fournit automatiquement des recommandations de code pour vous indiquer exactement ce qu'il faut modifier dans votre code. Vous pouvez également demander des suggestions au niveau du code directement quand vous le souhaitez, sans analyse complète.

## Régions disponibles
<a name="available-regions"></a>

L'agent de résolution des problèmes Spark est disponible dans les régions suivantes :
+ **Asie-Pacifique** : Tokyo (ap-northeast-1), Séoul (ap-northeast-2), Singapour (ap-southeast-1), Sydney (ap-southeast-2) et Mumbai (ap-southeast-1)
+ **Amérique du** Nord : Canada (ca-central-1)
+ **Europe** : Stockholm (eu-nord-1), Irlande (eu-west-1), Londres (eu-west-2), Paris (eu-west-3) et Francfort (eu-central-1)
+ **Amérique du Sud** : São Paulo (sa-east-1)
+ **États-Unis** : Virginie du Nord (us-east-1), Ohio (us-east-2) et Oregon (us-west-2)

## Champ de résolution des problèmes liés à Spark et exigences des utilisateurs
<a name="scope-requirements"></a>
+ **États de charge de travail Spark pris en** charge : les outils ne prennent en charge que les réponses aux charges de travail Spark ayant échoué.
+ **Interface utilisateur persistante EMR :** lors de l'analyse des charges de travail Amazon EMR-EC2, l'outil d'analyse tente de se connecter à l'interface utilisateur persistante EMR pour récupérer les informations clés de Spark. [Les considérations relatives à l'interface utilisateur EMR Persistent sont documentées ici.](https://docs.aws.amazon.com/emr/latest/ManagementGuide/app-history-spark-UI.html#app-history-spark-UI-limitations)
+ **Interface utilisateur de Glue Studio Spark** : lors de l'analyse des charges de travail AWS Glue, l'outil d'analyse tente de récupérer les informations clés de Spark en analysant les journaux d'événements Spark des utilisateurs depuis Amazon S3. La taille maximale autorisée des journaux d'événements Spark est documentée [ici](https://docs.aws.amazon.com/glue/latest/dg/monitor-spark-ui-jobs.html) : 512 Mo et 2 Go pour les journaux évolutifs.
+ **Recommandations relatives au code :** prise en charge uniquement pour les charges de travail Amazon EMR-EC2 et AWS Glue pour les charges de travail PySpark 
+ **Ressources régionales :** L'agent de résolution des problèmes Spark est régional et utilise les ressources EMR sous-jacentes de cette région pour le processus de dépannage. Le dépannage interrégional n'est pas pris en charge.

# Résolution des problèmes et questions et réponses
<a name="spark-troubleshooting-agent-troubleshooting"></a>

## Résolution des problèmes
<a name="spark-troubleshooting-common-issues"></a>

Le message d'erreur de l'agent de dépannage Spark est disponible de différentes manières pour les différents clients MCP. Dans cette page, nous listons quelques conseils généraux concernant les problèmes courants que vous pouvez rencontrer lors de l'utilisation de l'agent de dépannage Apache Spark pour Amazon EMR.

Rubriques
+ [Erreur : échec du chargement du serveur MCP](#mcp-server-failed-to-load)
+ [Observation : chargement lent des outils](#slow-tool-loading)
+ [Erreur : échec de l'invocation de l'outil avec erreur de régulation](#throttling-error)
+ [Erreur : l'outil répond avec une erreur utilisateur](#user-error)
+ [Erreur : l'outil répond avec une erreur interne](#internal-error)

### Erreur : échec du chargement du serveur MCP
<a name="mcp-server-failed-to-load"></a>
+ Vérifiez que vos configurations MCP sont correctement configurées.
+ **Validez la syntaxe JSON** :
  + Assurez-vous que votre JSON est valide et qu'il n'y a aucune erreur de syntaxe
  + Vérifiez les virgules, les guillemets ou les crochets manquants
+ Vérifiez vos AWS informations d'identification locales et vérifiez que la politique du rôle MCP IAM est correctement configurée.
+ Exécutez /mcp pour vérifier la disponibilité du serveur MCP pour le cas `Kiro-CLI`

### Observation : chargement lent des outils
<a name="slow-tool-loading"></a>
+ Le chargement des outils peut prendre quelques secondes lors de la première tentative de lancement du serveur.
+ Si aucun outil n'apparaît, essayez de redémarrer le chat.
+ Exécutez `/tools` la commande pour vérifier la disponibilité de l'outil.
+ Exécuter `/mcp` si le serveur est lancé sans erreur.

### Erreur : échec de l'invocation de l'outil avec erreur de régulation
<a name="throttling-error"></a>
+ Si vous atteignez votre limite de service, attendez quelques secondes pour lancer un appel d'outil si vous voyez une exception de limitation.

### Erreur : l'outil répond avec une erreur utilisateur
<a name="user-error"></a>
+ AccessDeniedException - vérifiez le message d'erreur et corrigez le problème d'autorisation.
+ InvalidInputException - vérifiez le message d'erreur et corrigez les paramètres d'entrée de l'outil.
+ ResourceNotFoundException - vérifiez le message d'erreur et corrigez le paramètre d'entrée pour la référence aux ressources.

### Erreur : l'outil répond avec une erreur interne
<a name="internal-error"></a>
+ Si cela s'affiche, `The service is handling high-volume requests` veuillez réessayer d'invoquer l'outil dans quelques secondes.
+ Si vous voyez, `INTERNAL SERVICE EXCEPTION` veuillez documenter l'identifiant d'analyse, le nom de l'outil, tout message d'erreur disponible dans le journal MCP ou la réponse de l'outil, ainsi que l'historique des conversations désinfecté en option, puis contactez le AWS support.

## QUESTIONS-RÉPONSES
<a name="spark-troubleshooting-qa"></a>

### 1. Dois-je activer le paramètre « confiance » pour les outils par défaut ?
<a name="qa-trust-setting"></a>

N'activez pas le paramètre « trust » par défaut pour tous les appels d'outils au départ et utilisez un environnement de construction versionné par git lorsque vous acceptez les recommandations de code. Passez en revue l'exécution de chaque outil pour comprendre les modifications apportées.

### 2. Quels sont les exemples d'instructions courants pour tirer parti des outils de résolution des problèmes ?
<a name="qa-example-prompts"></a>

Reportez-vous à [Exemples rapides](spark-troubleshooting-agent-prompt-examples.md) des exemples rapides sur l'utilisation des outils de résolution des problèmes.

### 3. Quelles données sont transmises au LLM et comment sont-elles traitées ?
<a name="qa-data-transmitted-to-llm"></a>

Les données et les fichiers des clients restent dans la AWS région que vous avez choisie et ne sont pas transmis d'une région à l'autre. Lorsque l'agent opère dans une région qui utilise l'inférence interrégionale globale d'Amazon Bedrock, le service peut acheminer les demandes vers la région la plus proche disposant de la capacité disponible en fonction de la demande. Dans de tels cas, seules les métadonnées extraites des journaux des clients et les résultats d'inférence traités sont transmis, et non les données ou fichiers clients sous-jacents. Toutes les données sont masquées par PII avant d'être envoyées au LLM pour traitement, que l'inférence ait lieu dans la même région ou soit acheminée vers une autre région. Pour plus de détails sur le fonctionnement de l'inférence interrégionale et sur les régions concernées, voir. [Traitement interrégional pour l'agent de résolution des problèmes Apache Spark](spark-troubleshooting-cross-region-processing.md)

# Le flux de travail des agents de dépannage de Spark en détail
<a name="spark-troubleshooting-agent-workflow"></a>

Pour lancer le processus de dépannage, vous devez accéder aux identifiants de vos applications Spark défaillantes exécutées sur des plateformes compatibles (EMR-EC2, EMR Serverless, AWS Glue ou Amazon Data Notebooks). SageMaker L'application doit disposer de journaux accessibles, d'un serveur d'historique Spark et de détails de configuration. Assurez-vous de disposer des autorisations nécessaires pour accéder aux ressources de la plateforme et aux métadonnées des applications. Une fois ces exigences établies, vous pouvez envoyer une invite telle que la suivante pour lancer le processus de résolution des problèmes :

```
Analyze my EMR step execution failure, EMR id <step-id> with cluster id <cluster-id>
```

À ce stade, l'agent va orchestrer le dépannage à l'aide d'outils spécialisés. Le flux de travail suit les étapes suivantes :

1. **Extraction de fonctionnalités et création de contexte** : l'agent collecte et analyse automatiquement les données de télémétrie de votre application Spark, notamment les journaux du serveur d'historique, les paramètres de configuration et les traces d'erreurs. Vous verrez l'outil collecter des informations sur les indicateurs de performance, les modèles d'utilisation des ressources et les signatures d'échec.

1. **Analyse et identification des causes premières** : l'agent utilise les modèles d'IA et la base de connaissances Spark pour corréler les fonctionnalités extraites et identifier les causes profondes des problèmes ou défaillances de performance. Vous recevrez :
   + **Informations d'analyse** : détails techniques sur ce que l'agent a découvert et analysé.
   + **Cause première** : Explication claire de ce qui s'est mal passé et pourquoi.
   + **Évaluation initiale** : que le problème soit lié au code, à la configuration ou aux ressources, des conseils et des analyses généraux seront fournis pour les atténuer.

1. **Recommandations relatives au code** (le cas échéant) : si l'analyse identifie des problèmes liés au code sur la base de la classification des erreurs, l'agent peut suggérer de tirer parti de l'outil de recommandation de code pour fournir des recommandations spécifiques afin de mettre en œuvre le correctif de code recommandé avec le before/after code exact et les remplacements suggérés.

Le processus de résolution des problèmes est itératif : vous pouvez poursuivre la conversation pour approfondir des problèmes spécifiques ; vous pouvez également utiliser les outils de manière interactive dans le cadre de notre développement de code Spark local pour corriger des bogues de code ou améliorer votre code en permanence.

# Exemples rapides
<a name="spark-troubleshooting-agent-prompt-examples"></a>

Voici une liste d'exemples rapides qui peuvent être utilisés dans le cadre de l'expérience de dépannage.

## 1. Résoudre les problèmes d'exécution d'une tâche Spark
<a name="troubleshoot-job-failure"></a>

Résolution des problèmes liés à l'EMR sur EC2 :

```
Troubleshoot my EMR-EC2 step with id s-xxxxxxxxxxxx on cluster j-xxxxxxxxxxxxx
```

Résolution des problèmes liés à Glue Job :

```
Troubleshoot my Glue job with job run id jr_xxxxxxxxxxxxxxxxxxxxxxxxxxxx and job name test_job
```

Résolution des problèmes liés à l'EMR sans serveur :

```
Troubleshoot my EMR-Serverless job run with application id 00xxxxxxxx and job run id 00xxxxxxxx
```

## 2. Demande de recommandation de correction de code
<a name="request-code-fix"></a>

Demandez une recommandation de correction de code pour EMR sur une tâche EC2 :

```
Recommend code fix for my EMR-EC2 step with id s-STEP_ID on cluster j-CLUSTER_ID
```

Demandez une recommandation de correction de code pour la tâche Glue :

```
Recommend code fix for my Glue job with job run id jr_JOB_RUN_ID and job name test_job
```

# Configuration du rôle IAM
<a name="spark-troubleshooting-agent-iam-setup"></a>

La CloudFormation pile des instructions de configuration automatise la configuration du rôle IAM pour vous. Si vous souhaitez l'exécuter manuellement, veuillez suivre les instructions ci-dessous :

## Configuration du rôle IAM pour le serveur MCP
<a name="iam-role-mcp-server"></a>

Pour accéder au serveur MCP géré par SMUS, un rôle IAM est requis avec la politique en ligne suivante :

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowUseSagemakerUnifiedStudioMcpServer",
            "Effect": "Allow",
            "Action": [
                "sagemaker-unified-studio-mcp:InvokeMcp",
                "sagemaker-unified-studio-mcp:CallReadOnlyTool",
                "sagemaker-unified-studio-mcp:CallPrivilegedTool"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

Au cours des prochaines étapes, nous allons créer un profil pour ce rôle. Le compte qui assume ce rôle pour obtenir les informations d'identification doit être ajouté à la politique d'attribution du rôle.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccountToAssumeRole",
      "Effect": "Allow",
      "Principal": { "AWS": "arn:aws:iam::<accountId>:root" },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

## Autorisations supplémentaires par mode de déploiement (EMR-EC2/EMR-S/Glue)
<a name="additional-permissions"></a>

### Applications EMR-EC2
<a name="emr-ec2-permissions"></a>

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EMREC2ReadAccess",
            "Effect": "Allow",
            "Action": [
                "elasticmapreduce:DescribeCluster",
                "elasticmapreduce:DescribeStep",
                "elasticmapreduce:ListSteps",
                "elasticmapreduce:ListClusters",
                "elasticmapreduce:DescribeJobFlows"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "EMRS3LogAccess",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": "*"
        },
        {
            "Sid": "EMRPersistentApp",
            "Effect": "Allow",
            "Action": [
                "elasticmapreduce:CreatePersistentAppUI",
                "elasticmapreduce:DescribePersistentAppUI",
                "elasticmapreduce:GetPersistentAppUIPresignedURL"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

### Emplois pour Glue
<a name="glue-permissions"></a>

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GlueReadAccess",
            "Effect": "Allow",
            "Action": [
                "glue:GetJob",
                "glue:GetJobRun",
                "glue:GetJobRuns",
                "glue:GetJobs",
                "glue:BatchGetJobs"
            ],
            "Resource": [
                "arn:aws:glue:*:<account id>:job/*"
            ]
        },
        {
            "Sid": "GlueCloudWatchLogsAccess",
            "Effect": "Allow",
            "Action": [
                "logs:GetLogEvents",
                "logs:FilterLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:<account id>:log-group:/aws/glue/*"
            ]
        },
        {
            "Sid": "GlueSparkWebUI",
            "Effect": "Allow",
            "Action": [
                "glue:RequestLogParsing",
                "glue:GetLogParsingStatus",
                "glue:GetEnvironment",
                "glue:GetStage",
                "glue:GetStages",
                "glue:GetStageFiles",
                "glue:BatchGetStageFiles",
                "glue:GetStageAttempt",
                "glue:GetStageAttemptTaskList",
                "glue:GetStageAttemptTaskSummary",
                "glue:GetExecutors",
                "glue:GetExecutorsThreads",
                "glue:GetStorage",
                "glue:GetStorageUnit",
                "glue:GetQueries",
                "glue:GetQuery",
                "glue:GetDashboardUrl"
            ],
            "Resource": [
                "arn:aws:glue:*:<account id>:job/*"
            ]
        },
        {
            "Sid": "GluePassRoleAccess",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": "glue.amazonaws.com"
                }
            }
        }
    ]
}
```

### Applications EMR sans serveur
<a name="emr-serverless-permissions"></a>

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EMRServerlessReadAccess",
            "Effect": "Allow",
            "Action": [
                "emr-serverless:GetJobRun",
                "emr-serverless:GetApplication",
                "emr-serverless:ListApplications",
                "emr-serverless:ListJobRuns",
                "emr-serverless:ListJobRunAttempts",
                "emr-serverless:GetDashboardForJobRun",
                "emr-serverless:ListTagsForResource"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "EMRServerlessCloudWatchLogsAccess",
            "Effect": "Allow",
            "Action": [
                "logs:GetLogEvents",
                "logs:FilterLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:<account id>:log-group:/aws/emr-serverless/*"
            ]
        },
        {
            "Sid": "EMRServerlessS3LogsAccess",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": "*"
        }
    ]
}
```

### Autorisations KMS - CloudWatch Journaux
<a name="kms-permissions"></a>

Si les CloudWatch journaux sont chiffrés à l'aide d'une clé CMK, ajoutez la politique suivante afin que le service puisse lire les journaux des applications sans serveur EMR.

```
{
    "Effect": "Allow",
    "Action": [
        "kms:Decrypt",
        "kms:DescribeKey"
    ],
    "Resource": "arn:aws:kms:<region>:<account-id>:key/<cw-logs-cmk-id>"
}
```

# Utilisation des outils de dépannage de Spark
<a name="spark-troubleshooting-agent-using-tools"></a>

## Outils de résolution des problèmes disponibles
<a name="available-tools"></a>

Le service MCP fournit différents outils pour l'agent de résolution des problèmes Spark. Les principaux outils sont les suivants :


| Nom de l'outil | Catégorie d'outil | Description | 
| --- | --- | --- | 
| analyse\$1spark\$1workload | Analyse des causes profondes | Fournit un dépannage détaillé pour les charges de travail Apache Spark défaillantes | 
| recommandation du code spark\$1code | Recommandation de correction de code | Fournit des recommandations de code Apache Spark en cas d'échec des tâches | 

# Configuration des points de terminaison VPC d'interface pour Amazon Unified Studio MCP SageMaker
<a name="spark-troubleshooting-agent-vpc-endpoints"></a>

Vous pouvez établir une connexion privée entre votre VPC et le service Amazon SageMaker Unified Studio MCP en créant un point de terminaison *VPC* d'interface. Les points de terminaison de l'interface sont alimentés par [Amazon VPC](https://aws.amazon.com/vpc/), qui vous permet d'accéder en privé au serveur MCP de votre VPC sans passerelle Internet, appareil NAT, connexion VPN ou connexion. Les instances de votre VPC n'ont pas besoin d'adresses IP publiques pour communiquer avec le service MCP et le trafic entre votre VPC et le service MCP ne quitte pas le réseau Amazon.

Chaque point de terminaison d'interface est représenté par une ou plusieurs [interfaces réseau élastiques](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) dans vos sous-réseaux VPC. Pour plus d'informations, consultez la section [Points de terminaison VPC d'interface dans le guide](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) de l'utilisateur Amazon *VPC.*

## Étape 1 : Création d'un point de terminaison VPC d'interface pour Amazon SageMaker Unified Studio MCP
<a name="create-vpc-endpoint"></a>

Vous pouvez créer un point de terminaison VPC pour le service Amazon SageMaker Unified Studio MCP à l'aide de la console Amazon VPC ou du. AWS CLI Pour plus d’informations, consultez [Création d’un point de terminaison d’interface](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint) dans le *Guide de l’utilisateur Amazon VPC*.

Créez un point de terminaison VPC pour Amazon SageMaker Unified Studio MCP en utilisant le nom de service suivant :
+ com.amazonaws. *<aws-region>*. sagemaker-unified-studio-mcp

Si vous activez le DNS privé pour le point de terminaison, vous pouvez envoyer des demandes d'API à Amazon SageMaker Unified Studio MCP en utilisant son nom DNS par défaut pour la région, par exemple, `sagemaker-unified-studio-mcp.us-east-1.api.aws`

Pour plus d’informations, consultez [Accès à un service via un point de terminaison d’interface](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#access-service-though-endpoint) dans le *Guide de l’utilisateur Amazon VPC*.

## Étape 2 : Création d'une politique de point de terminaison VPC pour Amazon SageMaker Unified Studio MCP
<a name="create-vpc-endpoint-policy"></a>

Vous pouvez associer une politique de point de terminaison à votre point de terminaison VPC qui contrôle l'accès à Amazon SageMaker Unified Studio MCP. La politique spécifie les informations suivantes :
+ Le principal qui peut exécuter des actions.
+ Les actions qui peuvent être effectuées.
+ Les ressources sur lesquelles les actions peuvent être exécutées.

Pour plus d’informations, consultez [Contrôle de l’accès aux services avec points de terminaison d’un VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) dans le *Guide de l’utilisateur Amazon VPC*.

### Exemple : politique de point de terminaison VPC permettant à MCP d'accéder à un rôle IAM spécifique
<a name="vpc-endpoint-policy-example"></a>

Voici un exemple de politique de point de terminaison pour l'accès à Amazon SageMaker Unified Studio MCP. Lorsqu'elle est attachée à un point de terminaison, cette politique accorde l'accès aux actions Amazon SageMaker Unified Studio MCP répertoriées pour un principal de rôle IAM spécifique sur toutes les ressources.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::ACCOUNT-ID:role/YourRoleName"
      },
      "Action": [
        "sagemaker-unified-studio-mcp:InvokeMcp",
        "sagemaker-unified-studio-mcp:CallReadOnlyTool",
        "sagemaker-unified-studio-mcp:CallPrivilegedTool"
      ],
      "Resource": "*"
    }
  ]
}
```

## Étape 3 : test de votre VPC
<a name="test-vpc-endpoint"></a>

La `curl` commande valide la connectivité end-to-end réseau entre votre réseau VPC (EC2) et le point de terminaison VPC en effectuant une demande. HTTP/HTTPS Une réponse curl recevant un message du serveur MCP confirme que le chemin réseau complet est fonctionnel.

### Méthode 1 : avec le DNS privé activé (recommandé)
<a name="test-private-dns-enabled"></a>

```
curl https://sagemaker-unified-studio-mcp.us-east-1.api.aws/spark-troubleshooting/mcp
```

### Méthode 2 : sans activation du DNS privé
<a name="test-private-dns-disabled"></a>

```
curl -k https://vpce-0069xxxx-ejwhxxx.sagemaker-unified-studio-mcp.us-east-1.vpce.amazonaws.com/spark-troubleshooting/mcp
```

**Note**  
L'`-k`indicateur contourne la vérification du certificat SSL en raison d'une incompatibilité du nom d'hôte entre le nom DNS du point de terminaison du VPC et le nom commun (CN) du certificat.

Dans les deux cas, la commande curl renvoie une réponse :`{"Message":"...."}`. Le retour avec un message vérifie que le chemin réseau est correctement connecté au point de terminaison VPC du service MCP.

## Étape 4 : Commencez à utiliser le point de terminaison VPC MCP
<a name="use-vpc-endpoint"></a>

Une fois que vous avez vérifié la connexion, vous pouvez suivre les étapes pour configurer le MCP dans[Configuration de l'agent de dépannage](spark-troubleshooting-agent-setup.md). Utilisez simplement le point de terminaison VPC privé dans votre configuration MCP.

# Traitement interrégional pour l'agent de résolution des problèmes Apache Spark
<a name="spark-troubleshooting-cross-region-processing"></a>

L'agent de résolution des problèmes Apache Spark utilise l'inférence entre régions pour traiter les demandes en langage naturel et générer des réponses. Avec l'inférence entre régions, l'agent achemine automatiquement votre demande d'inférence afin d'optimiser les performances, de maximiser les ressources informatiques disponibles et la disponibilité des modèles, et de fournir la meilleure expérience client possible. Le type d'inférence entre régions utilisé dépend de la région dans laquelle vous exécutez l'agent de résolution des problèmes Apache Spark. Dans la plupart des régions, l'agent sélectionne la région optimale au sein de votre zone géographique pour traiter vos demandes d'inférence. Toutefois, dans certaines régions, une demande d'inférence faite par l'agent est acheminée de manière sécurisée vers toutes les ressources informatiques disponibles dans toutes les régions commerciales AWS du monde.

## Inférence interrégionale
<a name="cross-region-inference-overview"></a>

L'agent de résolution des problèmes Apache Spark est alimenté par Amazon Bedrock et utilise l'inférence entre régions pour répartir le trafic entre les différentes AWS régions afin d'améliorer les performances et la fiabilité de l'inférence des grands modèles de langage (LLM).

Bien que l'inférence entre régions ne change pas l'endroit où votre application Spark ou votre expérience de dépannage sont hébergées ou où vos données sont stockées, vos invites de saisie et les résultats de sortie peuvent être transmis à différentes régions pour le traitement des inférences. Toutes les données sont transmises cryptées sur le réseau sécurisé d'Amazon.

L'utilisation de l'inférence interrégionale n'entraîne aucun coût supplémentaire.

## Régions prises en charge pour l'inférence interrégionale
<a name="supported-regions-cross-region"></a>

 **Régions utilisant l'inférence géographique entre régions** 

Pour la plupart des régions, les demandes d'inférence entre régions sont conservées dans les AWS régions qui font partie de la même zone géographique que celle où vous exécutez l'agent de résolution des problèmes Apache Spark. Par exemple, une demande émanant de l'agent de la région de l'Est des États-Unis (Virginie du Nord) est acheminée uniquement vers AWS les régions situées dans la zone géographique des États-Unis d'Amérique. Le tableau suivant décrit les régions vers lesquelles vos demandes peuvent être acheminées en fonction de la zone géographique d'origine de la demande :


| Géographie prise en charge | Régions d'inférence | 
| --- | --- | 
|  États-Unis  |  USA Est (Virginie du Nord) (us-east-1), USA Ouest (Oregon) (us-west-2), USA Est (Ohio) (us-east-2), USA Ouest (Californie du Nord) (us-west-1)  | 
|  Europe  |  Europe (Francfort) (eu-central-1), Europe (Irlande) (eu-ouest-1), Europe (Paris) (eu-ouest-3), Europe (Stockholm) (eu-nord-1), Europe (Londres) (eu-ouest-2)  | 
|  Asie-Pacifique  |  Asie-Pacifique (Tokyo) (ap-northeast-1), Asie-Pacifique (Séoul) (ap-northeast-2), Asie-Pacifique (Mumbai) (ap-south-1)  | 

### Régions utilisant l'inférence interrégionale globale
<a name="global-cross-region-inference"></a>

**Important**  
Les AWS régions suivantes utilisent l'inférence interrégionale globale. Lorsque vous utilisez l'agent de résolution des problèmes Apache Spark dans ces régions, vos demandes peuvent être transmises dans le monde entier à d'autres AWS régions pour le traitement des inférences afin d'optimiser les performances et la disponibilité :  
Amérique du Sud (São Paulo) (sa-east-1)
Asie-Pacifique (Singapour) (ap-southeast-1)
Asie-Pacifique (Sydney) (ap-southeast-2)
Canada (Centre) (ca-central-1)

# Journalisation des appels MCP Amazon SageMaker Unified Studio à l'aide de AWS CloudTrail
<a name="spark-troubleshooting-cloudtrail-integration"></a>

Le serveur Amazon SageMaker Unified Studio MCP est intégré à AWS CloudTrail un service qui fournit un enregistrement des actions effectuées par un utilisateur, un rôle ou un AWS service dans le serveur Amazon SageMaker Unified Studio MCP. CloudTrail capture tous les appels d'API pour le serveur Amazon SageMaker Unified Studio MCP sous forme d'événements. Les appels capturés incluent des appels vers le serveur MCP Amazon SageMaker Unified Studio et des appels de code vers d'autres AWS opérations lors de l'exécution de l'outil depuis le serveur SageMaker Unified Studio MCP. Si vous créez un suivi, vous pouvez activer la diffusion continue d' CloudTrail événements vers un compartiment Amazon S3, y compris des événements pour le serveur MCP Amazon SageMaker Unified Studio. Si vous ne configurez pas de suivi, vous pouvez toujours consulter les événements les plus récents dans la CloudTrail console dans **Historique des événements**. À l'aide des informations collectées par CloudTrail, vous pouvez déterminer la demande envoyée au serveur Amazon SageMaker Unified Studio MCP, l'adresse IP à partir de laquelle la demande a été faite, l'auteur de la demande, la date à laquelle elle a été faite, ainsi que des informations supplémentaires.

Pour en savoir plus CloudTrail, consultez le [guide de AWS CloudTrail l'utilisateur](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/).

## Informations sur le serveur MCP Amazon SageMaker Unified Studio dans CloudTrail
<a name="sagemaker-mcp-info-in-cloudtrail"></a>

CloudTrail est activé sur votre AWS compte lorsque vous le créez. Lorsqu'une activité se produit sur le serveur Amazon SageMaker Unified Studio MCP, cette activité est enregistrée dans un CloudTrail événement avec d'autres événements de AWS service dans **l'historique** des événements. Vous pouvez consulter, rechercher et télécharger les événements récents dans votre AWS compte. Pour plus d'informations, consultez la section [Affichage des événements à l'aide de l'historique des CloudTrail événements](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html).

Pour un enregistrement continu des événements de votre AWS compte, y compris des événements relatifs au serveur SageMaker Unified Studio MCP, créez une trace. Un suivi permet CloudTrail de fournir des fichiers journaux à un compartiment Amazon S3. Par défaut, lorsque vous créez un parcours dans la console, celui-ci s'applique à toutes les AWS régions. Le journal enregistre les événements de toutes les régions de la AWS partition et transmet les fichiers journaux au compartiment Amazon S3 que vous spécifiez. En outre, vous pouvez configurer d'autres AWS services pour analyser plus en détail les données d'événements collectées dans les CloudTrail journaux et agir en conséquence. Pour plus d’informations, consultez les ressources suivantes :
+ [Présentation de la création d’un journal de suivi](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail services et intégrations pris en charge](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html)
+ [Configuration des notifications Amazon SNS pour CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/configure-sns-notifications-for-cloudtrail.html)
+ [Réception de fichiers CloudTrail journaux de plusieurs régions](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html) et [réception de fichiers CloudTrail journaux de plusieurs comptes](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

Tous les appels d'outils du serveur SageMaker Unified Studio MCP et les appels d'API aux AWS services pendant les exécutions de l'outil sont enregistrés par. CloudTrail Par exemple, les appels aux différents outils et les appels de AWS service effectués à partir des outils génèrent des entrées dans les fichiers CloudTrail journaux.

Chaque événement ou entrée de journal contient des informations sur la personne ayant initié la demande. Les informations relatives à l’identité permettent de déterminer les éléments suivants :
+ Si la demande a été effectuée avec des informations d’identification d’utilisateur root ou IAM.
+ Si la demande a été effectuée avec des informations d’identification de sécurité temporaires pour un rôle ou un utilisateur fédéré.
+ Si la demande a été faite par un autre AWS service.

Pour de plus amples informations, veuillez consulter l'[élément userIdentity CloudTrail ](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html).

## Comprendre les entrées du fichier journal du serveur Amazon SageMaker Unified Studio MCP
<a name="understanding-mcp-log-entries"></a>

Un suivi est une configuration qui permet de transmettre des événements sous forme de fichiers journaux à un compartiment Amazon S3 que vous spécifiez. CloudTrail les fichiers journaux contiennent une ou plusieurs entrées de journal. Un événement représente une demande unique provenant de n'importe quelle source et inclut des informations sur l'action demandée, la date et l'heure de l'action, les paramètres de la demande, etc. CloudTrail les fichiers journaux ne constituent pas une trace ordonnée des appels d'API publics, ils n'apparaissent donc pas dans un ordre spécifique.

L'exemple suivant montre une entrée de CloudTrail journal illustrant l'`CallTool`action.

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        ...
    },
    "eventTime": "...",
    "eventSource": "sagemaker-unified-studio-mcp.amazonaws.com",
    "eventName": "CallPrivilegedTool",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "...",
    "userAgent": "...",
    "requestParameters": {
        "id": 1,
        "method": "tools/call",
        "params": {
            "name": "generate_spark_upgrade_plan",
            "arguments": "***",
            "_meta": {
                "progressToken": 1
            }
        },
        "jsonrpc": "2.0"
    },
    "responseElements": {
        "result": {
            "content": "***",
            "structuredContent": "***",
            "isError": false
        },
        "id": 1,
        "jsonrpc": "2.0"
    },
    "requestID": "12345678-1234-1234-1234-123456789012",
    "eventID": "87654321-4321-4321-4321-210987654321",
    "readOnly": false,
    "eventType": "AwsMcpEvent",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "eventCategory": "Management"
}
```

L'exemple suivant montre une entrée de CloudTrail journal qui illustre l'`AddJobFlowSteps`action d'Amazon SageMaker Unified Studio MCP lors de l'appel d'un outil de mise à niveau.

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "...",
        "arn": "...",
        "accountId": "123456789012",
        "accessKeyId": "...",
        "sessionContext": {
            ...
        },
        "invokedBy": "sagemaker-unified-studio-mcp.amazonaws.com"
    },
    "eventTime": "...",
    "eventSource": "elasticmapreduce.amazonaws.com",
    "eventName": "AddJobFlowSteps",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "sagemaker-unified-studio-mcp.amazonaws.com",
    "userAgent": "sagemaker-unified-studio-mcp.amazonaws.com",
    "requestParameters": {
        "jobFlowId": "j-2PY4KXXXXXX63",
        "steps": [
            ...
        ]
    },
    "responseElements": {
        "stepIds": [
            ...
        ]
    },
    "requestID": "12345678-1234-1234-1234-123456789013",
    "eventID": "87654321-4321-4321-4321-210987654322",
    "readOnly": false,
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "sharedEventID": "12345678-1234-1234-1234-123456789012",
    "vpcEndpointId": "sagemaker-unified-studio-mcp.amazonaws.com",
    "vpcEndpointAccountId": "sagemaker-unified-studio-mcp.amazonaws.com",
    "eventCategory": "Management"
}
```

# Améliorations des services pour les agents Apache Spark
<a name="spark-agents-service-improvements"></a>

L'agent Apache Spark pour Amazon EMR peut utiliser du contenu, par exemple, pour aider l'agent à fournir de meilleures réponses aux questions courantes, à résoudre des problèmes opérationnels ou à des fins de débogage.

## Contenu susceptible d' AWS être utilisé pour améliorer le service
<a name="content-used-for-improvement"></a>
+ Vos demandes en langage naturel et vos réponses générées par les agents Apache Spark pour Amazon EMR, AWS Glue et Amazon Notebooks SageMaker 

## Contenu qui AWS n'est pas utilisé pour améliorer le service
<a name="content-not-used-for-improvement"></a>
+ Code que vous écrivez vous-même pour les applications Spark
+ SageMaker Contexte et métadonnées du bloc-notes
+ Données issues de votre catalogue de données AWS Glue ou d'autres sources de données

Seuls les employés d’Amazon auront accès à ces données. Votre confiance, votre confidentialité et la sécurité du contenu de vos clients sont nos priorités absolues et garantissent que notre utilisation est conforme à nos engagements envers vous. Pour plus d’informations, consultez FAQ sur la confidentialité des données.

## Comment se désinscrire
<a name="how-to-opt-out"></a>

Pour refuser la collecte de données pour les agents Apache Spark, configurez une politique de désactivation des services d'intelligence artificielle dans AWS Organizations for Amazon SageMaker Unified Studio MCP Service. Pour plus d'informations, consultez les [politiques de désinscription des services d'intelligence artificielle](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html) dans le *Guide de l'utilisateur AWS des Organizations*.

Lorsque vous configurez une politique de désinscription des services d'intelligence artificielle, cela a les effets suivants :
+ AWS supprimera les données collectées et stockées pour améliorer le service avant votre désinscription (le cas échéant).
+ Après votre désinscription, AWS nous ne collecterons ni ne stockerons plus ces données.
+ AWS n'utilisera plus votre contenu pour améliorer le service.