

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.

# aws-lambda-elasticsearch-kibana
<a name="aws-lambda-elasticsearch-kibana"></a>

![](http://docs.aws.amazon.com/es_es/solutions/latest/constructs/images/experimental.png)


 Todas las clases están en desarrollo activo y están sujetas a cambios o eliminación no compatibles con versiones anteriores en cualquier versión futura. Estos no están sujetos a la[Versiones semánticas](https://semver.org/)El modelo. Esto significa que, aunque puede usarlos, es posible que necesite actualizar el código fuente cuando actualice a una versión más reciente de este paquete. 

**Nota:** Para garantizar una funcionalidad adecuada, los paquetes de AWS Solutions Constructs y los paquetes CDK de AWS del proyecto deben tener la misma versión. 


|  **Idioma**  |  **Paquete**  | 
| --- | --- | 
|  ![](http://docs.aws.amazon.com/es_es/solutions/latest/constructs/images/python.png) Python  |  aws\_solutions\_constructs.aws\_lambda\_elasticsearch\_kibana  | 
|  ![](http://docs.aws.amazon.com/es_es/solutions/latest/constructs/images/typescript.png) Mecanografiado  |  @aws-solutions-constructs/aws-lambda-elasticsearch-kibana  | 
|  ![](http://docs.aws.amazon.com/es_es/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.lambdaelasticsearchkibana  | 

## Overview
<a name="overview-18"></a>

 Este constructo de soluciones de AWS implementa una función de AWS Lambda y un dominio de Amazon Elasticsearch Service con permisos con menos privilegios.

 Aquí hay una definición mínima de patrón implementable en TypeScript: 

```
import { LambdaToElasticSearchAndKibana } from '@aws-solutions-constructs/aws-lambda-elasticsearch-kibana';
import { Aws } from "@aws-cdk/core";

const lambdaProps: lambda.FunctionProps = {
    runtime: lambda.Runtime.NODEJS_14_X,
    // This assumes a handler function in lib/lambda/index.js
    code: lambda.Code.fromAsset(`${__dirname}/lambda`),
    handler: 'index.handler'
};

new LambdaToElasticSearchAndKibana(this, 'test-lambda-elasticsearch-kibana', {
    lambdaFunctionProps: lambdaProps,
    domainName: 'test-domain',
    // TODO: Ensure the Cognito domain name is globally unique
    cognitoDomainName: 'globallyuniquedomain' + Aws.ACCOUNT_ID;
});
```

## Initializer
<a name="initializer-18"></a>

```
new LambdaToElasticSearchAndKibana(scope: Construct, id: string, props: LambdaToElasticSearchAndKibanaProps);
```

 *Parámetros* 
+  scope[https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.Construct.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.Construct.html) 
+  id`string` 
+  props[`LambdaToElasticSearchAndKibanaProps`](#pattern-construct-props-18) 

## Patrón de construcción
<a name="pattern-construct-props-18"></a>


|  **Nombre**  |  **Tipo**  |  **Descripción**  | 
| --- | --- | --- | 
|  ¿ExistenteLambdaobj?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Instancia existente del objeto Lambda Function, proporcionando tanto esto comolambdaFunctionPropsprovocará un error.  | 
|  ¿LambdaFunctionProps?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)  |  Propiedades opcionales proporcionadas por el usuario para anular las propiedades predeterminadas de la función Lambda. Se pasa por alto si unexistingLambdaObjse encuentra.  | 
|  ¿EsDomainProps?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-elasticsearch.CfnDomainProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-elasticsearch.CfnDomainProps.html)  |  Los accesorios proporcionados por el usuario opcionales para anular los accesorios predeterminados para Amazon Elasticsearch Service  | 
|  domainName  |  string  |  Nombre de dominio para Cognito y Amazon Elasticsearch Service  | 
|  CognitoDomainName?  |  string  |  Nombre de dominio opcional de Cognito. Si se proporciona, se utilizará para el dominio Cognito, ydomainNamese utilizará para el dominio Elasticsearch.  | 
|  CreateCloudWatchalarms  |  boolean  |  Si desea crear alarmas recomendadas de CloudWatch.  | 
|  DomainEndPointEnvironmentVariableName?  |  string  |  Nombre opcional para el conjunto de variables de entorno de extremo de dominio ElasticSearch para la función Lambda.  | 

## Propiedades de patrón
<a name="pattern-properties-18"></a>


|  **Nombre**  |  **Tipo**  |  **Descripción**  | 
| --- | --- | --- | 
|  ¿Cloudwatchalarms?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html)  |  Devuelve una lista de una o más alarmas de CloudWatch creadas por el patrón.  | 
|  ElasticSearchDomain  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-elasticsearch.CfnDomain.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-elasticsearch.CfnDomain.html)  |  Devuelve una instancia del dominio Elasticsearch creado por el patrón.  | 
|  ElasticSearchDomainRole  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  Devuelve una instancia del rol de IAM creado por el patrón para el dominio Elasticsearch.  | 
|  IdentityPool  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.CfnIdentityPool.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.CfnIdentityPool.html)  |  Devuelve una instancia del grupo de identidades de Cognito creado por el patrón.  | 
|  LambdaFunction  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)  |  Devuelve una instancia de la función Lambda creada por el patrón.  | 
|  userPool  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPool.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPool.html)  |  Devuelve una instancia del grupo de usuarios de Cognito creado por el patrón.  | 
|  UserPoolClient  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPoolClient.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cognito.UserPoolClient.html)  |  Devuelve una instancia del cliente de grupo de usuarios de Cognito creado por el patrón.  | 

