La creación y conexión de funciones Lambda con otros recursos en AWS es uno de los pilares de una arquitectura serverless. A continuación te explico paso a paso cómo hacerlo utilizando buenas prácticas y herramientas como CloudFormation:
✅ 1. Crear una Función Lambda
Puedes hacerlo desde la consola o usando IaC como CloudFormation.
Ejemplo básico en CloudFormation:
Resources:
MiFuncionLambda:
Type: AWS::Lambda::Function
Properties:
FunctionName: MiFuncionLambda
Runtime: python3.12
Handler: index.handler
Code:
ZipFile: |
def handler(event, context):
return {"statusCode": 200, "body": "Hola desde Lambda"}
Role: !GetAtt LambdaExecutionRole.Arn
✅ 2. Crear una Role IAM para Lambda
Esta role da permisos mínimos necesarios.
LambdaExecutionRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Principal:
Service: lambda.amazonaws.com
Action: sts:AssumeRole
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
✅ 3. Conectar Lambda con otros servicios
Lambda se puede conectar a recursos como:
📌 DynamoDB
PermisoDynamo:
Type: AWS::IAM::Policy
Properties:
PolicyName: LambdaDynamoAccess
Roles: [!Ref LambdaExecutionRole]
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action:
- dynamodb:GetItem
- dynamodb:PutItem
Resource: "*"
📌 API Gateway
ApiGateway:
Type: AWS::ApiGateway::RestApi
Properties:
Name: MiAPI
LambdaPermission:
Type: AWS::Lambda::Permission
Properties:
Action: lambda:InvokeFunction
FunctionName: !GetAtt MiFuncionLambda.Arn
Principal: apigateway.amazonaws.com
📌 EventBridge, S3, SQS, SNS, etc.
Se configuran con triggers o eventos automáticos desde esos servicios.
✅ 4. Desplegar usando AWS Console, CLI o CloudFormation
Ejemplo con AWS CLI:
aws cloudformation deploy \
--template-file plantilla.yaml \
--stack-name MiStackLambda \
--capabilities CAPABILITY_NAMED_IAM
✅ Recomendaciones:
- Usa variables de entorno en Lambda (
Environment) para URLs o configuraciones externas.
- Usa CloudWatch Logs para depurar y monitorear.
- Usa versiones y alias para gestionar despliegues.