У меня есть очень простая лямбда-функция, которую я вызываю с помощью кнопки IOT, которая запускает задачу ECS, очень легкий материал.Я был заинтересован в добавлении трассировки и обнаружил, что трассировка «одним щелчком», которую вы получаете от Lambda, не дает вам ничего особенного.
Я читал несколько сообщений о Декораторах и SDK Github , а также документы AWS по трассировке Python для Lambda , и я подумал, что это должно быть достаточно просто.
Начало моей функциитеперь следующим образом:
import boto3
from aws_xray_sdk.core import xray_recorder
@xray_recorder.capture("handler")
def handler(event,context):
client = boto3.client('ecs')
response = client.run_task(
---python code---
return str(response)
На какое тестирование сейчас выдается ошибка:
Response:
{
"errorMessage": "Unable to import module 'lambda_function'"
}
Request ID:
"REQID...e3f379f4702a"
Function Logs:
START RequestId: REQID...e3f379f4702a Version: $LATEST
Unable to import module 'lambda_function': No module named 'aws_xray_sdk'
Мой обработчик в консоли - просто lambda_function.handler
, и он работал до добавления этого инструментария.Я сделал несколько других вариантов, пытаясь использовать Subsegments
вместо этого в коде и столкнулся с той же проблемой.Я довольно новичок, когда дело доходит до Python, поэтому я не уверен, где проверить дальше, или если я даже делаю это правильно.
Если это применимо, я написал код в консоли и неиспользуйте Layers или ZIP упаковку либо