## Lambda function
<a name="lambda-function-18"></a>

Este patrón requiere una función Lambda que pueda publicar datos en el servicio Elasticsearch desde la secuencia de DynamoDB. Se proporciona una función de muestra[Aquí](https://github.com/awslabs/aws-solutions-constructs/blob/master/source/patterns/%40aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/lambda/index.js).

## Configuración predeterminada
<a name="default-settings-18"></a>

 La implementación lista para usar de este patrón sin anulación establecerá los siguientes valores predeterminados:

### Función de AWS Lambda
<a name="aws-lambda-function-10"></a>
+  Configurar el rol de IAM de acceso limitado con privilegios para la función Lambda. 
+  Habilite la reutilización de conexiones con la función Keep-Alive para NodeJS Lambda. 
+  Active el rastreo de X-Ray.
+  Configuración de las variables de entorno:
  +  `DOMAIN_ENDPOINT` (predeterminado)
  +  `AWS_NODEJS_CONNECTION_REUSE_ENABLED`(para Node 10.x y funciones superiores)

### Amazon Cognito
<a name="amazon-cognito-2"></a>
+  Establezca la directiva de contraseñas para grupos de usuarios. 
+  Aplique el modo de seguridad avanzada para los grupos de usuarios. 

### Amazon Elasticsearch Service
<a name="amazon-elasticsearch-service-1"></a>
+  Implemente las prácticas recomendadas de CloudWatch Alarms para el dominio Elasticsearch. 
+  Proteja el acceso al panel de Kibana con Grupos de usuarios de Cognito. 
+  Habilite el cifrado del lado del servidor para el dominio Elasticsearch mediante la clave KMS administrada por AWS. 
+  Habilite el cifrado de nodo a nodo para el dominio Elasticsearch. 
+  Configure el clúster para el dominio Amazon ES. 

## Architecture
<a name="architecture-18"></a>

![](http://docs.aws.amazon.com/es_es/solutions/latest/constructs/images/aws-lambda-elasticsearch-kibana.png)


## GitHub
<a name="github-18"></a>


<table>
<thead>
  <tr><th colspan="2"> Para ver el código de este patrón, crear/ver problemas y solicitudes de extracción, y mucho más: </th></tr>
</thead>
<tbody>
  <tr><td> ![](http://docs.aws.amazon.com/es_es/solutions/latest/constructs/images/GitHub-Mark-32px.png) </td><td> [@aws -soluciones-constructs/aws-lambda-elasticsearch-kibana](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-lambda-elasticsearch-kibana) </td></tr>
</tbody>
</table>
