Озадачен ошибкой события AWS Lambda и контекстной функции ⇐ Python
Озадачен ошибкой события AWS Lambda и контекстной функции
Я пытался разработать торгового бота, используя AWS Lambda, DynamoDB и Eventbridge. Однако я столкнулся с некоторыми странными проблемами при попытке запустить тестовую среду, чтобы убедиться, что мой код работает. Я новичок в среде AWS и буду признателен за любую помощь.
Я пытаюсь позволить AWS Lambda вызывать lambda_hander, используя параметры по умолчанию, вот фрагмент моего lambda_handler для справки.
def lambda_handler(событие, контекст): URL = "https://paper-api.alpaca.markets/v2/orders" тикер = "AAPL" вчера = str(datetime.today() - timedelta(days = 1)) dynamodb = boto3.resource("dynamodb") dynamodb.Table("my_table") dynamodb_item = dynamodb.get_item( Ключ = { «Дата»: вчера[0:10], 'TickerSymbol': тикер, } ) alpaca_headers = { "accept": "приложение/json", "тип контента": "приложение/json", «APCA-API-KEY-ID»: ALPACA_CONFIG['API_KEY'], «APCA-API-СЕКРЕТНЫЙ-КЛЮЧ»: ALPACA_CONFIG['API_SECRET'] } alpaca_payload = { «символ»: «AAPL», "условный": "строка", "тип": "стоп", "time_in_force": "день", "limit_price": "строка", "stop_price": "строка", "trail_price": "строка", "trail_percent": "строка", «extended_hours»: Ложь, } актив = get_current_asset_position(тикер=тикер) prev_closing_price = fast_atof(dynamodb_item['ClosingPrice']) curr_price = fast_atof(актив['current_price']) если curr_price > prev_closing_price * 1,05: alpaca_payload['qty'] = актив['qty'] alpaca_payload['side'] = 'продать' ответ = запросы.post(url, json=alpaca_payload, headers=alpaca_headers) обратный ответ если curr_price < prev_closing_price * 0,8995: alpaca_payload['qty'] = '10' alpaca_payload['side'] = 'купить' ответ = запросы.post(url, json=alpaca_payload, headers=alpaca_headers) обратный ответ Однако при запуске кода в тестовой среде по-прежнему возникает эта ошибка:
{ "errorMessage": "lambda_handler() отсутствуют 2 обязательных позиционных аргумента: 'событие' и 'контекст'", "errorType": "TypeError", "requestId": "", "трассировки стека": [ " Файл \"/var/lang/lib/python3.11/importlib/__init__.py\", строка 126, в import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n", " Файл \"\", строка 1204, в _gcd_import\n", " Файл \"\", строка 1176, в _find_and_load\n", " Файл \"\", строка 1147, в _find_and_load_unlocked\n", " Файл \"\", строка 690, в _load_unlocked\n", " Файл \"\", строка 940, в exec_module\n", " Файл \"\", строка 241, в _call_with_frames_removed\n", " Файл \"/var/task/lambda_function.py\", строка 80, в \nlambda_handler()\n" ] } Как я пытался решить проблему.
[*]Я попробовал увеличить диапазон времени ожидания, думая, что время ожидания моего кода составляет 3 секунды по умолчанию, но это не решило проблему. [*]Я также пробовал переименовать обработчик времени выполнения с лямбда_функции по умолчанию.lambda_handler на другое имя. [*]Я также убедился, что все зависимости импортированы правильно и в заархивированную папку распакованы правильные файлы колес.
Однако проблема все еще сохраняется, и я не знаю, что делать.
Я пытался разработать торгового бота, используя AWS Lambda, DynamoDB и Eventbridge. Однако я столкнулся с некоторыми странными проблемами при попытке запустить тестовую среду, чтобы убедиться, что мой код работает. Я новичок в среде AWS и буду признателен за любую помощь.
Я пытаюсь позволить AWS Lambda вызывать lambda_hander, используя параметры по умолчанию, вот фрагмент моего lambda_handler для справки.
def lambda_handler(событие, контекст): URL = "https://paper-api.alpaca.markets/v2/orders" тикер = "AAPL" вчера = str(datetime.today() - timedelta(days = 1)) dynamodb = boto3.resource("dynamodb") dynamodb.Table("my_table") dynamodb_item = dynamodb.get_item( Ключ = { «Дата»: вчера[0:10], 'TickerSymbol': тикер, } ) alpaca_headers = { "accept": "приложение/json", "тип контента": "приложение/json", «APCA-API-KEY-ID»: ALPACA_CONFIG['API_KEY'], «APCA-API-СЕКРЕТНЫЙ-КЛЮЧ»: ALPACA_CONFIG['API_SECRET'] } alpaca_payload = { «символ»: «AAPL», "условный": "строка", "тип": "стоп", "time_in_force": "день", "limit_price": "строка", "stop_price": "строка", "trail_price": "строка", "trail_percent": "строка", «extended_hours»: Ложь, } актив = get_current_asset_position(тикер=тикер) prev_closing_price = fast_atof(dynamodb_item['ClosingPrice']) curr_price = fast_atof(актив['current_price']) если curr_price > prev_closing_price * 1,05: alpaca_payload['qty'] = актив['qty'] alpaca_payload['side'] = 'продать' ответ = запросы.post(url, json=alpaca_payload, headers=alpaca_headers) обратный ответ если curr_price < prev_closing_price * 0,8995: alpaca_payload['qty'] = '10' alpaca_payload['side'] = 'купить' ответ = запросы.post(url, json=alpaca_payload, headers=alpaca_headers) обратный ответ Однако при запуске кода в тестовой среде по-прежнему возникает эта ошибка:
{ "errorMessage": "lambda_handler() отсутствуют 2 обязательных позиционных аргумента: 'событие' и 'контекст'", "errorType": "TypeError", "requestId": "", "трассировки стека": [ " Файл \"/var/lang/lib/python3.11/importlib/__init__.py\", строка 126, в import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n", " Файл \"\", строка 1204, в _gcd_import\n", " Файл \"\", строка 1176, в _find_and_load\n", " Файл \"\", строка 1147, в _find_and_load_unlocked\n", " Файл \"\", строка 690, в _load_unlocked\n", " Файл \"\", строка 940, в exec_module\n", " Файл \"\", строка 241, в _call_with_frames_removed\n", " Файл \"/var/task/lambda_function.py\", строка 80, в \nlambda_handler()\n" ] } Как я пытался решить проблему.
[*]Я попробовал увеличить диапазон времени ожидания, думая, что время ожидания моего кода составляет 3 секунды по умолчанию, но это не решило проблему. [*]Я также пробовал переименовать обработчик времени выполнения с лямбда_функции по умолчанию.lambda_handler на другое имя. [*]Я также убедился, что все зависимости импортированы правильно и в заархивированную папку распакованы правильные файлы колес.
Однако проблема все еще сохраняется, и я не знаю, что делать.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
AWS Lambda (.NET) + SQS: ошибка преобразования полезных данных JSON события Lambda в строку
Anonymous » » в форуме C# - 0 Ответы
- 87 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Использование AWS SDK — ошибка при построении пути PKIX внутри функции AWS Lambda.
Anonymous » » в форуме JAVA - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-