기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
에서 애플리케이션 생성 AWS SAM
시작하기 및 읽기를 사용 방법 AWS Serverless Application Model (AWS SAM) 마치면 개발자 환경에서 AWS SAM 프로젝트를 만들 준비가 된 것입니다. AWS SAM 프로젝트는 서버리스 애플리케이션 작성을 위한 출발점이 됩니다. AWS SAMCLIsam init
명령 옵션 목록은 을 참조하십시오sam init.
AWS Serverless Application Model 명령줄 인터페이스 (AWS SAMCLI) sam init
명령은 다음으로 구성된 새 서버리스 응용 프로그램을 초기화하는 옵션을 제공합니다.
-
인프라 코드를 정의하기 위한 AWS SAM 템플릿입니다.
-
애플리케이션을 구성하는 폴더 구조입니다.
-
AWS Lambda 함수에 대한 구성.
AWS SAM 프로젝트를 생성하려면 이 섹션의 항목을 참조하십시오.
새 서버리스 애플리케이션 초기화
CLIAWS SAM을 사용하여 새 서버리스 애플리케이션을 초기화하려면
-
cd
를 시작 디렉터리로. -
명령줄 프롬프트에 다음 명령을 실행합니다.
$
sam init
-
AWS SAMCLI는 새 서버리스 애플리케이션을 만들기 위한 대화형 흐름을 안내합니다.
참고
에 튜토리얼: 다음을 사용하여 Hello World 애플리케이션 배포하기 AWS SAM 설명된 대로 이 명령은 서버리스 애플리케이션을 초기화하여 프로젝트 디렉터리를 생성합니다. 이 디렉터리에는 여러 개의 파일과 폴더가 포함됩니다. 가장 중요한 파일은 입니다
template.yaml
. 이것이 여러분의 AWS SAM 템플릿입니다. 사용 중인 Python 버전은 sam init 명령으로 만든template.yaml
파일에 나열된 Python 버전과 일치해야 합니다.
시작 템플릿 선택
템플릿은 다음과 같이 구성되어 있습니다.
-
인프라 코드의 AWS SAM 템플릿입니다.
-
프로젝트 파일을 구성하는 시작 프로젝트 디렉터리. 예를 들어, 여기에는 다음이 포함될 수 있습니다.
-
Lambda 함수 코드 및 해당 종속성에 대한 구조.
-
로컬 테스트용 테스트 이벤트가 포함된
events
폴더. -
유닛 테스트를 지원하는
tests
폴더. -
프로젝트 설정을 구성하는
samconfig.toml
파일. -
ReadMe
파일 및 기타 기본 시작 프로젝트 파일.
다음은 시작 프로젝트 디렉터리의 예입니다.
sam-app ├── README.md ├── __init__.py ├── events │ └── event.json ├── hello_world │ ├── __init__.py │ ├── app.py │ └── requirements.txt ├── samconfig.toml ├── template.yaml └── tests ├── __init__.py ├── integration │ ├── __init__.py │ └── test_api_gateway.py ├── requirements.txt └── unit ├── __init__.py └── test_handler.py
-
사용 가능한 AWS 빠른 시작 템플릿 목록에서 선택하거나 사용자 지정 템플릿 위치를 제공할 수 있습니다.
AWS 퀵 스타트 템플릿을 선택하려면
-
메시지가 표시되면 AWS 빠른 시작 템플릿을 선택합니다.
-
시작하려면 AWS 퀵 스타트 템플릿을 선택하세요. 다음은 그 예제입니다.
Which template source would you like to use? 1 - AWS Quick Start Templates 2 - Custom Template Location Choice:
1
Choose an AWS Quick Start application template 1 - Hello World Example 2 - Multi-step workflow 3 - Serverless API 4 - Scheduled task 5 - Standalone function 6 - Data processing 7 - Hello World Example With Powertools 8 - Infrastructure event management 9 - Serverless Connector Hello World Example 10 - Multi-step workflow with Connectors 11 - Lambda EFS example 12 - DynamoDB Example 13 - Machine Learning Template:4
사용자 지정 템플릿 위치를 직접 선택하려면
-
메시지가 표시되면 사용자 지정 템플릿 위치를 선택합니다.
Which template source would you like to use? 1 - AWS Quick Start Templates 2 - Custom Template Location Choice:
2
-
AWS SAMCLI에 템플릿 위치를 제공하라는 메시지가 표시됩니다.
Template location (git, mercurial, http(s), zip, path):
템플릿 .zip 파일 아카이브에 다음 위치 중 하나를 제공합니다.
-
GitHub 리포지토리 - GitHub 리포지토리에 있는 .zip 파일의 경로입니다. 파일은 리포지토리의 루트에 있어야 합니다.
-
Mercurial 리포지토리 - Mercurial 리포지토리에 있는 .zip 파일의 경로입니다. 파일은 리포지토리의 루트에 있어야 합니다.
-
.zip 경로 —.zip 파일의 경로 HTTPS 또는 로컬 경로입니다.
-
-
AWS SAMCLI는 사용자 지정 템플릿을 사용하여 서버리스 애플리케이션을 초기화합니다.
런타임 선택
AWS 빠른 시작 템플릿을 선택하면 AWS SAMCLI에 Lambda 함수의 런타임을 선택하라는 메시지가 표시됩니다. AWS SAMCLI에 표시되는 옵션 목록은 Lambda에서 기본적으로 지원하는 런타임입니다.
-
런타임은 실행 환경에서 실행되는 언어별 환경을 제공합니다.
사용자 지정 런타임과 함께 다른 프로그래밍 언어를 사용할 수 있습니다. 이렇게 하려면 시작 애플리케이션 구조를 수동으로 만들어야 합니다. 그런 다음 sam init
를 사용하여 사용자 지정 템플릿 위치를 구성하여 애플리케이션을 빠르게 초기화할 수 있습니다.
선택 항목에 따라 AWS SAMCLI는 Lambda 함수 코드 및 종속성에 대한 시작 디렉터리를 생성합니다.
Lambda가 런타임에 대해 여러 종속성 관리자를 지원하는 경우, 선호하는 종속성 관리자를 선택하라는 메시지가 표시됩니다.
패키지 유형 선택
AWS 빠른 시작 템플릿과 런타임을 선택하면 AWS SAMCLI에 패키지 유형을 선택하라는 메시지가 표시됩니다. 패키지 유형은 Lambda 서비스에서 사용하기 위해 Lambda 함수를 배포하는 방법을 결정합니다. 지원되는 두 가지 패키지 유형은 다음과 같습니다.
-
컨테이너 이미지에는 기본 운영 체제, 런타임, Lambda 익스텐션, 애플리케이션 코드 및 해당 종속 항목이 포함됩니다.
-
.zip 파일 아카이브에는 애플리케이션 코드와 해당 종속 항목이 포함됩니다.
배포 패키지 유형에 대해 자세히 알아보려면 AWS Lambda 개발자 안내서의 Lambda 배포 패키지를 참조하세요.
다음은 컨테이너 이미지로 패키징된 Lambda 함수를 사용하는 애플리케이션의 예제 디렉터리 구조입니다. 는 이미지를 AWS SAMCLI 다운로드하고 함수의 Dockerfile
디렉터리에 a를 만들어 이미지를 지정합니다.
sam-app ├── README.md ├── __init__.py ├── events │ └── event.json ├── hello_world │ ├── Dockerfile │ ├── __init__.py │ ├── app.py │ └── requirements.txt ├── samconfig.toml ├── template.yaml └── tests ├── __init__.py └── unit ├── __init__.py └── test_handler.py
다음은 .zip 파일 아카이브로 패키징된 함수를 사용하는 애플리케이션의 예제 디렉터리 구조입니다.
sam-app ├── README.md ├── __init__.py ├── events │ └── event.json ├── hello_world │ ├── __init__.py │ ├── app.py │ └── requirements.txt ├── samconfig.toml ├── template.yaml └── tests ├── __init__.py ├── integration │ ├── __init__.py │ └── test_api_gateway.py ├── requirements.txt └── unit ├── __init__.py └── test_handler.py
AWS X-Ray 추적을 구성합니다.
AWS X-Ray 추적을 활성화하도록 선택할 수 있습니다. 자세히 알아보려면 AWS X-Ray무엇입니까를 참조하십시오. AWS X-Ray 개발자 안내서에서
활성화하면 AWS SAMCLI 템플릿이 구성됩니다. AWS SAM 다음은 그 예제입니다.
Globals: Function: ... Tracing: Active Api: TracingEnabled: True
Amazon CloudWatch 애플리케이션 인사이트를 통한 모니터링 구성
Amazon CloudWatch 애플리케이션 인사이트를 사용하여 모니터링을 활성화하도록 선택할 수 있습니다. 자세한 내용은 Amazon CloudWatch 사용 설명서의 Amazon CloudWatch 애플리케이션 인사이트를 참조하십시오.
활성화하면 AWS SAMCLI 템플릿이 구성됩니다. AWS SAM 다음은 그 예제입니다.
Resources: ApplicationResourceGroup: Type: AWS::ResourceGroups::Group Properties: Name: Fn::Join: - '' - - ApplicationInsights-SAM- - Ref: AWS::StackName ResourceQuery: Type: CLOUDFORMATION_STACK_1_0 ApplicationInsightsMonitoring: Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName: Fn::Join: - '' - - ApplicationInsights-SAM- - Ref: AWS::StackName AutoConfigurationEnabled: 'true' DependsOn: ApplicationResourceGroup
애플리케이션 이름을 지정합니다.
애플리케이션의 이름을 제공합니다. AWS SAMCLI는 이 이름을 사용하여 애플리케이션의 최상위 폴더를 만듭니다.
sam init에 대한 옵션
다음은 sam init
명령과 함께 사용할 수 있는 몇 가지 기본 옵션입니다. 콘텐츠 옵션 목록은 sam init 섹션을 참조하세요.
사용자 지정 템플릿 위치를 사용하여 애플리케이션 초기화
--location
옵션을 사용하고 지원되는 사용자 지정 템플릿 위치를 제공합니다. 다음은 그 예제입니다.
$
sam init --location
https://github.com/aws-samples/sessions-with-aws-sam/raw/master/starter-templates/web-app.zip
대화형 흐름 없이 애플리케이션 초기화
--no-interactive
옵션을 사용하고 명령줄에서 구성 선택 사항을 제공하여 대화형 흐름을 건너뜁니다. 다음은 그 예제입니다.
$
sam init --no-interactive
--runtime go1.x --name go-demo --dependency-manager mod --app-template hello-world
문제 해결
문제를 AWS SAMCLI 해결하려면 을 참조하십시오AWS SAMCLI 문제 해결.
예
Hello World 스타터 템플릿을 사용하여 새 서버리스 애플리케이션을 초기화하십시오. AWS
이 예제는 자습서: Hello World 애플리케이션 배포의 1단계: Hello World 샘플 애플리케이션 초기화 섹션을 참조하세요.
사용자 지정 템플릿 위치를 사용하여 새 서버리스 애플리케이션 초기화
다음은 사용자 지정 템플릿에 GitHub 위치를 제공하는 예제입니다.
$
sam init --location
gh:aws-samples/cookiecutter-aws-sam-python
$
sam init --location
git+sh://git@github.com/aws-samples/cookiecutter-aws-sam-python.git
$
sam init --location
hg+ssh://hg@bitbucket.org/repo/template-name
다음은 로컬 파일 경로의 예제입니다:
$
sam init --location
/path/to/template.zip
다음은 사용자가 도달할 수 있는 경로의 예입니다. HTTPS
$
sam init --location
https://github.com/aws-samples/sessions-with-aws-sam/raw/master/starter-templates/web-app.zip
자세히 알아보기
sam init
명령 사용에 대한 자세한 내용은 다음을 참조하세요.
-
학습 AWS SAM: sam init
— Serverless Land “학습 AWS SAM” 시리즈 YouTube -
AWS SAMCLI(SAMS2E7을 사용한 세션) 와 함께 사용할 서버리스 애플리케이션 구조화
— 시리즈가 시작된 세션. AWS SAM YouTube
다음 단계
AWS SAM 프로젝트를 만들었으니 이제 애플리케이션 작성을 시작할 준비가 되었습니다. 다음과 같이 인프라를 정의하십시오. AWS SAM이를 위해 완료해야 하는 작업에 대한 자세한 지침은 을 참조하십시오.