

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.

# Utilisation d'Infrastructure Composer avec Amazon Relational Database Service (Amazon RDS)
<a name="using-composer-services-rds"></a>

AWS Infrastructure Composer propose une intégration avec Amazon Relational Database Service (Amazon RDS). À l'aide de la carte de composants améliorée de la **base de données RDS (externe)** d'Infrastructure Composer, vous pouvez connecter votre application aux DB clusters, instances et proxys Amazon RDS définis sur un autre modèle CloudFormation or AWS Serverless Application Model ()AWS SAM.

La carte de composants améliorée de la **base de données RDS (externe)** représente les ressources Amazon RDS définies sur un autre modèle. Cela inclut notamment les éléments suivants :
+ DBCluster ou instance Amazon RDS défini sur un autre modèle
+ Proxy Amazon RDS DB

La carte de composant améliorée de la **base de données RDS (externe)** est disponible dans la palette **Ressources**.

![Une carte de composants améliorée (externe) pour la base de données Amazon RDS.](http://docs.aws.amazon.com/fr_fr/infrastructure-composer/latest/dg/images/aac_use_rds_01.png)


Pour utiliser cette carte, faites-la glisser sur le canevas Infrastructure Composer, configurez-la et connectez-la à d'autres ressources.

Vous pouvez connecter votre application au DB cluster ou à l'instance Amazon RDS externe via une fonction Lambda.

## Exigences
<a name="using-composer-services-rds-requirements"></a>

Pour utiliser cette fonctionnalité, vous devez satisfaire aux exigences suivantes :

1. Votre DB cluster, instance ou proxy Amazon RDS externe doit être utilisé AWS Secrets Manager pour gérer le mot de passe utilisateur. Pour en savoir plus, consultez la section [Gestion des mots de passe avec Amazon RDS et](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) le AWS Secrets Manager guide de l'*utilisateur Amazon RDS.*

1. Votre application dans Infrastructure Composer doit être un nouveau projet ou doit avoir été créée à l'origine dans Infrastructure Composer.

## Procédure
<a name="using-composer-services-rds-connect"></a>

### Étape 1 : Configuration de la carte de base de données RDS externe
<a name="using-composer-services-rds-connect-step1"></a>

Dans la palette **Ressources**, faites glisser une carte de composant améliorée **de base de données RDS (externe)** sur le canevas. 

Sélectionnez la carte et choisissez **Détails** ou double-cliquez sur la carte pour afficher le panneau **des propriétés des ressources**. Le panneau des propriétés des ressources de la carte apparaîtra :

![Le panneau des propriétés des ressources d'une carte de composant améliorée de base de données RDS (externe).](http://docs.aws.amazon.com/fr_fr/infrastructure-composer/latest/dg/images/aac_use_rds_03.png)


Vous pouvez configurer les éléments suivants ici :
+ **ID logique** : nom unique pour votre DB cluster, instance ou proxy Amazon RDS externe. Cet identifiant ne doit pas nécessairement correspondre à la valeur d'identifiant logique de votre DB ressource Amazon RDS externe.
+ **Secret de base** de données : identifiant du AWS Secrets Manager secret associé à votre DB cluster, instance ou proxy Amazon RDS. Ce champ accepte les valeurs suivantes :
  + **Valeur statique** : identifiant unique du secret de base de données, tel que l'ARN du secret. Voici un exemple : `arn:aws:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c` Pour plus d'informations, consultez [Concepts AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html) dans le *Guide de l'utilisateur AWS Secrets Manager *.
  + **Valeur de sortie** : lorsqu'un secret de Secrets Manager est déployé AWS CloudFormation, une valeur de sortie est créée. Vous pouvez spécifier la valeur de sortie ici à l'aide de la fonction `[Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)` intrinsèque. Par exemple, `!ImportValue MySecret`.
  + **Valeur du magasin de paramètres SSM — Vous pouvez stocker** votre secret dans le magasin de paramètres SSM et spécifier sa valeur à l'aide d'une référence dynamique. Par exemple, `{{resolve:ssm:MySecret}}`. Pour plus d'informations, consultez la section [Paramètres SSM](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-ssm) dans le *guide de l'AWS CloudFormation utilisateur*.
+ **Nom d'hôte de base** de données : nom d'hôte qui peut être utilisé pour se connecter à votre DB cluster, instance ou proxy Amazon RDS. Cette valeur est spécifiée dans le modèle externe qui définit votre ressource Amazon RDS. Les valeurs suivantes sont acceptées :
  + **Valeur statique** : identifiant unique du nom d'hôte de la base de données, tel que l'adresse du point de terminaison. Voici un exemple : `mystack-mydb-1apw1j4phylrk.cg034hpkmmjt.us-east-2.rds.amazonaws.com`
  + **Valeur de sortie : valeur** de sortie d'un DB cluster, d'une instance ou d'un proxy Amazon RDS déployé. Vous pouvez spécifier la valeur de sortie à l'aide de la fonction `[Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)` intrinsèque. Par exemple, `!ImportValue myStack-myDatabase-abcd1234`.
  + **Valeur du magasin de paramètres SSM : vous pouvez stocker** le nom d'hôte de la base de données dans le magasin de paramètres SSM et spécifier sa valeur à l'aide d'une référence dynamique. Par exemple, `{{resolve:ssm:MyDatabase}}`.
+ **Port de base** de données : numéro de port qui peut être utilisé pour se connecter à votre DB cluster, instance ou proxy Amazon RDS. Cette valeur est spécifiée dans le modèle externe qui définit votre ressource Amazon RDS. Les valeurs suivantes sont acceptées :
  + **Valeur statique** : port de base de données. Par exemple, `3306`.
  + **Valeur de sortie : valeur** de sortie d'un DB cluster, d'une instance ou d'un proxy Amazon RDS déployé. Par exemple, `!ImportValue myStack-MyRDSInstancePort`.
  + **Valeur provenant du magasin de paramètres SSM : vous pouvez stocker** le nom d'hôte de la base de données dans le magasin de paramètres SSM et spécifier sa valeur à l'aide d'une référence dynamique. Par exemple, `{{resolve:ssm:MyRDSInstancePort}}`.

**Note**  
Seule la valeur d'ID logique doit être configurée ici. Vous pouvez configurer les autres propriétés au moment du déploiement si vous le souhaitez.

### Étape 2 : Connecter une carte de fonction Lambda
<a name="using-composer-services-rds-connect-step2"></a>

Dans la palette **Ressources**, faites glisser une carte de composant améliorée de **la fonction Lambda** sur le canevas.

Connectez le port gauche de la carte **Lambda Function** au port droit de la carte de **base de données RDS (externe)**.

![Une carte de fonction Lambda connectée à une carte de composants améliorée (externe) de base de données RDS.](http://docs.aws.amazon.com/fr_fr/infrastructure-composer/latest/dg/images/aac_use_rds_02.png)


Infrastructure Composer fournira votre modèle pour faciliter cette connexion.

## Ce que fait Infrastructure Composer pour créer votre connexion
<a name="using-composer-services-rds-ref-how"></a>

Lorsque vous avez terminé la procédure décrite ci-dessus, Infrastructure Composer exécute des actions spécifiques pour connecter votre fonction Lambda à votre base de données.

### Lorsque vous spécifiez le DB cluster, l'instance ou le proxy Amazon RDS externe
<a name="using-composer-services-rds-ref-how-specify"></a>

Lorsque vous faites glisser une carte de **base de données RDS (externe)** sur le canevas, Infrastructure Composer met à jour les `Parameters` sections `Metadata` et de votre modèle selon les besoins. Voici un exemple :

```
Metadata:
  AWS::Composer::ExternalResources:
    ExternalRDS:
      Type: externalRDS
      Settings:
        Port: !Ref ExternalRDSPort
        Hostname: !Ref ExternalRDSHostname
        SecretArn: !Ref ExternalRDSSecretArn
Parameters:
  ExternalRDSPort:
    Type: Number
  ExternalRDSHostname:
    Type: String
  ExternalRDSSecretArn:
    Type: String
```

[Les métadonnées](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html) sont une section de CloudFormation modèle utilisée pour stocker les informations relatives à votre modèle. Les métadonnées spécifiques à Infrastructure Composer sont stockées sous la clé de `AWS::Composer::ExternalResources` métadonnées. Infrastructure Composer stocke ici les valeurs que vous spécifiez pour votre DB cluster, instance ou proxy Amazon RDS.

La section [Paramètres](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html) d'un CloudFormation modèle est utilisée pour stocker des valeurs personnalisées qui peuvent être insérées dans l'ensemble de votre modèle lors du déploiement. Selon le type de valeurs que vous fournissez, Infrastructure Composer peut stocker ici des valeurs pour votre DB cluster, instance ou proxy Amazon RDS et les spécifier dans l'ensemble de votre modèle.

Les valeurs de chaîne de la `Parameters` section `Metadata` et utilisent la valeur d'ID logique que vous spécifiez sur votre carte de **base de données RDS (externe)**. Si vous mettez à jour l'ID logique, les valeurs des chaînes changeront.

### Lors de la connexion de la fonction Lambda à votre base de données
<a name="using-composer-services-rds-ref-how-connecting"></a>

Lorsque vous connectez une carte de **fonction Lambda** à la carte de **base de données RDS (externe)**, Infrastructure Composer fournit des variables d'environnement et des politiques Gestion des identités et des accès AWS (IAM). Voici un exemple :

```
Resources:
  Function:
    Type: AWS::Serverless::Function
    Properties:
      ...
      Environment:
        Variables:
          EXTERNALRDS_PORT: !Ref ExternalRDSPort
          EXTERNALRDS_HOSTNAME: !Ref ExternalRDSHostname
          EXTERNALRDS_SECRETARN: !Ref ExternalRDSSecretArn
      Policies:
        - AWSSecretsManagerGetSecretValuePolicy:
            SecretArn: !Ref ExternalRDSSecretArn
```

Les variables d'[environnement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-environment) sont des variables qui peuvent être utilisées par votre fonction au moment de l'exécution. Pour en savoir plus, consultez la section [Utilisation des variables d'environnement Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html) dans le Guide du *AWS Lambda développeur*.

[Les politiques](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-policies) fournissent des autorisations pour votre fonction. Infrastructure Composer crée ici une politique pour autoriser l'accès en lecture depuis votre fonction à Secrets Manager afin d'obtenir votre mot de passe pour accéder au DB cluster, à l'instance ou au proxy Amazon RDS.