

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Uso de Infrastructure Composer con Amazon Relational Database Service (Amazon RDS)
<a name="using-composer-services-rds"></a>

AWS Infrastructure Composer incluye una integración con Amazon Relational Database Service (Amazon RDS). Con la tarjeta de componentes mejorada de **RDS Database (externa)** de Infrastructure Composer, puede conectar su aplicación a los DB clústeres, instancias y proxies de Amazon RDS que estén definidos en otra plantilla CloudFormation or AWS Serverless Application Model ()AWS SAM.

La tarjeta de componentes mejorada de **RDS Database (externa)** representa los recursos de Amazon RDS que están definidos en otra plantilla. Esto incluye:
+ DBClúster o instancia de Amazon RDS que está definido en otra plantilla
+ Proxy de Amazon RDS DB

La tarjeta de componentes mejorada **(externa) de la base de datos RDS** está disponible en la paleta de **recursos**.

![Una tarjeta de componentes mejorada (externa) de la base de datos Amazon RDS.](http://docs.aws.amazon.com/es_es/infrastructure-composer/latest/dg/images/aac_use_rds_01.png)


Para usar esta tarjeta, arrástrela al lienzo de Infrastructure Composer, configúrela y conéctela a otros recursos.

Puede conectar la aplicación al DB clúster o instancia de Amazon RDS externo mediante una función Lambda.

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

Para utilizar esta función, debe cumplir los siguientes requisitos:

1. Debe utilizar su DB clúster, instancia o proxy externo de Amazon RDS AWS Secrets Manager para administrar la contraseña de usuario. Para obtener más información, consulte [Administración de contraseñas con Amazon RDS y AWS Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) en la Guía del *usuario de Amazon RDS*.

1. La aplicación en Infrastructure Composer debe ser un proyecto nuevo o debe haberse creado originalmente en Infrastructure Composer.

## Procedimiento
<a name="using-composer-services-rds-connect"></a>

### Paso 1: Configurar la tarjeta de base de datos RDS externa
<a name="using-composer-services-rds-connect-step1"></a>

Desde la paleta **Recursos**, arrastre al lienzo una tarjeta de componentes mejorada **(externa) de RDS Database**. 

Seleccione la tarjeta y elija **Detalles** o haga doble clic en la tarjeta para que aparezca el panel de **propiedades del recurso**. Aparecerá el panel de propiedades de los recursos de la tarjeta:

![El panel de propiedades de recursos de una tarjeta de componentes mejorada (externa) de RDS Database.](http://docs.aws.amazon.com/es_es/infrastructure-composer/latest/dg/images/aac_use_rds_03.png)


Aquí puede configurar lo siguiente:
+ **ID lógico**: un nombre exclusivo para su DB clúster, instancia o proxy externo de Amazon RDS. Este ID no tiene que coincidir con el valor de ID lógico de su DB recurso externo de Amazon RDS.
+ **Secreto de base** de datos: identificador del AWS Secrets Manager secreto asociado a su DB clúster, instancia o proxy de Amazon RDS. Este campo acepta los siguientes valores:
  + **Valor estático**: identificador único del secreto de la base de datos, como el ARN secreto. A continuación se muestra un ejemplo: `arn:aws:secretsmanager:us-west-2:123456789012:secret:my-path/my-secret-name-1a2b3c`. Para obtener más información, consulte [Conceptos de AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html) en la *Guía del usuario de la AWS Secrets Manager *.
  + **Valor de salida**: cuando se despliega un secreto de Secrets Manager AWS CloudFormation, se crea un valor de salida. Aquí puede especificar el valor de salida mediante la función `[Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)` intrínseca. Por ejemplo, `!ImportValue MySecret`.
  + **Valor del almacén de parámetros de SSM**: puede almacenar su secreto en el almacén de parámetros de SSM y especificar su valor mediante una referencia dinámica. Por ejemplo, `{{resolve:ssm:MySecret}}`. *Para obtener más información, consulte los [parámetros del SSM](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-ssm) en la Guía del AWS CloudFormation usuario.*
+ **Nombre de host de la base** de datos: el nombre de host que se puede usar para conectarse a su DB clúster, instancia o proxy de Amazon RDS. Este valor se especifica en la plantilla externa que define el recurso de Amazon RDS. Se aceptan los siguientes valores:
  + **Valor estático**: identificador único del nombre de host de la base de datos, como la dirección del punto final. A continuación se muestra un ejemplo: `mystack-mydb-1apw1j4phylrk.cg034hpkmmjt.us-east-2.rds.amazonaws.com`.
  + **Valor de salida**: el valor de salida de un DB clúster, instancia o proxy de Amazon RDS implementado. Puede especificar el valor de salida mediante la función `[Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)` intrínseca. Por ejemplo, `!ImportValue myStack-myDatabase-abcd1234`.
  + **Valor del almacén de parámetros SSM: puede almacenar** el nombre de host de la base de datos en el almacén de parámetros SSM y especificar su valor mediante una referencia dinámica. Por ejemplo, `{{resolve:ssm:MyDatabase}}`.
+ **Puerto de base** de datos: el número de puerto que se puede usar para conectarse a su DB clúster, instancia o proxy de Amazon RDS. Este valor se especifica en la plantilla externa que define el recurso de Amazon RDS. Se aceptan los siguientes valores:
  + **Valor estático**: el puerto de la base de datos. Por ejemplo, `3306`.
  + **Valor de salida**: el valor de salida de un DB clúster, instancia o proxy de Amazon RDS implementado. Por ejemplo, `!ImportValue myStack-MyRDSInstancePort`.
  + **Valor del almacén de parámetros de SSM: puede almacenar** el nombre de host de la base de datos en el almacén de parámetros de SSM y especificar su valor mediante una referencia dinámica. Por ejemplo, `{{resolve:ssm:MyRDSInstancePort}}`.

**nota**  
Aquí solo se debe configurar el valor de ID lógico. Si lo prefiere, puede configurar las demás propiedades en el momento de la implementación.

### Paso 2: Conectar una tarjeta de función Lambda
<a name="using-composer-services-rds-connect-step2"></a>

Desde la paleta **Recursos**, arrastre una tarjeta de componente mejorada de **la función Lambda** al lienzo.

Conecte el puerto izquierdo de la tarjeta de **función Lambda** al puerto derecho de la tarjeta de **base de datos RDS (externa)**.

![Una tarjeta de función Lambda conectada a una tarjeta de componentes mejorada de base de datos RDS (externa).](http://docs.aws.amazon.com/es_es/infrastructure-composer/latest/dg/images/aac_use_rds_02.png)


Infrastructure Composer aprovisionará la plantilla para facilitar esta conexión.

## Qué hace Infrastructure Composer para crear su conexión
<a name="using-composer-services-rds-ref-how"></a>

Al completar el procedimiento indicado anteriormente, Infrastructure Composer realiza acciones específicas para conectar la función Lambda a la base de datos.

### Al especificar el DB clúster, la instancia o el proxy externo de Amazon RDS
<a name="using-composer-services-rds-ref-how-specify"></a>

Al arrastrar una tarjeta de **base de datos de RDS (externa)** al lienzo, Infrastructure Composer actualiza las `Parameters` secciones `Metadata` y secciones de la plantilla según sea necesario. A continuación, se muestra un ejemplo:

```
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
```

[Los metadatos](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html) son una sección CloudFormation de la plantilla que se utiliza para almacenar los detalles de la plantilla. Los metadatos específicos de Infrastructure Composer se almacenan en la clave de `AWS::Composer::ExternalResources` metadatos. Aquí, Infrastructure Composer almacena los valores que especifique para su DB clúster, instancia o proxy de Amazon RDS.

La sección de [parámetros](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html) de una CloudFormation plantilla se utiliza para almacenar valores personalizados que se pueden insertar en toda la plantilla durante la implementación. Según el tipo de valores que proporcione, Infrastructure Composer puede almacenar valores aquí para su DB clúster, instancia o proxy de Amazon RDS y especificarlos en toda la plantilla.

Los valores de cadena de la `Parameters` sección `Metadata` y utilizan el valor de ID lógico que especifique en la tarjeta de **base de datos de RDS (externa)**. Si actualiza el identificador lógico, los valores de la cadena cambiarán.

### Al conectar la función Lambda a la base de datos
<a name="using-composer-services-rds-ref-how-connecting"></a>

Al conectar una tarjeta de **función Lambda** a la tarjeta de **base de datos (externa) de RDS**, Infrastructure Composer aprovisiona variables de entorno y políticas AWS Identity and Access Management (IAM). A continuación, se muestra un ejemplo:

```
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
```

Las variables de [entorno](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-environment) son variables que la función puede utilizar en tiempo de ejecución. Para obtener más información, consulte [Uso de variables de entorno Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html) en la Guía para *AWS Lambda desarrolladores*.

[Las políticas](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-policies) proporcionan permisos para su función. Aquí, Infrastructure Composer crea una política para permitir el acceso de lectura desde su función a Secrets Manager para obtener su contraseña de acceso al DB clúster, instancia o proxy de Amazon RDS.