

# Creación de funciones de Lambda con PowerShell
<a name="lambda-powershell"></a>

En las siguientes secciones se explica cómo se aplican los conceptos fundamentales y los patrones de programación comunes al crear código de funciones de Lambda en PowerShell.

Lambda proporciona las siguientes aplicaciones de muestra para PowerShell:
+ [blank-powershell](https://github.com/awsdocs/aws-lambda-developer-guide/tree/main/sample-apps/blank-powershell): una función de PowerShell que muestra el uso de registro, las variables de entorno y el AWS SDK .

Antes de comenzar, primero debe configurar un entorno de desarrollo de PowerShell. Para obtener instrucciones al respecto, consulte [Configuración del entorno de desarrollo de PowerShell](powershell-devenv.md).

Para obtener más información sobre cómo utilizar el módulo AWSLambdaPSCore para descargar proyectos de muestra de PowerShell a partir de plantillas, cómo crear paquetes de implementación de PowerShell y cómo implementar funciones de PowerShell en la nube de AWS, consulte [Implementar funciones Lambda de PowerShell con archivos .zip](powershell-package.md).

Lambda proporciona los siguientes tiempos de ejecución para lenguajes .NET:


| Nombre | Identificador | Sistema operativo | Fecha de baja | Bloqueo de la función Crear | Bloqueo de la función Actualizar | 
| --- | --- | --- | --- | --- | --- | 
|  .NET 10  |  `dotnet10`  |  Amazon Linux 2023  |   14 de noviembre de 2028   |   14 de diciembre de 2028   |   15 de enero de 2029   | 
|  .NET 9 (solo contenedor)  |  `dotnet9`  |  Amazon Linux 2023  |   10 de noviembre de 2026   |   No programado   |   No programado   | 
|  .NET 8  |  `dotnet8`  |  Amazon Linux 2023  |   10 de noviembre de 2026   |   10 de diciembre de 2026   |   11 de enero de 2027   | 

**Topics**
+ [

# Configuración del entorno de desarrollo de PowerShell
](powershell-devenv.md)
+ [

# Implementar funciones Lambda de PowerShell con archivos .zip
](powershell-package.md)
+ [

# Definir el controlador de las funciones de Lambda en PowerShell
](powershell-handler.md)
+ [

# Uso del objeto de contexto de Lambda para recuperar la información de las funciones de PowerShell
](powershell-context.md)
+ [

# Registro y supervisión de las funciones de Lambda de Powershell
](powershell-logging.md)

# Configuración del entorno de desarrollo de PowerShell
<a name="powershell-devenv"></a>

Lambda proporciona un conjunto de herramientas y bibliotecas para el tiempo de ejecución de PowerShell. Para obtener las instrucciones de instalación, consulte [Lambda Tools for PowerShell](https://github.com/aws/aws-lambda-dotnet/tree/master/PowerShell) en GitHub.

El módulo AWSLambdaPSCore incluye los siguientes cmdlets para ayudarle a crear y publicar las funciones de Lambda para PowerShell.
+ **Get-AWSPowerShellLambdaTemplate**: devuelve una lista de plantillas de introducción.
+ **New-AWSPowerShellLambda**: crea un script de PowerShell inicial basado en una plantilla.
+ **Publish-AWSPowerShellLambda**: publica un script de PowerShell dado en Lambda.
+ **New-AWSPowerShellLambdaPackage**: crea un paquete de implementación que se puede utilizar en un sistema CI/CD para la implementación.

# Implementar funciones Lambda de PowerShell con archivos .zip
<a name="powershell-package"></a>

Un paquete de implementación para el tiempo de ejecución de PowerShell contiene su script de PowerShell, los módulos de PowerShell necesarios para su script de PowerShell y los ensamblados necesarios para alojar PowerShell Core.

## Creación de la función de Lambda
<a name="powershell-package-create"></a>

Para que le resulte más fácil empezar a escribir e invocar un script de PowerShell con Lambda, puede utilizar el cmdlet `New-AWSPowerShellLambda` para crear un script de inicio basado en una plantilla. Puede utilizar el cmdlet `Publish-AWSPowerShellLambda` para implementar su script en Lambda. A continuación, puede probar el script ya sea a través de la línea de comandos o de la consola de Lambda.

Para crear un nuevo script de PowerShell, cargarlo y probarlo, haga lo siguiente:

1. Para ver la lista de plantillas disponibles, ejecute el siguiente comando:

   ```
   PS C:\> Get-AWSPowerShellLambdaTemplate
   
   Template               Description
   --------               -----------
   Basic                  Bare bones script
   CodeCommitTrigger      Script to process AWS CodeCommit Triggers
   ...
   ```

1. Para crear un script de ejemplo basado en la plantilla`Basic`, ejecute el siguiente comando:

   ```
   New-AWSPowerShellLambda -ScriptName MyFirstPSScript -Template Basic
   ```

   Se creará un nuevo archivo denominado `MyFirstPSScript.ps1` en un nuevo subdirectorio del directorio actual. El nombre del directorio se basa en el parámetro `-ScriptName`. Puede utilizar el parámetro `-Directory` para elegir otro directorio.

   Puede ver que el nuevo archivo tiene el siguiente contenido:

   ```
   # PowerShell script file to run as a Lambda function
   # 
   # When executing in Lambda the following variables are predefined.
   #   $LambdaInput - A PSObject that contains the Lambda function input data.
   #   $LambdaContext - An Amazon.Lambda.Core.ILambdaContext object that contains information about the currently running Lambda environment.
   #
   # The last item in the PowerShell pipeline is returned as the result of the Lambda function.
   #
   # To include PowerShell modules with your Lambda function, like the AWSPowerShell.NetCore module, add a "#Requires" statement 
   # indicating the module and version.
                   
   #Requires -Modules @{ModuleName='AWSPowerShell.NetCore';ModuleVersion='3.3.618.0'}
   
   # Uncomment to send the input to CloudWatch Logs
   # Write-Host (ConvertTo-Json -InputObject $LambdaInput -Compress -Depth 5)
   ```

1. Para ver cómo se envían los mensajes de registro desde su script de PowerShell a Amazon CloudWatch Logs, anule el comentario de la línea `Write-Host` del script de muestra.

   Para demostrar cómo puede devolver los datos de sus funciones de Lambda, agregue una nueva línea al final del script con `$PSVersionTable`. Esto agregará `$PSVersionTable` a la canalización de PowerShell. Una vez que el script de PowerShell se ha completado, el último objeto en la canalización de PowerShell son los datos de devolución de la función de Lambda. `$PSVersionTable` es una variable global de PowerShell que también proporciona información sobre el entorno en ejecución.

   Después de realizar estos cambios, las dos últimas líneas del script de muestra tienen un aspecto similar al siguiente:

   ```
   Write-Host (ConvertTo-Json -InputObject $LambdaInput -Compress -Depth 5)
   $PSVersionTable
   ```

1. Después de editar el archivo `MyFirstPSScript.ps1`, cambie el directorio a la ubicación del script. Después, ejecute el siguiente comando para publicar el script en Lambda:

   ```
   Publish-AWSPowerShellLambda -ScriptPath .\MyFirstPSScript.ps1 -Name  MyFirstPSScript -Region us-east-2
   ```

   Tenga en cuenta que el parámetro `-Name` especifica el nombre de la función de , que aparece en la consola de Lambda. Puede utilizar esta función para invocar manualmente a su script.

1. Invoque su función con el comando `invoke` AWS Command Line Interface (AWS CLI).

   ```
   > aws lambda invoke --function-name MyFirstPSScript out
   ```

# Definir el controlador de las funciones de Lambda en PowerShell
<a name="powershell-handler"></a>

Cuando se invoca una función de Lambda, el controlador de Lambda invoca al script de PowerShell.

Cuando el script de PowerShell se invoca, se predefinen las siguientes variables:
+  *\$1LambdaInput*: un PSObject que contiene la entrada al controlador. Esta entrada puede estar formada por datos de eventos (publicados por un origen de eventos) o por una entrada personalizada que proporcione, como una cadena o cualquier objeto de datos personalizado. 
+  *\$1LambdaContext*: un objeto Amazon.Lambda.Core.ILambdaContext que puede utilizar para obtener acceso a información sobre la invocación actual, como el nombre de la función actual, el límite de memoria, el tiempo de ejecución restante y el registro. 

Por ejemplo, fíjese en el siguiente código de ejemplo de PowerShell.

```
#Requires -Modules @{ModuleName='AWSPowerShell.NetCore';ModuleVersion='3.3.618.0'}
Write-Host 'Function Name:' $LambdaContext.FunctionName
```

Este script devuelve la propiedad FunctionName que obtiene de la variable \$1LambdaContext.

**nota**  
Es necesario que utilice la instrucción `#Requires` dentro de sus scripts de PowerShell para indicar los módulos de los que dependen los scripts. Esta instrucción realiza dos tareas importantes. 1) Comunica a otros desarrolladores los módulos que utiliza el script; y 2) identifica los módulos dependientes que necesitan las herramientas de AWS PowerShell para incluir en el paquete con el script, como parte de la implementación. Para obtener más información sobre la instrucción `#Requires` en PowerShell, consulte [Acerca de los requisitos](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_requires?view=powershell-6). Para obtener más información sobre los paquetes de implementación de PowerShell, consulte [Implementar funciones Lambda de PowerShell con archivos .zip](powershell-package.md).  
Cuando su función de Lambda para PowerShell utiliza los cmdlets de AWS PowerShell, asegúrese de establecer una instrucción `#Requires` que haga referencia al módulo `AWSPowerShell.NetCore`, que admite PowerShell Core y no el módulo `AWSPowerShell`, que solo admite Windows PowerShell. Además, asegúrese de utilizar la versión 3.3.270.0 o posterior de `AWSPowerShell.NetCore`, que optimiza el proceso de importación del cmdlet. Si utiliza una versión anterior, experimentará unos arranques en frío más largos. Para obtener más información, consulte [AWS Tools for PowerShell](https://aws.amazon.com/powershell/?track=sdk).

## Devolución de datos
<a name="powershell-handler-output"></a>

Algunas invocaciones Lambda están destinadas a devolver los datos a la persona que llama. Por ejemplo, si una invocación se hizo en respuesta a una solicitud web procedente de API Gateway, entonces nuestra función de Lambda debe devolver la respuesta. Para PowerShell Lambda, el último objeto que se añade a la canalización de PowerShell son los datos de devolución de la invocación de Lambda. Si el objeto es una cadena, los datos se devuelven tal cual. De lo contrario, el objeto se convierte en JSON mediante el uso del cmdlet `ConvertTo-Json`.

Por ejemplo, observe la siguiente instrucción de PowerShell, que añade `$PSVersionTable` a la canalización de PowerShell:

```
$PSVersionTable
```

Una vez que el script de PowerShell ha finalizado, el último objeto en la canalización de PowerShell son los datos de devolución de la función de Lambda. `$PSVersionTable` es una variable global de PowerShell que también proporciona información sobre el entorno en ejecución.

# Uso del objeto de contexto de Lambda para recuperar la información de las funciones de PowerShell
<a name="powershell-context"></a>

Cuando Lambda ejecuta su función, pasa información de contexto haciendo que una variable `$LambdaContext` esté disponible para el [controlador](powershell-handler.md). Esta variable proporciona métodos y propiedades con información acerca de la invocación, la función y el entorno de ejecución.

**Propiedades de context**
+ `FunctionName`: el nombre de la función de Lambda.
+ `FunctionVersion`: la [versión](configuration-versions.md) de la función.
+ `InvokedFunctionArn`: el nombre de recurso de Amazon (ARN) que se utiliza para invocar esta función. Indica si el invocador especificó un número de versión o alias.
+ `MemoryLimitInMB`: cantidad de memoria asignada a la función.
+ `AwsRequestId`: el identificador de la solicitud de invocación.
+ `LogGroupName`: grupo de registros de para la función.
+ `LogStreamName`: el flujo de registro de la instancia de la función.
+ `RemainingTime`: el número de milisegundos que quedan antes del tiempo de espera de la ejecución.
+ `Identity`: (aplicaciones móviles) Información acerca de la identidad de Amazon Cognito que autorizó la solicitud.
+ `ClientContext`: (aplicaciones móviles) Contexto de cliente proporcionado a Lambda por la aplicación cliente.
+ `Logger`: el [objeto logger](powershell-logging.md) para la función.

El siguiente fragmento de código PowerShell muestra una función de controlador sencilla que imprime parte de la información de contexto. 

```
#Requires -Modules @{ModuleName='AWSPowerShell.NetCore';ModuleVersion='3.3.618.0'}
Write-Host 'Function name:' $LambdaContext.FunctionName
Write-Host 'Remaining milliseconds:' $LambdaContext.RemainingTime.TotalMilliseconds
Write-Host 'Log group name:' $LambdaContext.LogGroupName
Write-Host 'Log stream name:' $LambdaContext.LogStreamName
```

# Registro y supervisión de las funciones de Lambda de Powershell
<a name="powershell-logging"></a>

AWS Lambda supervisa automáticamente funciones de Lambda en su nombre y envía registros a Amazon CloudWatch. Su función de Lambda viene con un grupo de registros de Registros de CloudWatch y con un flujo de registro para cada instancia de su función. El entorno de tiempo de ejecución de Lambda envía detalles sobre cada invocación al flujo de registro y retransmite los registros y otras salidas desde el código de la función. Para obtener más información, consulte [Envío de registros de funciones de Lambda a Registros de CloudWatch](monitoring-cloudwatchlogs.md).

Esta página describe cómo producir resultados de registro a partir del código de la función de Lambda o registros de acceso mediante AWS Command Line Interface, la consola de Lambda o la consola de CloudWatch.

**Topics**
+ [

## Crear una función que devuelve registros
](#powershell-logging-output)
+ [

## Visualización de los registros en la consola de Lambda
](#powershell-logging-console)
+ [

## Visualización de los registros de en la consola de CloudWatch
](#powershell-logging-cwconsole)
+ [

## Visualización de los registros mediante la AWS Command Line Interface (AWS CLI)
](#powershell-logging-cli)
+ [

## Eliminación de registros
](#powershell-logging-delete)

## Crear una función que devuelve registros
<a name="powershell-logging-output"></a>

Para generar registros desde el código de su función, puede usar cmdlets en [Microsoft.PowerShell.Utility ](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility) o en cualquier módulo de registro que escriba en `stdout` o en `stderr`. El siguiente ejemplo utiliza `Write-Host`.

**Example [function/Handler.ps1](https://github.com/awsdocs/aws-lambda-developer-guide/tree/main/sample-apps/blank-powershell/function/Handler.ps1): registro**  

```
#Requires -Modules @{ModuleName='AWSPowerShell.NetCore';ModuleVersion='3.3.618.0'}
Write-Host `## Environment variables
Write-Host AWS_LAMBDA_FUNCTION_VERSION=$Env:AWS_LAMBDA_FUNCTION_VERSION
Write-Host AWS_LAMBDA_LOG_GROUP_NAME=$Env:AWS_LAMBDA_LOG_GROUP_NAME
Write-Host AWS_LAMBDA_LOG_STREAM_NAME=$Env:AWS_LAMBDA_LOG_STREAM_NAME
Write-Host AWS_EXECUTION_ENV=$Env:AWS_EXECUTION_ENV
Write-Host AWS_LAMBDA_FUNCTION_NAME=$Env:AWS_LAMBDA_FUNCTION_NAME
Write-Host PATH=$Env:PATH
Write-Host `## Event
Write-Host (ConvertTo-Json -InputObject $LambdaInput -Compress -Depth 3)
```

**Example formato de registro**  

```
START RequestId: 56639408-xmpl-435f-9041-ac47ae25ceed Version: $LATEST
Importing module ./Modules/AWSPowerShell.NetCore/3.3.618.0/AWSPowerShell.NetCore.psd1
[Information] - ## Environment variables
[Information] - AWS_LAMBDA_FUNCTION_VERSION=$LATEST
[Information] - AWS_LAMBDA_LOG_GROUP_NAME=/aws/lambda/blank-powershell-function-18CIXMPLHFAJJ
[Information] - AWS_LAMBDA_LOG_STREAM_NAME=2020/04/01/[$LATEST]53c5xmpl52d64ed3a744724d9c201089
[Information] - AWS_EXECUTION_ENV=AWS_Lambda_dotnet6_powershell_1.0.0
[Information] - AWS_LAMBDA_FUNCTION_NAME=blank-powershell-function-18CIXMPLHFAJJ
[Information] - PATH=/var/lang/bin:/usr/local/bin:/usr/bin/:/bin:/opt/bin
[Information] - ## Event
[Information] - 
{
    "Records": [
        {
            "messageId": "19dd0b57-b21e-4ac1-bd88-01bbb068cb78",
            "receiptHandle": "MessageReceiptHandle",
            "body": "Hello from SQS!",
            "attributes": {
                "ApproximateReceiveCount": "1",
                "SentTimestamp": "1523232000000",
                "SenderId": "123456789012",
                "ApproximateFirstReceiveTimestamp": "1523232000001"
            },
            ...
END RequestId: 56639408-xmpl-435f-9041-ac47ae25ceed
REPORT RequestId: 56639408-xmpl-435f-9041-ac47ae25ceed	Duration: 3906.38 ms	Billed Duration: 9867 ms	Memory Size: 512 MB	Max Memory Used: 367 MB	Init Duration: 5960.19 ms	
XRAY TraceId: 1-5e843da6-733cxmple7d0c3c020510040	SegmentId: 3913xmpl20999446	Sampled: true
```

El tiempo de ejecución de .NET registra las líneas `START`, `END` y `REPORT` de cada invocación. La línea del informe proporciona los siguientes detalles.

**Campos de datos de línea REPORT**
+ **RequestId**: el ID de solicitud único para la invocación.
+ **Duración**: la cantidad de tiempo que el método de controlador de función pasó procesando el evento.
+ **Duración facturada**: la cantidad de tiempo facturado por la invocación.
+ **Tamaño de memoria**: la cantidad de memoria asignada a la función.
+ **Máximo de memoria usada**: la cantidad de memoria utilizada por la función. Cuando las invocaciones comparten un entorno de ejecución, Lambda informa de la memoria máxima utilizada en todas las invocaciones. Este comportamiento puede dar como resultado un valor notificado superior al esperado.
+ **Duración de inicio**: para la primera solicitud servida, la cantidad de tiempo que tardó el tiempo de ejecución en cargar la función y ejecutar código fuera del método del controlador.
+ **TraceId de XRAY**: para las solicitudes rastreadas, el [ID de seguimientode AWS X-Ray](services-xray.md).
+ **SegmentId**: para solicitudes rastreadas, el ID del segmento de X-Ray.
+ **Muestras**: para solicitudes rastreadas, el resultado del muestreo.

## Visualización de los registros en la consola de Lambda
<a name="powershell-logging-console"></a>

Puede utilizar la consola de Lambda para ver la salida del registro después de invocar una función de Lambda.

Si su código se puede probar desde el editor de **código** integrado, encontrará los registros en los **resultados de ejecución**. Cuando utilice la característica de prueba de la consola para invocar una función, encontrará la **Salida de registro** en la sección de **Detalles**.

## Visualización de los registros de en la consola de CloudWatch
<a name="powershell-logging-cwconsole"></a>

Puede utilizar la consola Amazon CloudWatch para ver los registros de todas las invocaciones de funciones de Lambda.

**Visualización de los registros en la consola CloudWatch**

1. En la consola de CloudWatch, abra la [página de grupos de registro](https://console.aws.amazon.com/cloudwatch/home?#logs:).

1. Seleccione el grupo de registros para su función (**/aws/lambda/*your-function-name***).

1. Elija una secuencia de registro.

Cada flujo de registro se corresponde con una [instancia de su función](lambda-runtime-environment.md). Aparece un flujo de registro cuando actualiza la función de Lambda y cuando se crean instancias adicionales para gestionar invocaciones simultáneas. Para encontrar registros para una invocación específica, le recomendamos que interfiera su función con AWS X-Ray. X-Ray registra los detalles sobre la solicitud y el flujo de registro en el seguimiento.

## Visualización de los registros mediante la AWS Command Line Interface (AWS CLI)
<a name="powershell-logging-cli"></a>

La AWS CLI es una herramienta de código abierto que lo habilita para interactuar con los servicios de AWS mediante el uso de comandos en el intérprete de comandos de la línea de comandos. Para completar los pasos de esta sección, debe disponer de la [versión 2 de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

Puede utilizar la [CLI de AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) para recuperar registros de una invocación mediante la opción de comando `--log-type`. La respuesta contiene un campo `LogResult` que contiene hasta 4 KB de registros con codificación base64 a partir de la invocación.

**Example recuperar un ID de registro**  
En el ejemplo siguiente se muestra cómo recuperar un *ID de registro* del campo `LogResult` para una función denominada `my-function`.  

```
aws lambda invoke --function-name my-function out --log-type Tail
```
Debería ver los siguientes datos de salida:  

```
{
    "StatusCode": 200,
    "LogResult": "U1RBUlQgUmVxdWVzdElkOiA4N2QwNDRiOC1mMTU0LTExZTgtOGNkYS0yOTc0YzVlNGZiMjEgVmVyc2lvb...",
    "ExecutedVersion": "$LATEST"
}
```

**Example decodificar los registros**  
En el mismo símbolo del sistema, utilice la utilidad `base64` para decodificar los registros. En el ejemplo siguiente se muestra cómo recuperar registros codificados en base64 para `my-function`.  

```
aws lambda invoke --function-name my-function out --log-type Tail \
--query 'LogResult' --output text --cli-binary-format raw-in-base64-out | base64 --decode
```
La opción **cli-binary-format** es obligatoria si va a utilizar la versión 2 de la AWS CLI. Para que esta sea la configuración predeterminada, ejecute `aws configure set cli-binary-format raw-in-base64-out`. Para obtener más información, consulte [Opciones de la línea de comandos globales compatibles con AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html#cli-configure-options-list) en la *Guía del usuario de la AWS Command Line Interface versión 2*.  
Debería ver los siguientes datos de salida:  

```
START RequestId: 57f231fb-1730-4395-85cb-4f71bd2b87b8 Version: $LATEST
"AWS_SESSION_TOKEN": "AgoJb3JpZ2luX2VjELj...", "_X_AMZN_TRACE_ID": "Root=1-5d02e5ca-f5792818b6fe8368e5b51d50;Parent=191db58857df8395;Sampled=0"",ask/lib:/opt/lib",
END RequestId: 57f231fb-1730-4395-85cb-4f71bd2b87b8
REPORT RequestId: 57f231fb-1730-4395-85cb-4f71bd2b87b8  Duration: 79.67 ms      Billed Duration: 80 ms         Memory Size: 128 MB     Max Memory Used: 73 MB
```
La utilidad `base64` está disponible en Linux, macOS y [Ubuntu en Windows](https://docs.microsoft.com/en-us/windows/wsl/install-win10). Es posible que los usuarios de macOS necesiten usar `base64 -D`.

**Example get-logs.sh script**  
En el mismo símbolo del sistema, utilice el siguiente script para descargar los últimos cinco eventos de registro. El script utiliza `sed` para eliminar las comillas del archivo de salida y permanece inactivo durante 15 segundos para dar tiempo a que los registros estén disponibles. La salida incluye la respuesta de Lambda y la salida del comando `get-log-events`.   
Copie el contenido de la siguiente muestra de código y guárdelo en su directorio de proyecto Lambda como `get-logs.sh`.  
La opción **cli-binary-format** es obligatoria si va a utilizar la versión 2 de la AWS CLI. Para que esta sea la configuración predeterminada, ejecute `aws configure set cli-binary-format raw-in-base64-out`. Para obtener más información, consulte [Opciones de la línea de comandos globales compatibles con AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html#cli-configure-options-list) en la *Guía del usuario de la AWS Command Line Interface versión 2*.  

```
#!/bin/bash
aws lambda invoke --function-name my-function --cli-binary-format raw-in-base64-out --payload '{"key": "value"}' out
sed -i'' -e 's/"//g' out
sleep 15
aws logs get-log-events --log-group-name /aws/lambda/my-function --log-stream-name stream1 --limit 5
```

**Example macOS y Linux (solamente)**  
En el mismo símbolo del sistema, es posible que los usuarios de macOS y Linux necesiten ejecutar el siguiente comando para asegurarse de que el script es ejecutable.  

```
chmod -R 755 get-logs.sh
```

**Example recuperar los últimos cinco eventos de registro**  
En el mismo símbolo del sistema, ejecute el siguiente script para obtener los últimos cinco eventos de registro.  

```
./get-logs.sh
```
Debería ver los siguientes datos de salida:  

```
{
    "StatusCode": 200,
    "ExecutedVersion": "$LATEST"
}
{
    "events": [
        {
            "timestamp": 1559763003171,
            "message": "START RequestId: 4ce9340a-b765-490f-ad8a-02ab3415e2bf Version: $LATEST\n",
            "ingestionTime": 1559763003309
        },
        {
            "timestamp": 1559763003173,
            "message": "2019-06-05T19:30:03.173Z\t4ce9340a-b765-490f-ad8a-02ab3415e2bf\tINFO\tENVIRONMENT VARIABLES\r{\r  \"AWS_LAMBDA_FUNCTION_VERSION\": \"$LATEST\",\r ...",
            "ingestionTime": 1559763018353
        },
        {
            "timestamp": 1559763003173,
            "message": "2019-06-05T19:30:03.173Z\t4ce9340a-b765-490f-ad8a-02ab3415e2bf\tINFO\tEVENT\r{\r  \"key\": \"value\"\r}\n",
            "ingestionTime": 1559763018353
        },
        {
            "timestamp": 1559763003218,
            "message": "END RequestId: 4ce9340a-b765-490f-ad8a-02ab3415e2bf\n",
            "ingestionTime": 1559763018353
        },
        {
            "timestamp": 1559763003218,
            "message": "REPORT RequestId: 4ce9340a-b765-490f-ad8a-02ab3415e2bf\tDuration: 26.73 ms\tBilled Duration: 27 ms \tMemory Size: 128 MB\tMax Memory Used: 75 MB\t\n",
            "ingestionTime": 1559763018353
        }
    ],
    "nextForwardToken": "f/34783877304859518393868359594929986069206639495374241795",
    "nextBackwardToken": "b/34783877303811383369537420289090800615709599058929582080"
}
```

## Eliminación de registros
<a name="powershell-logging-delete"></a>

Los grupos de registro no se eliminan automáticamente cuando se elimina una función. Para evitar almacenar registros indefinidamente, elimine el grupo de registros o [configure un periodo de retención](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#SettingLogRetention) después de lo cual los registros se eliminan automáticamente.