Lambda Layer 및 CloudFormation/sam-cli에서 즐거운 X-Ray
5782 단어 sam람다파이썬CloudFormationAWS
소개
이 Lambda Layer 및 X-Ray - Qiita 이라는 기사에서는 X-Ray 를 Lambda Layer 로 통합하는 방법을 소개하고 있습니다. 여러 lambda를 배포하는 경우 개별적으로 X-Ray를 통합하지 않고 한 번에 분리할 수 있기 때문에 꽤 좋은 느낌입니다.
꽤 좋은 느낌입니다만, 조금 명령을 두드리는 것이 번거롭기 때문에, CloudFormation 화할 수 없을까, 라고 생각하고 있었던 곳 AWS SAM CLI에서 Lambda Layers를 빌드할 수 있습니다. - Qiita 라고 하는 기사를 발견했습니다.
그래서 두 기사의 내용을 갓짱하면,
X-Ray의 LambdaLayer를 CloudFormation으로 만들 수 있어 낙칭!
라는 기사입니다.
X-Ray는 AWS Lambda에서 사용할 수 있는 추적 도구입니다. X-Ray를 사용하면 "Lambda의 어느 부분에서 시간이 걸리고 있습니까?"확인할 수 있습니다.
(그림 참조: AWS X-Ray 콘솔: - AWS X-Ray )
X-Ray Lambda Layer 템플릿 정의
template.yaml 외에 xray-layer-src/requirements.txt만 사용하면 괜찮습니다.
template.yaml
template.yamlAWSTemplateFormatVersion: "2010-09-09"
Transform: AWS::Serverless-2016-10-31
Description: CloufFormation Template X-Ray lambda layer sample
Resources:
# X-Ray の Lambda Layer 定義
XRayLayer:
Type: AWS::Serverless::LayerVersion
Properties:
Description: Lambda Layer for XRay
ContentUri: xray-layer-src
CompatibleRuntimes:
- python3.8 # ここは利用している Python のランタイムを指定
Metadata:
BuildMethod: python3.8 # sam-cli でビルド時に指定が必要
# XRayLayer を利用するラムダ定義の例
SomeFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: lambda/src/
Handler: lambda_handler.lambda_handler
Runtime: python3.8
Tracing: Active
Layers:
- !Ref XRayLayer # 作成した Layer の参照
xray-layer-src/requirements.txt
xray-layer-src/requirements.txtaws-xray-sdk
Lambda Layer에 넣을 라이브러리의 지정으로, 여기서는 aws-xray-sdk만을 지정하면 OK입니다.
이제 X-Ray Lambda Layer 리소스를 만들 수 있습니다. 배포는 일반 sam을 사용할 때와 동일합니다.
sam build
sam deploy
X-Ray를 사용하는 Lambda 예제
X-Ray를 이용하는 소스 코드는, 예를 들면 다음과 같습니다.
lambda-src/lamda_handler.pyimport ...
# XRay SDK をインポート。公式ドキュメントにあるように最後にインポートする必要あり
from aws_xray_sdk.core import patch_all
# boto3 などの関連ライブラリにまとめて X-Ray のパッチをあてる
patch_all()
def lambda_handler(event, context):
...
참고 링크
template.yaml 외에 xray-layer-src/requirements.txt만 사용하면 괜찮습니다.
template.yaml
template.yaml
AWSTemplateFormatVersion: "2010-09-09"
Transform: AWS::Serverless-2016-10-31
Description: CloufFormation Template X-Ray lambda layer sample
Resources:
# X-Ray の Lambda Layer 定義
XRayLayer:
Type: AWS::Serverless::LayerVersion
Properties:
Description: Lambda Layer for XRay
ContentUri: xray-layer-src
CompatibleRuntimes:
- python3.8 # ここは利用している Python のランタイムを指定
Metadata:
BuildMethod: python3.8 # sam-cli でビルド時に指定が必要
# XRayLayer を利用するラムダ定義の例
SomeFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: lambda/src/
Handler: lambda_handler.lambda_handler
Runtime: python3.8
Tracing: Active
Layers:
- !Ref XRayLayer # 作成した Layer の参照
xray-layer-src/requirements.txt
xray-layer-src/requirements.txt
aws-xray-sdk
Lambda Layer에 넣을 라이브러리의 지정으로, 여기서는 aws-xray-sdk만을 지정하면 OK입니다.
이제 X-Ray Lambda Layer 리소스를 만들 수 있습니다. 배포는 일반 sam을 사용할 때와 동일합니다.
sam build
sam deploy
X-Ray를 사용하는 Lambda 예제
X-Ray를 이용하는 소스 코드는, 예를 들면 다음과 같습니다.
lambda-src/lamda_handler.py
import ...
# XRay SDK をインポート。公式ドキュメントにあるように最後にインポートする必要あり
from aws_xray_sdk.core import patch_all
# boto3 などの関連ライブラリにまとめて X-Ray のパッチをあてる
patch_all()
def lambda_handler(event, context):
...
참고 링크
Lambda Layer 및 X-Ray - Qiita (재 게시)
AWS SAM CLI에서 Lambda Layers를 빌드할 수 있습니다. - Qiita (재 게시)
Reference
이 문제에 관하여(Lambda Layer 및 CloudFormation/sam-cli에서 즐거운 X-Ray), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/smatsumt/items/879cc6e59356fa27a2c6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)