Serverless Framework로 만든 Lambda에 X-Ray의 활성 추적 적용
아직 미리 보기 버전이기도 하며, CloudFormation에서는 Lambda에 X-Ray의 액티브 트레이스를 설정하는 정의는 추가되지 않은 모습입니다.
그 때문에 CloudFormation을 이용하고 있는 Serverless Framework에서도 아직 X-Ray를 이용할 수 없습니다만・・・
뭐 기다리지 않네요.
그래서 수작업 섞어서 설정해 보았습니다.
사전 준비
Lambda에서 X-Ray로 데이터를 전송하려면
iamRoleStatements
가 필요합니다.serverless.yml
에 써 둡시다.serverless.yml
provider:
name: aws
runtime: nodejs4.3
iamRoleStatements:
- Effect: "Allow"
Action:
- "xray:PutTraceSegments"
- "xray:PutTelemetryRecords"
Resource:
- "*"
배포된 Lambda에 수동으로 X-Ray 설정
배포 후 AWS의 관리 콘솔에서 X-Ray 설정을 활성화합니다.
Lambda의 경우 X-Ray의 관리 화면이 아니라 Lambda의 관리 화면 측에서 설정하므로주의하십시오.
활성 추적 사용을 켜고 저장합니다.
"Lambda의 수가 많기 때문에 수작업은 힘들다"는 분은 AWS-CLI를 사용합시다.
update-function-configuration
의 TracingConfig
를 사용하면 좋을 것 같습니다Lambda 실행 결과 보기
여기까지 하면, 나머지는 X-Ray가 잘 해 줍니다.
체크 박스의 온 오프만으로 설정할 수 있으므로, 부담없이 시험해 부담없이 멈출 수 있는 것이 좋네요.
Tips: sls deploy에서 충돌하지 않습니까?
CloudFormation에서 정의한 내용을 수동으로 설정 변경하고 있습니다만, 현재
sls deploy
로의 갱신도 문제 없게 할 수 있는 모습입니다.CloudFormation이 Lambda - X-Ray를 지원할 때 어떻게 될지는 모르겠지만, 최악 한번 X-Ray 연계를 모두 끊고 나서 Serverless Framework 측에서 재설정할 필요가 있을지도 모릅니다.
Tips: sls remove 벗기기
IAMRole을 X-Ray측에서도 사용한다(?)로부터인가,
sls remove
$ sls remove --stage xraytest --profile static
Serverless: Getting all objects in S3 bucket...
Serverless: Removing objects in S3 bucket...
Serverless: Removing Stack...
Serverless: Checking Stack removal progress...
...............................................................................................................................................................................................................................................................Serverless: Deployment failed!
Serverless Error ---------------------------------------
An error occurred while provisioning your stack: IamRoleLambdaExecution
- Cannot delete entity, must detach all policies first..
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Forums: forum.serverless.com
Chat: gitter.im/serverless/serverless
Your Environment Information -----------------------------
OS: darwin
Node Version: 7.4.0
Serverless Version: 1.10.1
AWS 콘솔에서 CloudFormation 화면으로 이동하여 스택 삭제를 다시 시도하세요.
현장에서는 이상입니다.
Reference
이 문제에 관하여(Serverless Framework로 만든 Lambda에 X-Ray의 활성 추적 적용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/motchi0214/items/203163ddd27a2ae8f10d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)