
serverless [email protected]
AWS Lambda에서 YAML 인프라, 로컬 개발, 다중 언어 런타임 지원을 통해 서버리스 애플리케이션을 배포하고 관리하기 위한 CLI 프레임워크입니다.
Serverless Framework – 자동 확장되고, 유휴 상태일 때 비용이 들지 않으며, 유지보수가 극히 낮은 애플리케이션을 구축하기 위해 AWS Lambda 및 기타 관리형 클라우드 서비스를 쉽게 사용할 수 있게 해줍니다.
Serverless Framework는 코드와 클라우드 인프라를 배포하기 위한 접근하기 쉬운 YAML 문법을 갖춘 명령줄 도구로, API, 프런트엔드, 데이터 파이프라인, 예약 작업 등 다양한 서버리스 애플리케이션 사용 사례를 지원합니다. Node.js, TypeScript, Python, Go, Java 등을 지원하는 다중 언어 프레임워크이며, 1,000개 이상의 플러그인을 통해 완전히 확장할 수 있어 더 많은 서버리스 사용 사례와 워크플로를 프레임워크에 추가할 수 있습니다.
Serverless Inc가 적극적으로 유지보수하고 있습니다.
Serverless Framework - V.4
2026년 7월 – V.4는 계속해서 중요한 업데이트를 제공하고 있습니다. 아래에서 모두 확인하세요. 최근 릴리스에는 Sandboxes(AWS Lambda의 격리된 임시 컴퓨팅), 기본 Amazon Bedrock AgentCore 지원, Managed Instances, Durable Functions, 내장 AWS 로그인 및 SSO가 추가되었습니다. 언제나 그렇듯, 우리는 서버리스의 미래에 그 어느 때보다 기대하고 있습니다.
V.4의 새로운 기능
지금까지 V.4에서 새로워진 모든 것을 정리했습니다.
- Sandboxes – 격리되고 일시적인 컴퓨팅 환경을 AWS Lambda에 배포합니다. AI 에이전트, 코드 실행 등 신뢰할 수 없거나 세션별 워크로드에 적합합니다. 자세한 정보
- Amazon Bedrock AgentCore 지원 –
serverless.yml의ai속성을 통해 AI 에이전트, 메모리, 도구, 게이트웨이, 브라우저, 코드 인터프리터를 직접 정의하고serverless agent명령으로 관리할 수 있습니다. 자세한 정보 - AWS 로그인 및 SSO –
serverless login aws및serverless login aws sso를 통해 브라우저 기반 흐름으로 AWS 자격 증명을 설정합니다. - 배포 차이(Diffs) –
serverless diff로 배포하기 전에 실제 AWS CloudFormation 스택이 어떻게 변경될지 미리 확인합니다. - Reconcile 명령 – CLI 외부에서 스택이 제거된 경우
serverless reconcile를 통해 사용 기록을 AWS 계정과 동기화 상태로 유지합니다. - 관리형 인스턴스 – 더 높은 처리량, 예측 가능한 용량, 장기 실행 워크로드를 지원하는 EC2 기반 Lambda 실행을 기본 지원합니다.
- Durable functions – 내구성이 있는 상태 저장 워크플로와 장기 실행 오케스트레이션을 기본 지원합니다.
- Lambda 테넌트 격리 모드: 테넌트별로 별도의 Lambda 컴퓨팅 환경을 만들어 노이즈 네이버(noisy neighbor) 효과를 줄이고 트래픽이 많은 고객을 더 깔끔하게 격리할 수 있습니다.
- HTTP 응답 스트리밍: API Gateway HTTP API와 함께 Lambda에서 로그, 장기 실행 보고서, 부분 응답 또는 AI LLM 응답을 스트리밍합니다.
- 함수별 IAM 역할: 함수별 IAM 정책을 추가하거나 전체 서비스를 함수별 정책을 사용하도록 전환합니다.
- 기본 제공 플러그인: 인기 있는 커뮤니티 플러그인(Python Requirements, AppSync, Prune, API Gateway Service Proxy 등)이 이제 프레임워크의 일급 기본 기능으로 포함됩니다.
- 향상된 사용자 지정 도메인 지원: API 등의 사용자 지정 도메인과 SSL 인증서를 자동으로 구성하기 위해 더 이상 외부 플러그인이 필요하지 않습니다. 이제 Serverless Framework CLI에 기본 제공됩니다.
- Doppler 통합: Serverless Framework Variables를 통해 Doppler에서 Secrets를 쉽게 가져올 수 있습니다.
- Serverless MCP 소개: Cursor, Windsurf 등 AI 기반 IDE를 위해 설계되었으며, 코드에서 클라우드 리소스를 자동 감지하고 AWS에서 로그, 상태, 구성을 가져와 IDE에서 직접 서버리스 앱을 디버깅할 수 있습니다. AWS 콘솔에 접속할 필요가 없습니다! Serverless Framework, CloudFormation 등을 지원합니다.
- AWS SAM, AWS CloudFormation 및 기존 Serverless Framework 프로젝트 지원: 이제 하나의 도구로 세 가지 IaC 프로젝트 파일을 모두 배포할 수 있습니다. 자세한 정보
- 기본 TypeScript 지원: 이제
serverless.yml의 AWS Lambda 함수에서.ts핸들러를 사용할 수 있으며 배포 시 자동으로 빌드됩니다. 이를 가능하게 하는 ESBuild가 프레임워크에 포함되었습니다. 자세한 정보 - AWS AI 스택: V.4는 AWS AI 스택에 최적화되어 있습니다. Amazon Bedrock을 통한 LLM 등 AWS에서 풀스택 서버리스 AI 애플리케이션 보일러플레이트를 배포할 수 있습니다.
- 새로운 개발 모드:
serverless dev를 실행하면 실제 아키텍처의 이벤트가 로컬 코드로 라우팅되어 배포 없이 빠르게 변경할 수 있습니다. 자세한 정보 - 최신 런타임 지원: AWS Lambda에서 Node.js 24(
nodejs24.x), Python 3.14(python3.14), Java 25(java25)를 지원합니다. - 최신 리전 지원: 뉴질랜드에 새로 발표된
ap-southeast-6을 포함한 모든 주요 리전을 지원합니다. - 새로운 Stages 속성:
stages를 통해 스테이지별 구성을 쉽게 구성하고 대체할default구성을 설정할 수 있습니다. - 향상된 Compose 경험: Serverless Compose는 이제 배포되는 내용을 더 잘 보여주는 새로운 CLI 경험을 제공합니다.
- 새로운 Terraform 및 Vault 통합: 여러 Terraform 상태 저장 솔루션에서 상태 출력을, Vault에서 비밀을 가져옵니다. Terraform 문서 Vault 문서
- Support 명령: CLI에서 직접 지원 요청을 팀에 보낼 수 있으며, 보내기 전에 검토할 수 있는 컨텍스트 정보가 자동으로 포함됩니다.
- AI용 디버그 요약: 버그가 발생하면
serverless support --ai를 실행하여 마지막 버그와 필요한 모든 컨텍스트를 간결하게 요약한 보고서를 생성할 수 있습니다. ChatGPT와 같은 AI 도구에 붙여넣기에 최적화되어 있습니다. - AWS Lambda 고급 로깅 제어: 로그를 JSON으로 캡처하고, 로그 세분성을 높이고, 사용자 지정 로그 그룹을 설정할 수 있습니다. AWS 문서와 YAML 구현을 참조하세요.
- Axiom 통합: Axiom의 관찰 가능성 솔루션과 통합하여 AWS CloudWatch보다 3배 저렴한 비용으로 강력한 로깅, 메트릭, 트레이스 환경을 제공합니다.
- AWS SSO: AWS SSO가 설정한 환경 변수 등이 우선시됩니다. 프레임워크와 대시보드는 더 이상 이러한 변수를 방해하지 않습니다.
- 자동 업데이트: 이제 기본적으로 자동 업데이트가 수행됩니다. 다만 허용할 업데이트 수준은 직접 제어할 수 있습니다.
- 향상된 온보딩 및 설정:
serverless명령이 새 프로젝트 또는 기존 프로젝트를 설정할 때 더 유용하도록 다시 작성되었습니다. - 업데이트된 사용자 지정 리소스 핸들러: 모든 사용자 지정 리소스 핸들러가 현재 Node.js 런타임(
nodejs22.x)을 사용합니다. - 비-AWS 공급자 지원 중단: 다른 클라우드 공급자는 더 이상 지원되지 않습니다. V.4는 AWS에서 최상의 경험을 제공하는 데 집중합니다.
주요 변경 사항
우리는 "aws" Provider에 대한 호환성을 깨뜨리는 변경을 피하려고 합니다. 그러나 알고 있어야 할 몇 가지 큰 변경 사항이 있습니다.
- V.4 라이선스가 변경됩니다. 자세한 내용은 아래 섹션을 참조하세요.
- CLI 내에서 인증이 필요합니다.
- 비-AWS 공급자는 더 이상 지원되지 않습니다. V.4에서 다른 클라우드 인프라 업체를 사용할 수 있는 새로운 방법을 도입할 예정입니다.
추가적인 주요 변경 사항을 발견하면 이슈를 생성해 주세요. 변경된 내용과 잠재적인 주요 변경 사항에 대해 자세히 알아보려면 Serverless Framework V4로 업그레이드 문서를 참조하세요.
V.4의 라이선스 변경
V.4 저장소의 구조와 라이선스는 V.4 npm 모듈과 다릅니다. V.4가 이전에 발표한 대로 공통 SaaS 제품으로 전환됨에 따라 npm 모듈에는 일부 독점 라이선스 소프트웨어가 포함되어 있습니다. 원래 Serverless Framework 소스 코드 등은 계속 MIT 라이선스 소프트웨어로 유지되며, 저장소는 독점 구성 요소와 오픈 소스 구성 요소를 명확히 구분하도록 구성되어 있습니다. MIT 라이선스 코드는 packages/serverless에 자체 LICENSE 파일을 포함하고 있으며, 저장소 루트의 LICENSE는 독점 구성 요소를 다룹니다.
목차
기능
- 더 많이 구축하고, 더 적게 관리: 인프라 관리에 들이는 시간을 줄여 더 빠르게 혁신하세요.
- 최대의 다양성: API, 예약 작업, 웹 소켓, 데이터 파이프라인 등 다양한 서버리스 사용 사례를 처리하세요.
- 자동화된 배포: 코드와 인프라 배포를 함께 처리하여 개발을 간소화하세요.
- 로컬 개발: AWS에서 로컬 AWS Lambda 코드로 이벤트를 라우팅하여 모든 변경을 배포하지 않고도 더 빠르게 개발할 수 있습니다.
- 사용 용이성: 간단한 YAML 구성 덕분에 깊은 클라우드 인프라 지식 없이도 복잡한 애플리케이션을 배포할 수 있습니다.
- 언어 무관: Node.js, Python, Java, Go, C#, Ruby, Swift, Kotlin, PHP, Scala, F# 등 선호하는 언어로 구축하세요.
- 완전한 수명 주기 관리: 서버리스 애플리케이션을 쉽게 개발, 배포, 모니터링, 업데이트, 문제 해결할 수 있습니다.
- 확장 가능한 조직 구성: 큰 앱을 Service로 나누어 Serverless Compose를 통해 개별적으로 또는 함께 작업함으로써 대규모 프로젝트와 팀을 효율적으로 구성할 수 있습니다.
- 손쉬운 환경 관리: 개발, 스테이징, 프로덕션 환경을 원활하게 관리할 수 있습니다.
- 맞춤화 준비: 풍부한 플러그인 생태계로 프레임워크 기능을 확장하고 수정할 수 있습니다.
- 활발한 커뮤니티: 열정적인 Serverless 개발자 커뮤니티와 연결되고 지원을 받을 수 있습니다.
빠른 시작
Serverless Framework를 설치하고 프로젝트를 설정한 다음 AWS Lambda, AWS DynamoDB, AWS S3 등 서버리스 인프라에서 Amazon Web Services로 배포하는 방법은 다음과 같습니다.
NPM으로 Serverless Framework 설치하기
먼저 Node.js 런타임 18.17.0 이상이 설치되어 있어야 합니다. 그런 다음 NPM으로 Serverless Framework를 설치할 수 있습니다.
CLI를 열고 아래 명령을 실행하여 Serverless Framework를 전역으로 설치하세요.```text npm i serverless -g
`serverless`를 실행하여 설치가 제대로 작동하는지 확인하고 현재 버전을 표시합니다.
<br/>
## Serverless Framework 업데이트
버전 4부터 Serverless Framework는 자동으로 업데이트되며, 24시간마다 업데이트 확인을 수행합니다.
다음 명령을 실행하여 업데이트를 강제로 수행할 수 있습니다.```text
serverless update
또는 이 환경 변수를 설정할 수 있습니다:```text SERVERLESS_FRAMEWORK_FORCE_UPDATE=true
<br/>
## `serverless` 명령어
Serverless Framework는 프로젝트를 생성하고 AWS에 배포하는 과정을 안내하는 `serverless` 명령어를 함께 제공합니다. 이 명령어는 템플릿 다운로드, AWS 자격 증명 설정, Serverless Framework 대시보드 설정 등을 지원하며, 그 과정에서 각 개념을 설명합니다.
이 안내서도 Serverless Framework 시작 방법을 안내하지만, 단순히 `serverless` 명령어를 입력하는 것이 더 나은 경험일 수 있음을 유의하세요.```text
serverless
서비스 생성하기
Serverless Framework에서 프로젝트의 핵심 개념은 "서비스(Service)"라고 하며, serverless.yml 파일로 선언됩니다. 이 파일에는 AWS Lambda 함수와 같은 클라우드 인프라, 이벤트로 해당 함수를 트리거하는 인프라, 그리고 AWS Lambda 함수가 다양한 사용 사례(예: AWS DynamoDB 데이터베이스 테이블, AWS S3 스토리지 버킷, HTTP 요청을 수신하여 AWS Lambda로 전달하는 AWS API Gateway)에서 필요로 할 수 있는 추가 인프라를 배포하기 위한 단순화된 구문이 포함되어 있습니다.
서비스는 전체 애플리케이션이 될 수도 있고, 특정 도메인(예: "blog", "users", "products")의 로직이 될 수도 있으며, 하나의 작업을 처리하는 마이크로서비스가 될 수도 있습니다. 프로젝트를 어떻게 구성할지 결정하는 것은 사용자의 몫입니다. 일반적으로 복잡성을 줄이기 위해, 로직을 분리하는 것이 절대적으로 필요해질 때까지 모든 것을 모놀리식 접근 방식으로 시작할 것을 권장합니다.
Serverless Framework 서비스를 생성하고 완전히 설정하려면 대화형 설정 워크플로우를 제공하는 serverless 명령어를 사용하세요.```text
serverless
여러 템플릿이 표시됩니다. 원하는 언어와 사용 사례에 맞는 템플릿을 선택하세요.```text
Serverless ϟ Framework
Welcome to Serverless Framework V.4
Create a new project by selecting a Template to generate scaffolding for a specific use-case.
? Select A Template: …
❯ AWS / Node.js / HTTP API
AWS / Node.js / Express API
AWS / Node.js / Express API with DynamoDB
AWS / Node.js / Scheduled Task
AWS / Node.js / Simple Function
AWS / Python / HTTP API
AWS / Python / Flask API
AWS / Python / Flask API with DynamoDB
AWS / Python / Scheduled Task
AWS / Python / Simple Function
(Scroll for more)
Service Template을 선택하면 해당 파일이 다운로드되며 Service에 이름을 지정할 수 있습니다.```text ? Name Your Service: ›
소문자, 숫자, 하이픈만 사용하세요. 또한 Service 이름은 Serverless Framework가 생성하는 각 클라우드 리소스의 이름에 추가되므로 짧게 유지하세요. 일부 클라우드 리소스는 이름에 문자 길이 제한이 있습니다.
Services 등에 대한 자세한 내용은 [Core Concepts 문서](https://www.serverless.com/framework/docs/providers/aws/guide/intro)를 참조하세요.
<br/>
## 로그인
Serverless Framework V.4부터 `serverless` 명령으로 Service를 설정하면 결국 로그인을 요청하게 됩니다.
그 외에 로그인이 필요한 경우 `serverless login`을 실행하세요.
로그인하면 브라우저에서 [Serverless Framework Dashboard](https://app.serverless.com)로 리디렉션됩니다. 등록 또는 로그인을 마친 후 CLI로 돌아오면 로그인된 상태가 됩니다.
참고로 Serverless Framework CLI와 Dashboard는 무료로 시작할 수 있으며, CLI는 소규모 조직과 인디해커에게 항상 무료로 제공됩니다. 요금에 대한 자세한 내용은 [요금 페이지](https://serverless.com/pricing)를 확인하세요.
<br/>
## 앱 생성
"App" 개념은 하나 이상의 "Services"를 담는 상위 컨테이너이며, `serverless.yml`의 `app` 속성으로 선택적으로 설정할 수 있습니다. `app`을 설정하면 해당 Service에 Serverless Framework Dashboard 기능도 활성화됩니다. 예를 들어 Serverless Framework Dashboard에서 Services 및 해당 배포를 추적하고, Services 간 출력 공유, Secrets 공유, 메트릭·트레이스·로그 활성화가 가능합니다.
`serverless` 온보딩 명령을 사용하면 `app`을 설정하고 Service에 추가하는 과정을 도와줍니다. 기존 Service에 `serverless` 명령으로 App을 생성하거나 Dashboard에서 App을 만들 수도 있습니다.```text
❯ Create A New App
ecommerce
blog
acmeinc
Skip Adding An App
앱은 serverless.yml에서 app 속성을 통해 수동으로 설정할 수도 있습니다:```yaml
service: my-service
app: my-app
Serverless Framework Dashboard의 기능을 사용하고 싶지 않다면 `app` 속성을 추가하지 않으면 됩니다. 앱은 필수가 아닙니다.
<br/>
## AWS 자격 증명 설정
AWS에 클라우드 인프라를 배포하려면 Serverless Framework에 AWS 자격 증명에 대한 액세스 권한을 부여해야 합니다.
새 Service 또는 기존 Service에서 Serverless Framework의 `serverless` 명령을 실행하면 AWS 자격 증명이 올바르게 설정되었는지 또는 만료되었는지 확인할 수 있으며, 처음부터 설정하는 데도 도움이 됩니다.```text
No valid AWS Credentials were found in your environment variables or on your machine. Serverless Framework needs these to access your AWS account and deploy resources to it. Choose an option below to set up AWS Credentials.
❯ Create AWS IAM Role (Easy & Recommended)
Save AWS Credentials in a Local Profile
Skip & Set Later (AWS SSO, ENV Vars)
We recommend creating an AWS IAM Role that's stored in the Serverless Framework Dashboard. We'll be supporting a lot of Provider Credentials in the near future, and the Dashboard is a great place to keep these centralized across your team, helping you stay organized, and securely eliminating the need to keep credentials on the machines of your teammates.
If you are using AWS SSO, you can run serverless login aws sso to sign in via your browser, or simply paste your temporary SSO credentials within the terminal as environment variables.
To learn more about setting up your AWS Credentials, read this guide.
서비스 배포
serverless 명령으로 모든 것을 설정한 후, 이제 Service를 AWS에 배포할 차례입니다.
터미널 세션이 serverless.yml 파일이 있는 디렉터리에 있는지 확인하세요. 방금 Service를 생성했다면, 해당 디렉터리로 cd하는 것을 잊지 마세요.```text
cd [your-new-service-name]
배포하면 AWS에 클라우드 인프라와 코드가 동시에 생성/업데이트됩니다.
`deploy` 명령을 실행하세요:```text
serverless deploy
배포에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
개발
많은 Serverless Framework 및 서버리스 개발자들은 일반적으로 클라우드에서 개발하는 것을 선택합니다. 이는 실제 환경(즉, 프로덕션 환경)과 일치하고, Lambda 및 기타 인프라 종속성을 로컬에서 에뮬레이션하는 것이 복잡할 수 있기 때문입니다.
Serverless Framework V.4에서는 개발자가 실제 클라우드 환경의 정확성으로 빠르게 개발할 수 있도록 _하이브리드 개발 접근 방식_을 만들었습니다. 이것이 새로운 dev 명령어입니다:```text
serverless dev
이 명령을 실행하면 다음과 같은 일이 발생합니다...
AWS CloudFormation 배포가 수행되어 Service 내의 모든 AWS Lambda 함수가 경량 래퍼(lightweight wrapper)를 포함하도록 약간 수정됩니다.
이 AWS CloudFormation 배포가 완료되면, Service 내에서 실행 중인 AWS Lambda 함수는 여전히 이벤트를 수신하고 AWS 내에서 호출될 수 있습니다.
하지만 이벤트는 안전하고 즉시 사용자 머신으로 프록시(proxy)되며, 실제 실행되는 코드는 클라우드의 AWS Lambda 함수 내부 코드가 아니라 사용자 머신의 코드입니다.
이를 통해 아키텍처의 모든 부분을 로컬에서 배포하거나 재생성하지 않고도 코드를 변경할 수 있어 빠르게 개발할 수 있습니다.
로컬 코드의 로그도 터미널 `dev` 세션에 표시됩니다.
코드 실행이 끝나면 로컬 코드의 응답은 다시 클라우드의 AWS Lambda 함수로 전달되며, 함수는 마치 일반적인 AWS Lambda 함수가 클라우드에서 그러하듯 응답을 반환합니다.
참고로, `dev`는 개발 또는 개인 스테이지/환경 전용으로 설계되었으며, 프로덕션 또는 많은 양의 이벤트가 처리되는 스테이지에서는 실행해서는 안 됩니다.
`dev` 세션 사용을 마친 후에는 반드시 `serverless deploy`를 사용하여 최근 로컬 변경 사항을 클라우드의 AWS Lambda 함수로 다시 푸시해야 합니다. 그렇지 않으면 AWS Lambda 함수가 실패합니다(!)
dev 모드에 대한 자세한 내용은 [여기](https://www.serverless.com/framework/docs/providers/aws/cli-reference/dev)에서 확인할 수 있습니다.
<br/>
## 호출(Invoking)
클라우드에서 AWS Lambda 함수를 호출하려면 `serverless deploy` 출력에서 API 엔드포인트가 있는 함수의 URL을 찾거나 `serverless info`를 통해 검색할 수 있습니다. 함수에 API 엔드포인트가 없는 경우 다음과 같이 `invoke` 명령을 사용할 수 있습니다:```bash
sls invoke -f hello
# Invoke and display logs:
serverless invoke -f hello --log
invoke 명령에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
함수 배포
코드 변경 사항을 빠르게 배포하려면 전체 AWS CloudFormation 업데이트를 트리거하기 때문에 훨씬 느린 serverless deploy 명령을 건너뛰고 특정 AWS Lambda 함수에 코드 및 구성 변경 사항만 배포할 수 있습니다.
개별 AWS Lambda 함수에 코드 및 구성 변경 사항을 몇 초 안에 배포하려면 deploy function 명령을 사용하고, -f [function name in serverless.yml]을(를) 배포하려는 함수로 설정하세요.```text
serverless deploy function -f my-api
More details on the `deploy function` command can be found [here](https://www.serverless.com/framework/docs/providers/aws/cli-reference/deploy-function).
<br/>
## Streaming Logs
You can use Serverless Framework to stream logs from AWS Cloudwatch directly to your terminal. Use the `sls logs` command in a separate terminal window:```bash
sls logs -f [Function name in serverless.yml] -t
-f 옵션을 통해 특정 함수를 대상으로 지정하고, -t 옵션을 통해 테일링(즉, 스트리밍)을 활성화합니다.
전체 로컬 개발
많은 Serverless Framework 사용자는 전체 서버리스 아키텍처를 로컬에서 에뮬레이션하기로 선택합니다. AWS Lambda 및 기타 클라우드 서비스를 에뮬레이션하는 것은 결코 정확하지 않으며, 특히 프로젝트와 팀원이 늘어남에 따라 프로세스가 복잡해질 수 있습니다. V.4부터는 개인 스테이지와 함께 새로운 dev 모드를 사용하는 것을 적극 권장합니다.
로컬에서 개발하기로 선택한 경우 다음 워크플로우를 권장합니다...
invoke local 명령을 사용하여 함수를 로컬에서 호출하세요:```bash
sls invoke local -f my-api
또한 다양한 방법으로 이 로컬 호출에 데이터를 전달할 수 있습니다. 다음은 그중 하나입니다:```bash
sls invoke local --function functionName --data '{"a":"bar"}'
invoke local 명령에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
Serverless Framework에는 로컬에서 서버를 실행하고 AWS API Gateway를 에뮬레이션할 수 있는 훌륭한 플러그인도 있습니다. 바로 serverless-offline 플러그인입니다.
자세한 내용은 serverless-offline 문서에서 확인할 수 있습니다.
플러그인 사용
Serverless Framework의 큰 장점은 플러그인 생태계에 있습니다.
플러그인은 Serverless Framework를 확장하거나 덮어써서 새로운 사용 사례나 기능을 제공하며, 수백 개의 플러그인이 있습니다.
일부 이전에 인기 있던 플러그인은 더 이상 필요하지 않습니다. 해당 기능은 이제 프레임워크에 내장되어 있으며, Python requirements, custom domains, AppSync, Prune, API Gateway Service Proxy 등이 포함됩니다.
가장 일반적인 플러그인 중 일부는 다음과 같습니다.
- Serverless Offline - Serverless 프로젝트를 개발할 때 AWS Lambda와 API Gateway를 로컬에서 에뮬레이션합니다.
- Serverless Step Functions - AWS Step Functions 아키텍처를 구축합니다.
서비스에 플러그인을 추가하려면 serverless plugin install --name pluginName을 사용할 수 있습니다. 이 명령은 npm을 통해 플러그인을 설치하고 serverless.yml에 등록합니다.
서비스 구성
Serverless Framework Compose를 사용하면 여러 Serverless Framework 서비스를 동시에 작업하고 다음 작업을 수행할 수 있습니다...
- 여러 서비스를 병렬로 배포
- 서비스를 특정 순서로 배포
- 한 서비스의 출력을 다른 서비스와 공유
- 여러 서비스에 걸쳐 명령 실행
프로젝트 구조는 다음과 같을 수 있습니다.```bash my-app/ service-a/ src/ ... serverless.yml service-b/ src/ ... serverless.yml
Serverless Framework Compose를 사용하려면 `serverless-compose.yml` 파일이 필요합니다. 이 파일에서 배포하려는 서비스를 지정합니다. 또한 한 서비스에서 다른 서비스로 데이터를 공유할 수 있으며, 이는 배포 순서도 생성합니다.```yaml
# serverless-compose.yml
services:
service-a:
path: service-a
service-b:
path: service-b
params:
queueUrl: ${service-a.queueUrl}
다른 서비스에 상속될 Outputs는 일반적으로 AWS CloudFormation Outputs로 정의됩니다:```yaml
service-a/serverless.yml
...
resources: Resources: MyQueue: Type: AWS::SQS::Queue # ... Outputs: queueUrl: Value: !Ref MyQueue
값은 `queueUrl`이라는 이름의 [파라미터로](https://www.serverless.com/framework/docs/guides/parameters) `service-b`에 전달됩니다. Serverless Framework 구성에서 파라미터는 `${param:xxx}` 구문을 통해 참조할 수 있습니다:```yaml
# service-b/serverless.yml
provider:
...
environment:
# Here we inject the queue URL as a Lambda environment variable
SERVICE_A_QUEUE_URL: ${param:queueUrl}
Serverless Framework Compose에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
지원 명령
Serverless Framework V.4에서는 serverless support 명령을 도입했습니다. 이 명령은 이슈 보고서를 생성하거나 지원 팀에 직접 연결할 수 있는 뛰어난 기능입니다. 관련 컨텍스트를 자동으로 포함하고 비밀번호나 계정 정보와 같은 민감한 세부 정보는 제외하여 제출 전에 확인할 수 있습니다. 이 간소화된 프로세스를 통해 문제가 빠르고 안전하게 해결됩니다.
이 기능을 사용하려면 오류 또는 명령 실행 후 다음을 실행하세요:```bash sls support
각 명령이 성공했는지 여부와 관계없이 실행 후 컨텍스트는 현재 작업 디렉터리의 `.serverless` 폴더에 저장됩니다.
새 지원 티켓을 열려면 `sls support` 명령을 실행하고 `Get priority support...`를 선택하세요. 선택적으로 생성된 리포트를 검토하고 편집할 수 있습니다. 지원 티켓 열기는 구독에 가입한 사용자만 사용할 수 있습니다.
새 지원 티켓을 제출하지 않고도 리포트를 생성할 수 있습니다. 이는 다른 사람과 컨텍스트를 공유하거나, Github 이슈를 열거나, ChatGPT와 같은 AI 프롬프트에 사용할 때 유용합니다. 이렇게 하려면 `sls support` 명령을 실행하고 `Create a summary report...` 또는 `Create a comprehensive report..`를 선택하세요. `sls support --summary` 또는 `sls support --all`을 실행하여 프롬프트를 건너뛸 수 있습니다. 이는 리포트를 클립보드에 복사할 때 특히 유용합니다 (예: `sls support --summary | pbcopy`).
<br/>
## 서비스 제거
서비스를 삭제하려면 `remove`를 실행하세요. 이렇게 하면 프로젝트에서 생성한 모든 AWS 리소스가 삭제되어 예상치 못한 비용이 발생하지 않습니다. 또한 Serverless Dashboard에서 서비스가 제거됩니다.```bash
sls remove
remove 명령에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
다음 단계
Serverless Framework를 계속 사용하는 데 도움이 되는 몇 가지 유용한 리소스는 다음과 같습니다.
- Serverless Framework의 핵심 개념 살펴보기
- 이 Serverless Framework 템플릿에서 영감 얻기
- Lambda 함수를 트리거할 수 있는 모든 이벤트 알아보기
- Serverless Framework의
serverless.yml가이드 북마크하기 - Serverless Framework를 확장할 플러그인 레지스트리 검색하기
커뮤니티
보안 및 버그 공개
우리는 보안을 중요하게 생각합니다. 보안 문제를 발견하시면 [email protected]으로 연락하여 책임 있게 공개해 주시기 바랍니다. 취약점을 해결하기 전까지 공개적으로 공표하지 말아 주시기 바랍니다.
자세한 내용은 보안 정책을 참조하세요.
