Введение в AWS SAM
В постоянно развивающемся мире разработки программного обеспечения бессерверная архитектура стала настоящим прорывом, позволяя разработчикам сосредоточиться на написании кода, не беспокоясь об основной инфраструктуре. Одним из самых мощных инструментов в этой области является AWS Serverless Application Model (AWS SAM). В этой статье мы рассмотрим мир AWS SAM и изучим, как он упрощает разработку и развёртывание бессерверных приложений.
Что такое AWS SAM?
AWS SAM — это фреймворк с открытым исходным кодом, предназначенный для упрощения создания бессерверных приложений. Он использует принципы инфраструктуры как кода (IaC), позволяя вам определять инфраструктуру вашего приложения с помощью простого и понятного синтаксиса. SAM построен на основе AWS CloudFormation, что означает, что вы можете использовать все ресурсы и функции, доступные в CloudFormation, но с дополнительным удобством сокращённого синтаксиса SAM.
Ключевые особенности AWS SAM
- Упрощённое определение инфраструктуры
С AWS SAM вы можете определить инфраструктуру своего бессерверного приложения всего несколькими строками кода. Вот пример шаблона SAM, который настраивает функцию Lambda, API Gateway и таблицу DynamoDB:
AWSTemplateFormatVersion: ‘2010-09-09’ Transform: ‘AWS::Serverless-2016-10-31’ Resources: GetProductsFunction: Type: ‘AWS::Serverless::Function’ Properties: FunctionName: !Sub ‘get-products-${AWS::Region}’ Runtime: nodejs14.x Handler: index.handler CodeUri: get-products/ Events: ApiEvent: Type: ‘Api’ Properties: Path: ‘/products’ Method: ‘get’ ProductsTable: Type: ‘AWS::DynamoDB::Table’ Properties: TableName: !Sub ‘products-${AWS::Region}’ AttributeDefinitions: - AttributeName: id AttributeType: S KeySchema: - AttributeName: id KeyType: HASH BillingMode: PAY_PER_REQUEST
Этот шаблон является мощным примером того, как SAM упрощает определение сложных бессерверных архитектур.
* **Локальное тестирование и отладка**
Одной из выдающихся особенностей AWS SAM является его способность облегчать локальное тестирование и отладку. CLI SAM предоставляет среду выполнения Lambda на вашем локальном компьютере, позволяя тестировать и отлаживать ваши бессерверные приложения перед их развёртыванием в облаке. Вот как можно использовать команду sam local для вызова функции Lambda локально:
```bash
sam local invoke GetProductsFunction --event events/event.json
Эта команда имитирует вызов вашей функции Lambda с образцом события, помогая вам выявить проблемы на ранней стадии цикла разработки.
- Непрерывное развёртывание и синхронизация AWS SAM также поддерживает непрерывное развёртывание и синхронизацию ваших локальных изменений с облаком. Команда sam sync следит за локальными изменениями и мгновенно развертывает их в AWS Cloud, значительно ускоряя процессы разработки и тестирования.
sam sync --watch --stack-name my-serverless-app
Эта команда гарантирует, что любые изменения, внесённые вами локально, сразу же отражаются в вашей облачной среде.
Далее в статье подробно описываются шаги по установке и использованию AWS SAM: установка AWS SAM CLI, инициализация проекта SAM, сборка и развёртывание приложения, а также приводятся примеры использования AWS SAM в реальных проектах.