AWS SAM 구문을 사용하여 CloudFormation으로 Lambda 및 API Gateway 생성
5368 단어 람다APIGateway입문AWSAWSSAM
소개
이번에는 AWS SAM 구문을 사용하여 Hello를 반환하는 API를 만들었습니다.
AWS SAM 구문을 사용하면 간단한 설정만으로 API를 생성할 수 있습니다.
이번에 작성하는 시스템의 구성도를 아래에 나타냅니다.
개발 환경
※AWS CLI 의 인스톨을 하고 있지 않은 경우는, 이하를 참고로 인스톨, 인증을 실시해 주세요.
AWS CLI 설치
AWS CLI 인증
yaml 파일 만들기
이 yaml 파일에 API Gateway 및 Lambda 설정을 씁니다.
이번에 사용한 yaml 파일은 다음과 같습니다.
AWSTemplateFormatVersion: '2010-09-09'
#AWS SAM構文をCloudFormation用に変換する宣言
Transform: 'AWS::Serverless-2016-10-31'
#スタックの説明
Description: test-stack
Resources:
hellofunction:
Type: 'AWS::Serverless::Function'
Properties:
#用意したPythonファイル名を.lambda_handler前に付ける
Handler: Hello.lambda_handler
#作成されるLambda関数名
FunctionName: HelloFunction
#Lambda関数に記述されるコード
CodeUri: Hello.py
#ランタイム設定
Runtime: python3.7
#Lambda関数の説明
Description: 'Hello api'
#メモリサイズ設定
MemorySize: 128
#タイムアウト時間設定
Timeout: 30
#イベントを設定
Events:
helloapi:
#イベントを決定
Type: Api
Properties:
#APIのパスを決定
Path: '/hello'
#メソッドを設定
Method: get
파이썬 코드 작성
다만, Hello 를 돌려주는 코드를 기술했습니다.
import json
def lambda_handler(event, context):
return {
'statusCode': 200,
'body': json.dumps('Hello')
}
각 파일을 패키징하고 템플릿으로 s3에 업로드
다음 명령을 사용하여 각 파일을 패키징하고 S3에 업로드합니다.
이 패키지는 이후 CLoudFormation에 배포하는 데 사용됩니다.
aws cloudformation package --template-file 作成したyamlファイル名 --s3-bucket パッケージを保存するS3バケット名 --output-template-file 作成するテンプレートファイル名.yaml
배포
만든 템플릿을 다음 명령으로 배포합니다.
이전 명령의 실행 결과에서 명령을 복사합니다.
--stack-name 에는 임의의 스택 이름을 입력하고 끝에 --capabilities CAPABILITY_IAM 을 사용하여 실행합니다.
--capabilities CAPABILITY_IAM은 IAM 관련 처리를 수행하는 데 필요합니다.
aws cloudformation deploy --template-file C:\xxx\作成したyamlテンプレートファイル名 --stack-name 任意のスタック名 --capabilities CAPABILITY_IAM
생성된 API 확인
실제로 작성된 API를 두드리면 다음과 같이 Hello가 표시됩니다.
결론
이번에는 AWS SAM 구문을 사용하여 API를 생성했습니다.
AWS에서 서버리스 애플리케이션을 구축할 때는 CloudFormation 구문을 사용하는 것보다 SAM 구문을 더 간단하게 작성할 수 있으므로 사용해 보세요.
Reference
이 문제에 관하여(AWS SAM 구문을 사용하여 CloudFormation으로 Lambda 및 API Gateway 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/KC_NN/items/a5ff44f7e2201e0aecc3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
AWSTemplateFormatVersion: '2010-09-09'
#AWS SAM構文をCloudFormation用に変換する宣言
Transform: 'AWS::Serverless-2016-10-31'
#スタックの説明
Description: test-stack
Resources:
hellofunction:
Type: 'AWS::Serverless::Function'
Properties:
#用意したPythonファイル名を.lambda_handler前に付ける
Handler: Hello.lambda_handler
#作成されるLambda関数名
FunctionName: HelloFunction
#Lambda関数に記述されるコード
CodeUri: Hello.py
#ランタイム設定
Runtime: python3.7
#Lambda関数の説明
Description: 'Hello api'
#メモリサイズ設定
MemorySize: 128
#タイムアウト時間設定
Timeout: 30
#イベントを設定
Events:
helloapi:
#イベントを決定
Type: Api
Properties:
#APIのパスを決定
Path: '/hello'
#メソッドを設定
Method: get
다만, Hello 를 돌려주는 코드를 기술했습니다.
import json
def lambda_handler(event, context):
return {
'statusCode': 200,
'body': json.dumps('Hello')
}
각 파일을 패키징하고 템플릿으로 s3에 업로드
다음 명령을 사용하여 각 파일을 패키징하고 S3에 업로드합니다.
이 패키지는 이후 CLoudFormation에 배포하는 데 사용됩니다.
aws cloudformation package --template-file 作成したyamlファイル名 --s3-bucket パッケージを保存するS3バケット名 --output-template-file 作成するテンプレートファイル名.yaml
배포
만든 템플릿을 다음 명령으로 배포합니다.
이전 명령의 실행 결과에서 명령을 복사합니다.
--stack-name 에는 임의의 스택 이름을 입력하고 끝에 --capabilities CAPABILITY_IAM 을 사용하여 실행합니다.
--capabilities CAPABILITY_IAM은 IAM 관련 처리를 수행하는 데 필요합니다.
aws cloudformation deploy --template-file C:\xxx\作成したyamlテンプレートファイル名 --stack-name 任意のスタック名 --capabilities CAPABILITY_IAM
생성된 API 확인
실제로 작성된 API를 두드리면 다음과 같이 Hello가 표시됩니다.
결론
이번에는 AWS SAM 구문을 사용하여 API를 생성했습니다.
AWS에서 서버리스 애플리케이션을 구축할 때는 CloudFormation 구문을 사용하는 것보다 SAM 구문을 더 간단하게 작성할 수 있으므로 사용해 보세요.
Reference
이 문제에 관하여(AWS SAM 구문을 사용하여 CloudFormation으로 Lambda 및 API Gateway 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/KC_NN/items/a5ff44f7e2201e0aecc3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
aws cloudformation package --template-file 作成したyamlファイル名 --s3-bucket パッケージを保存するS3バケット名 --output-template-file 作成するテンプレートファイル名.yaml
만든 템플릿을 다음 명령으로 배포합니다.
이전 명령의 실행 결과에서 명령을 복사합니다.
--stack-name 에는 임의의 스택 이름을 입력하고 끝에 --capabilities CAPABILITY_IAM 을 사용하여 실행합니다.
--capabilities CAPABILITY_IAM은 IAM 관련 처리를 수행하는 데 필요합니다.
aws cloudformation deploy --template-file C:\xxx\作成したyamlテンプレートファイル名 --stack-name 任意のスタック名 --capabilities CAPABILITY_IAM
생성된 API 확인
실제로 작성된 API를 두드리면 다음과 같이 Hello가 표시됩니다.
결론
이번에는 AWS SAM 구문을 사용하여 API를 생성했습니다.
AWS에서 서버리스 애플리케이션을 구축할 때는 CloudFormation 구문을 사용하는 것보다 SAM 구문을 더 간단하게 작성할 수 있으므로 사용해 보세요.
Reference
이 문제에 관하여(AWS SAM 구문을 사용하여 CloudFormation으로 Lambda 및 API Gateway 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/KC_NN/items/a5ff44f7e2201e0aecc3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이번에는 AWS SAM 구문을 사용하여 API를 생성했습니다.
AWS에서 서버리스 애플리케이션을 구축할 때는 CloudFormation 구문을 사용하는 것보다 SAM 구문을 더 간단하게 작성할 수 있으므로 사용해 보세요.
Reference
이 문제에 관하여(AWS SAM 구문을 사용하여 CloudFormation으로 Lambda 및 API Gateway 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/KC_NN/items/a5ff44f7e2201e0aecc3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)