

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.

# Commencer à utiliser l' AWS DevOps agent à l'aide du AWS CDK
<a name="getting-started-with-aws-devops-agent-getting-started-with-aws-devops-agent-using-aws-cdk"></a>

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

Ce guide explique comment utiliser le AWS Cloud Development Kit (AWS CDK) pour créer et déployer des ressources d' AWS DevOps agent. L'application AWS CDK automatise la création d'un espace d'agents, de rôles AWS Identity and Access Management (IAM), d'une application d'opérateur et d'associations de comptes via. AWS AWS CloudFormation

L'approche AWS CDK automatise les étapes manuelles décrites dans le [guide d'intégration de la CLI](https://docs.aws.amazon.com/devopsagent/latest/userguide/getting-started-with-aws-devops-agent-cli-onboarding-guide.html) en définissant toutes les ressources requises sous forme d'infrastructure sous forme de code.

AWS DevOps L'agent est disponible dans les 6 AWS régions suivantes : USA Est (Virginie du Nord), USA Ouest (Oregon), Asie-Pacifique (Sydney), Asie-Pacifique (Tokyo), Europe (Francfort) et Europe (Irlande). Pour plus d'informations sur les régions prises en charge, consultez[Régions prises en charge](about-aws-devops-agent-supported-regions.md).

## Conditions préalables
<a name="prerequisites"></a>

Avant de commencer, assurez-vous de disposer des éléments suivants :
+ AWS Interface de ligne de commande (AWS CLI) installée et configurée avec les informations d'identification appropriées
+ Node.js version 18 ou ultérieure
+ AWS Interface de ligne de commande (CLI) CDK installée dans le monde entier. Pour installer la CLI AWS CDK, exécutez la commande suivante :

```
npm install -g aws-cdk
```
+ Un AWS compte pour le compte de surveillance (principal)
+ (Facultatif) Un deuxième AWS compte si vous souhaitez configurer la surveillance entre comptes

## Ce que couvre ce guide
<a name="what-this-guide-covers"></a>

Ce guide est divisé en deux parties :
+ **Partie 1** — Déployez un espace d'agent avec une application d'opérateur et une AWS association dans votre compte de surveillance. Une fois cette partie terminée, l'agent peut surveiller les problèmes liés à ce compte.
+ **Partie 2 (facultatif)** — Ajoutez une AWS association source pour un compte de service et déployez un rôle IAM entre comptes dans ce compte. Cette configuration permet à l'espace des agents de surveiller les ressources entre les comptes.

## Ressources créées
<a name="resources-created"></a>

### Partie 1 : DevOpsAgentStack (compte de surveillance)
<a name="part-1-devopsagentstack-monitoring-account"></a>
+ **Rôle IAM** (`DevOpsAgentRole-AgentSpace`) : assumé par le service DevOps Agent pour surveiller le compte. Inclut la politique `AIDevOpsAgentAccessPolicy` gérée et une politique en ligne qui permet de créer le rôle lié au service Resource Explorer.
+ Rôle **IAM (`DevOpsAgentRole-WebappAdmin`) : rôle** d'application opérateur avec la politique `AIDevOpsOperatorAppAccessPolicy` gérée pour les opérations de l'agent.
+ **Espace d'agent** (`MyCDKAgentSpace`) : espace d'agent central, créé à l'aide de la `AWS::DevOpsAgent::AgentSpace` CloudFormation ressource. Inclut la configuration de l'application pour les opérateurs.
+ **Association** (AWS moniteur) — Lie le compte de surveillance à l'espace des agents en utilisant la `AWS::DevOpsAgent::Association` CloudFormation ressource.
+ **Association** (AWS source) — (Facultatif) Lie le compte de service à l'espace des agents pour la surveillance entre comptes.

### Partie 2 : ServiceStack (compte de service, facultatif)
<a name="part-2-servicestack-service-account-optional"></a>
+ Rôle **IAM (`DevOpsAgentRole-SecondaryAccount`) : rôle** multicompte avec un nom fixe. Approuvé par l'espace réservé aux agents dans le compte de surveillance. Inclut la politique `AIDevOpsAgentAccessPolicy` gérée et une politique en ligne qui permet de créer le rôle lié au service Resource Explorer.
+ **Fonction Lambda** (`echo-service`) : exemple de service simple qui renvoie les événements d'entrée.

## Configuration
<a name="setup"></a>

### Étape 1 : Cloner le référentiel d'échantillons
<a name="step-1-clone-the-sample-repository"></a>

Exécutez les commandes suivantes pour cloner le référentiel et accéder au répertoire du projet :

```
git clone https://github.com/aws-samples/sample-aws-devops-agent-cdk.git
cd sample-aws-devops-agent-cdk
```

### Étape 2 : Installation des dépendances
<a name="step-2-install-dependencies"></a>

Exécutez la commande suivante pour installer les dépendances du projet :

```
npm install
```

## Partie 1 : Déploiement de l'espace agent
<a name="part-1-deploy-the-agent-space"></a>

Dans cette section, vous allez créer l'espace agent, les rôles IAM, l'application opérateur et une AWS association dans votre compte de surveillance.

### Étape 1 : configurer l'ID du compte de surveillance
<a name="step-1-configure-the-monitoring-account-id"></a>

Ouvrez `lib/constants.ts` et définissez l'identifiant de votre compte de surveillance :

L'exemple suivant montre la constante à mettre à jour :

```
export const MONITORING_ACCOUNT_ID = "<YOUR_MONITORING_ACCOUNT_ID>";
```

### Étape 2 : démarrer l'environnement AWS CDK
<a name="step-2-bootstrap-the-aws-cdk-environment"></a>

Si vous n'avez pas démarré le AWS CDK dans votre compte de surveillance, exécutez la commande suivante :

```
cdk bootstrap aws://<MONITORING_ACCOUNT_ID>/<REGION> --profile monitoring
```

### Étape 3 : Création et déploiement
<a name="step-3-build-and-deploy"></a>

Exécutez les commandes suivantes pour créer le TypeScript code et déployer la pile :

```
npm run build
cdk deploy DevOpsAgentStack --profile monitoring
```

### Étape 4 : Enregistrez les sorties de la pile
<a name="step-4-record-the-stack-outputs"></a>

Une fois le déploiement terminé, le AWS CDK imprime les sorties de la pile. Enregistrez ces valeurs pour une utilisation ultérieure.

L'exemple suivant montre le résultat attendu :

```
Outputs:
DevOpsAgentStack.AgentSpaceArn = arn:aws:aidevops:<REGION>:123456789012:agentspace/abc123
DevOpsAgentStack.AgentSpaceRoleArn = arn:aws:iam::123456789012:role/DevOpsAgentRole-AgentSpace
DevOpsAgentStack.OperatorRoleArn = arn:aws:iam::123456789012:role/DevOpsAgentRole-WebappAdmin
DevOpsAgentStack.AssociationId = assoc-xyz
```

Si vous prévoyez de terminer la partie 2, enregistrez la `AgentSpaceArn` valeur. Vous en avez besoin pour configurer la pile de comptes de service.

### Étape 5 : vérifier le déploiement
<a name="step-5-verify-the-deployment"></a>

Pour vérifier que l'espace agent a bien été créé, exécutez la commande AWS CLI suivante :

```
aws devopsagent get-agent-space \
  --agent-space-id <AGENT_SPACE_ID> \
  --region <REGION>
```

À ce stade, votre espace d'agent est déployé avec l'application opérateur activée et votre compte de surveillance associé. L'agent peut surveiller les problèmes liés à ce compte.

## Partie 2 (facultatif) : Ajouter une surveillance entre comptes
<a name="part-2-optional-add-cross-account-monitoring"></a>

Dans cette section, vous étendez la configuration afin que votre espace agent puisse surveiller les ressources d'un deuxième AWS compte (le compte de service). Cela implique deux actions :

1. Ajouter une AWS association source dans le DevOpsAgentStack qui pointe vers le compte de service.

1. Déployer le ServiceStack dans le compte de service avec un rôle IAM qui fait confiance à l'espace de l'agent.

**Important**  
**Vous devez terminer la partie 1 avant de continuer. ServiceStack Requiert le résultat `AgentSpaceArn` du DevOpsAgentStack déploiement.

### Étape 1 : configurer l'ID du compte de service
<a name="step-1-configure-the-service-account-id"></a>

Ouvrez `lib/constants.ts` et définissez l'identifiant de votre compte de service :

L'exemple suivant montre la constante à mettre à jour :

```
export const SERVICE_ACCOUNT_ID = "<YOUR_SERVICE_ACCOUNT_ID>";
```

 DevOpsAgentStack crée une AWS association source à l'aide de cet identifiant de compte. Si vous avez déployé le DevOpsAgentStack avant de définir cette valeur, redéployez-le pour créer l'association :

Exécutez les commandes suivantes pour le redéploiement :

```
npm run build
cdk deploy DevOpsAgentStack --profile monitoring
```

### Étape 2 : définir l'ARN de l'espace agent
<a name="step-2-set-the-agent-space-arn"></a>

Copiez la `AgentSpaceArn` valeur de la DevOpsAgentStack sortie (partie 1, étape 4) et définissez-la dans `lib/constants.ts` :

L'exemple suivant montre la constante à mettre à jour :

```
export const AGENT_SPACE_ARN = "arn:aws:aidevops:<REGION>:<MONITORING_ACCOUNT_ID>:agentspace/<SPACE_ID>";
```

 ServiceStack Utilise cette valeur pour définir la politique de confiance relative au rôle de compte secondaire. Le n' ServiceStack est synthétisé que lorsque cette valeur est définie.

### Étape 3 : démarrer le compte de service
<a name="step-3-bootstrap-the-service-account"></a>

Si vous n'avez pas démarré le AWS CDK dans votre compte de service, exécutez la commande suivante :

```
cdk bootstrap aws://<SERVICE_ACCOUNT_ID>/<REGION> --profile service
```

### Étape 4 : Déployez le ServiceStack
<a name="step-4-deploy-the-servicestack"></a>

Exécutez les commandes suivantes pour créer et déployer le ServiceStack en utilisant les informations d'identification du compte de service :

```
npm run build
cdk deploy ServiceStack --profile service
```

Cela crée les ressources suivantes dans le compte de service :
+ Un rôle IAM (`DevOpsAgentRole-SecondaryAccount`) qui fait confiance à l'espace des agents dans le compte de surveillance
+ Une fonction Echo Lambda (`echo-service`) comme exemple de service

### Étape 5 : vérifier le déploiement
<a name="step-5-verify-the-deployment"></a>

Pour vérifier que la fonction Lambda a été déployée avec succès, exécutez les commandes suivantes pour tester le service Echo :

```
aws lambda invoke \
  --function-name echo-service \
  --payload '{"test": "hello world"}' \
  --profile service \
  response.json
cat response.json
```

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

Cette section décrit les problèmes courants et explique comment les résoudre.

**CloudFormation type de ressource introuvable**
+ Vérifiez que vous déployez dans un[Régions prises en charge](about-aws-devops-agent-supported-regions.md).
+ Vérifiez que votre AWS CLI est configurée avec les autorisations appropriées.

**La création du rôle IAM a échoué**
+ Vérifiez que votre rôle de déploiement dispose des autorisations nécessaires pour créer des rôles IAM.
+ Vérifiez que les conditions de la politique de confiance correspondent à votre numéro de compte.

**Le déploiement entre comptes échoue avec le message « Impossible d'assumer le rôle dans le compte cible »**
+ Chaque pile doit être déployée avec les informations d'identification du compte cible. Utilisez l'`--profile`indicateur pour spécifier le profil de AWS CLI correct.
+ Vérifiez que le AWS CDK a été amorcé dans le compte cible.

**Retards de propagation de l'IAM**
+ La propagation des modifications de rôle IAM peut prendre quelques minutes. Si la création de l'espace agent échoue immédiatement après la création du rôle, attendez quelques minutes avant de procéder au redéploiement.

## Nettoyage
<a name="cleanup"></a>

Pour supprimer toutes les ressources, détruisez les piles dans l'ordre inverse.

Exécutez les commandes suivantes pour détruire les piles :

```
# If you deployed the ServiceStack, destroy it first
cdk destroy ServiceStack --profile service
# Then destroy the DevOpsAgentStack
cdk destroy DevOpsAgentStack --profile monitoring
```

**Avertissement :** Cette action supprime définitivement votre espace agent et toutes les données associées. Cette action ne peut être annulée. Assurez-vous d'avoir sauvegardé toutes les informations importantes avant de continuer.

## Considérations sur la sécurité
<a name="security-considerations"></a>
+ L'application AWS CDK crée des rôles IAM avec des politiques de confiance qui autorisent uniquement le principal du `aidevops.amazonaws.com` service à les assumer.
+ Les politiques de confiance incluent des conditions qui limitent l'accès à votre AWS compte spécifique et à l'ARN de votre espace agent.
+ Toutes les politiques suivent le principe du moindre privilège. Passez en revue et personnalisez les politiques IAM en fonction des exigences de sécurité de votre organisation.
+ Le rôle entre comptes (`DevOpsAgentRole-SecondaryAccount`) utilise un nom fixe et est limité à un ARN d'espace agent spécifique.

## Étapes suivantes
<a name="next-steps"></a>

Après avoir déployé votre AWS DevOps agent à l'aide du AWS CDK :

1. Découvrez la gamme complète des fonctionnalités de l' DevOps agent dans le [guide de l'utilisateur de l'AWS DevOps agent](https://docs.aws.amazon.com/devopsagent/latest/userguide/).

1. Envisagez d'intégrer le déploiement du AWS CDK dans vos CI/CD pipelines pour une gestion automatisée de l'infrastructure.

## Ressources supplémentaires
<a name="additional-resources"></a>
+ [AWS DevOps Guide de l'utilisateur de l'agent](https://docs.aws.amazon.com/devopsagent/latest/userguide/)
+ [Exemple de référentiel CDK](https://github.com/aws-samples/sample-aws-devops-agent-cdk) sur le site Web GitHub 
+ [Guide d'intégration à la CLI](https://docs.aws.amazon.com/devopsagent/latest/userguide/getting-started-with-aws-devops-agent-cli-onboarding-guide.html)