

# Uso de GitHub Actions para implementar las funciones de Lambda
<a name="deploying-github-actions"></a>

Puedes utilizar [GitHub Actions](https://github.com/features/actions) para implementar automáticamente las funciones de Lambda cuando inserta cambios de código o configuración en el repositorio. La acción [Implementar la función de Lambda](https://github.com/aws-actions/aws-lambda-deploy) proporciona una interfaz YAML simple y declarativa que elimina la complejidad de los pasos de implementación manual.

## Ejemplo de flujo de trabajo
<a name="deploying-github-actions-example"></a>

Para configurar la implementación automatizada de funciones de Lambda, cree un archivo de flujo de trabajo en el directorio de `.github/workflows/` del repositorio:

**Example Flujo de trabajo de GitHub Actions para la implementación de Lambda**  

```
name: Deploy AWS Lambda

on:
  push:
    branches: 
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    permissions:
      id-token: write # Required for OIDC authentication
      contents: read  # Required to check out the repository
    steps:
      - uses: actions/checkout@v4
      
      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v4
        with:
          role-to-assume: arn:aws:iam::123456789012:role/GitHubActionRole
          aws-region: us-east-1
      
      - name: Deploy Lambda Function
        uses: aws-actions/aws-lambda-deploy@v1
        with:
          function-name: my-lambda-function
          code-artifacts-dir: ./dist
```

Este flujo de trabajo se ejecuta cuando inserta cambios en la rama `main`. Comprueba el repositorio, configura las credenciales de AWS mediante OpenID Connect (OIDC) e implementa la función mediante el código del directorio `./dist`.

Para ver ejemplos adicionales, como la actualización de la configuración de funciones, la implementación mediante buckets de S3 y la validación de ejecución en seco, consulte el [README de la implementación de la función de Lambda](https://github.com/aws-actions/aws-lambda-deploy).

## Recursos adicionales
<a name="deploying-github-actions-resources"></a>
+ [Configuración de credenciales de AWS mediante GitHub Action](https://github.com/aws-actions/configure-aws-credentials)
+ [Configuración de OpenID Connect en AWS](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services)