Developing Serverless Applications with Python
Best practices for building serverless applications using Python on cloud platforms like AWS Lambda and Google Cloud Functions.
0 likes
173 views
Rule Content
title: Developing Serverless Applications with Python
description: Best practices for building serverless applications using Python on cloud platforms like AWS Lambda and Google Cloud Functions.
category: Python Cursor Rules
rules:
- id: python-serverless-best-practices
description: >
Ensure Python serverless functions are efficient, secure, and maintainable by following these best practices.
severity: high
tags:
- serverless
- python
- best-practices
patterns:
- pattern: |
def $FUNC_NAME(...):
...
- pattern: |
async def $FUNC_NAME(...):
...
actions:
- message: >
Consider breaking down this function into smaller, single-purpose components to enhance maintainability and scalability.
condition: >
function_length($FUNC_NAME) > 50
- message: >
Ensure proper error handling is implemented to manage exceptions gracefully and provide meaningful error messages.
condition: >
not contains($FUNC_NAME, 'try') or not contains($FUNC_NAME, 'except')
- message: >
Optimize memory allocation by setting appropriate memory sizes based on the function's actual needs to improve performance and reduce costs.
condition: >
not contains($FUNC_NAME, 'memory_size')
- message: >
Implement secure management of sensitive information by using environment variables or secret management services instead of hardcoding secrets.
condition: >
contains($FUNC_NAME, 'SECRET_KEY') or contains($FUNC_NAME, 'PASSWORD')
- message: >
Set up comprehensive logging and monitoring to track function performance and troubleshoot issues effectively.
condition: >
not contains($FUNC_NAME, 'logging') or not contains($FUNC_NAME, 'monitoring')
- message: >
Regularly test your functions to ensure reliability and catch potential issues early.
condition: >
not contains($FUNC_NAME, 'test') or not contains($FUNC_NAME, 'pytest')
- message: >
Minimize dependencies to reduce cold start times and potential security vulnerabilities.
condition: >
count_imports($FUNC_NAME) > 5
- message: >
Implement proper security protocols and follow the principle of least privilege to enhance function security.
condition: >
not contains($FUNC_NAME, 'iam') or not contains($FUNC_NAME, 'policy')
- message: >
Optimize function performance by reducing cold start times through appropriate memory allocation and keeping instances warm.
condition: >
not contains($FUNC_NAME, 'warm') or not contains($FUNC_NAME, 'cold start')
- message: >
Ensure your function is designed for scalability to handle varying loads efficiently.
condition: >
not contains($FUNC_NAME, 'scalable') or not contains($FUNC_NAME, 'concurrency')