

El SDK AWS móvil para Unity ahora está incluido en AWS SDK para .NET. Esta guía hace referencia a la versión archivada de Mobile SDK para Unity. Para obtener más información, consulte [¿Qué es el SDK AWS móvil para Unity?](what-is-unity-plugin.md)

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
<a name="lambda"></a>

AWS Lambda es un servicio informático que ejecuta el código en respuesta a solicitudes o eventos y administra de forma automática los recursos informáticos, lo que facilita la construcción de aplicaciones que respondan rápidamente a la nueva información. Las funciones de AWS Lambda se pueden llamar directamente desde dispositivos móviles, IoT y aplicaciones web. Envían una respuesta de forma sincrónica, facilitando así la creación de backends escalables, seguros y de alta disponibilidad para las aplicaciones móviles sin la necesidad de aprovisionar o administrar la infraestructura.

AWS Lambda puede ejecutar las funciones de Lambda en respuesta a una de las siguientes situaciones:
+ Eventos, como actualizaciones discretas (por ejemplo, eventos creados por objetos en Amazon S3 o CloudWatch alertas) o actualizaciones en streaming (por ejemplo, secuencias de clics en sitios web o salidas de dispositivos conectados).
+ Entradas JSON o comandos HTTPS desde las aplicaciones personalizadas.

AWS Lambda ejecuta el código solo cuando es necesario y amplía de manera automática, pasando de pocas solicitudes al día a miles por segundo. Con estas capacidades puede usar Lambda para crear disparadores para servicios de AWS como Amazon S3 y Amazon DynamoDB, procesar datos en streaming almacenados en Amazon Kinesis o crear su propio backend que opera con el nivel de seguridad, desempeño y escala de AWS.

Para obtener más información sobre cómo funciona AWS Lambda, consulte [AWS Lambda: How It Works](https://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html).

## Permisos
<a name="permissions"></a>

Hay dos tipos de permisos relacionados con las funciones de Lambda:
+  **Permisos de ejecución**: los permisos que necesita la función Lambda para acceder a otros recursos de AWS en su cuenta. Puede conceder estos permisos creando un rol de IAM, denominado rol de ejecución.
+  **Permisos de invocación**: permisos que el origen de eventos necesita para comunicarse con la función de Lambda. Según el modelo de invocación (de inserción o extracción), puede conceder estos permisos utilizando el rol de ejecución o las políticas de recursos (la política de acceso asociada con su función de Lambda).

## Configuración del proyecto
<a name="project-setup"></a>

### Establecer permisos para AWS Lambda
<a name="set-permissions-for-aws-lambda"></a>

1. Abra la [consola de AWS IAM](https://console.aws.amazon.com/iam/home).

1. Vincule esta política personalizada a sus roles, para que su aplicación pueda realizar llamadas a AWS Lambda.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "lambda:*"
      ],
      "Resource": "*"
    }
  ]
}
```

------

### Crear un nuevo rol de ejecución
<a name="create-a-new-execution-role"></a>

Este rol se aplica a la función de Lambda que creará en el siguiente paso y que determina a qué recursos de AWS puede acceder esa función.

1. Abra la [consola de AWS IAM](https://console.aws.amazon.com/iam/home).

1. Haga clic en **Roles (Roles)**.

1. Haga clic en **Create New Roles (Crear nuevos roles)**.

1. Siga las instrucciones que aparecen en pantalla para seleccionar los servicios y las políticas correspondientes a las que necesita acceder la función de Lambda. Por ejemplo, si desea que la función de Lambda cree un bucket de S3, su política necesitará acceso de escritura a S3.

1. Haga clic en **Create Role (Crear rol)**.

### Crear una función en AWS Lambda
<a name="creating-a-function-in-aws-lambda"></a>

1. Abra la [consola de AWS Lambda](https://console.aws.amazon.com/lambda/home).

1. Haga clic en **Create a Lambda function (Crear una función de Lambda)**.

1. Haga clic en **Skip (Omitir)** para omitir la creación de un proyecto.

1. Configure su propia función en la siguiente pantalla. Introduzca el nombre de la función, una descripción y elija el tiempo de ejecución. Siga las instrucciones que aparecen en pantalla (según el tiempo de ejecución que ha seleccionado). Especifique los permisos de ejecución asignando a su función un rol de ejecución recién creado.

1. Cuando haya terminado, haga clic en **Next (Siguiente)**.

1. Haga clic en **Create Function (Crear función)**.

## Crear un cliente de Lambda
<a name="create-a-lambda-client"></a>

```
var credentials = new CognitoAWSCredentials(IDENTITY_POOL_ID, RegionEndpoint.USEast1);
var Client = new AmazonLambdaClient(credentials, RegionEndpoint.USEast1);
```

## Crear un objeto de una solicitud
<a name="create-a-request-object"></a>

Cree un objeto de solicitud para especificar el tipo de invocación y el nombre de la función:

```
var request = new InvokeRequest()
{
    FunctionName = "hello-world",
    Payload = "{\"key1\" : \"Hello World!\"}",
    InvocationType = InvocationType.RequestResponse
};
```

## Invocar una función de Lambda
<a name="invoke-your-lambda-function"></a>

Llame a invoke y transfiera el objeto de la solicitud:

```
Client.InvokeAsync(request, (result) =>
{
    if (result.Exception == null)
    {
        Debug.Log(Encoding.ASCII.GetString(result.Response.Payload.ToArray()));
    }
    else
    {
        Debug.LogError(result.Exception);
    }
});
```