AWS Lambda — это сервис бессерверных вычислений, предоставляемый Amazon Web Services (AWS). Это позволяет разработчикам запускать свой код без выделения серверов или управления ими, позволяя им сосредоточиться на написании бизнес-логики, а не беспокоиться об инфраструктуре. В этой статье мы рассмотрим ключевые функции AWS Lambda и предоставим примеры кода для различных методов использования Lambda.
- Создание лямбда-функции.
Чтобы создать лямбда-функцию, вы можете использовать Консоль управления AWS, интерфейс командной строки AWS или AWS SDK. Вот пример использования AWS SDK для Node.js:
const AWS = require('aws-sdk');
const lambda = new AWS.Lambda();
const createLambdaFunction = async () => {
const params = {
FunctionName: 'MyLambdaFunction',
Runtime: 'nodejs14.x',
Handler: 'index.handler',
Role: 'arn:aws:iam::123456789012:role/lambda-execution-role',
Code: {
S3Bucket: 'my-bucket',
S3Key: 'lambda-code.zip',
},
};
try {
const response = await lambda.createFunction(params).promise();
console.log('Lambda function created:', response.FunctionArn);
} catch (error) {
console.error('Error creating Lambda function:', error);
}
};
createLambdaFunction();
- Вызов лямбда-функции.
Лямбда-функции можно вызывать синхронно или асинхронно. Вот пример асинхронного вызова функции Lambda с использованием AWS SDK для Python:
import boto3
def invoke_lambda_function():
client = boto3.client('lambda')
try:
response = client.invoke(
FunctionName='MyLambdaFunction',
InvocationType='Event',
Payload='{"key1": "value1", "key2": "value2"}'
)
print('Lambda function invoked successfully')
except Exception as e:
print('Error invoking Lambda function:', str(e))
invoke_lambda_function()
- Запуск функций Lambda.
Функции Lambda могут запускаться различными сервисами AWS, такими как Amazon S3, Amazon DynamoDB, Amazon API Gateway и т. д. Ниже приведен пример запуска функции Lambda при загрузке объекта в корзину S3. :
import boto3
def lambda_handler(event, context):
for record in event['Records']:
bucket_name = record['s3']['bucket']['name']
object_key = record['s3']['object']['key']
print(f'Object {object_key} uploaded to bucket {bucket_name}')
# Perform further processing here
lambda_handler()
- Переменные среды в лямбда-функциях.
Вы можете установить переменные среды в лямбда-функциях для хранения значений конфигурации или конфиденциальной информации. Вот пример доступа к переменным среды в функции Lambda с помощью Node.js:
exports.handler = async (event, context) => {
const apiKey = process.env.API_KEY;
// Use the apiKey in your code
};
AWS Lambda предоставляет масштабируемый и экономичный способ запуска вашего кода без необходимости управления серверами. В этой статье мы рассмотрели основы создания, вызова и запуска функций Lambda, а также использования переменных среды. Используя возможности AWS Lambda, разработчики могут создавать масштабируемые и эффективные приложения в бессерверной среде.