Объект «Колба» не является итерируемым | Лямбда AWS с использованием ZappaPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Объект «Колба» не является итерируемым | Лямбда AWS с использованием Zappa

Сообщение Anonymous »

Я пытаюсь развернуть приложение Flask на лямбда-выражении AWS с помощью zappa. (Я новичок в этом, поэтому, если мне нужно предоставить более актуальную информацию, спрашивайте!)
Приложение Flask имеет следующую структуру каталогов:
backend
├── __init__.py
├── __pycache__
├── app.py
├── databases
├── home.py
├── static
├── templates
└── utils.py

Где приложение создается с помощью app.py следующим образом:
import os
from flask import Flask as FlaskApp
from flask_cors import CORS
import boto3
import logging
from backend import home

def initialize_app(test_config=None, *args, **kwargs):

print("MADE IT HERE TOO")

# create and configure the app
app = FlaskApp(__name__, instance_relative_config=True)

# Set up logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
logger.info("Boto3 Version: %s", boto3.__version__)

print("APP HAS REACHED THIS POINT")

s3_client = boto3.client('s3')

print("Here too...")

# Example of logging
try:
response = s3_client.list_buckets()
logger.info("S3 Buckets: %s", response['Buckets'])
except Exception as e:
logger.error("Error accessing S3: %s", str(e))

if test_config is None:
# load the instance config, if it exists, when not testing
app.config.from_pyfile('config.py', silent=True)
else:
# load the test config if passed in
app.config.from_mapping(test_config)

print("made it here before os makedirs")

# ensure the instance folder exists
try:
os.makedirs(app.instance_path)
except OSError:
pass

print("made it here before home")

app.register_blueprint(home.bp)

print("made it here after home")

return app

... проект дома — это просто файл Python с множеством функций. Некоторые из них перенаправлены, некоторые нет. Но что важно, что-то всегда направляется в корень '/' следующим образом:
bp = Blueprint('home', __name__, url_prefix='/')

@bp.route('/')
def index():
return "Welcome to the Home Page!"

Я использую эти настройки Zapper для развертывания приложения в лямбда-выражении AWS:
{
"dev": {
"app_function": "backend.app.initialize_app",
"aws_region": "af-south-1",
"exclude": [
"boto3",
"dateutil",
"botocore",
"s3transfer",
"concurrent",
"node_modules",
"frontend",
"awsTests"
],
"profile_name": "default",
"project_name": "backend",
"runtime": "python3.10",
"s3_bucket": "zappa-htprl75eu",
"slim_handler": true
}


Ничего сумасшедшего.
В журналах CloudWatch я вижу, что все операторы печати отображаются правильно. . Однако затем экземпляр лямбды возвращает ошибку:

Объект Flask не является итерируемым

Изображение

Кто-нибудь может помочь мне определить, почему может возникнуть эта ошибка?
Я проверил свой файл home.py на наличие чего-либо, что могло вызывать приложение, но это не так. Поэтому я могу только предположить, что Zappa, должно быть, использует приложение, возвращенное из Initialize_app(), таким образом, который вызывает эту ошибку.

Если это поможет, я используя Python версии 3.10.6, и это пакеты в моем файле require.txt, на один уровень выше серверной части:
argcomplete==3.5.1
blinker==1.7.0
boto3==1.35.32
botocore==1.35.32
certifi==2024.8.30
cffi==1.17.1
cfn-flip==1.3.0
charset-normalizer==3.3.2
click==8.1.7
cryptography==43.0.1
durationpy==0.9
Flask==3.0.2
Flask-Cors==4.0.0
hjson==3.1.0
idna==3.10
itsdangerous==2.1.2
Jinja2==3.1.3
jmespath==1.0.1
kappa==0.6.0
MarkupSafe==2.1.5
pdf2image==1.17.0
pillow==10.3.0
placebo==0.9.0
pycparser==2.22
PyJWT==2.9.0
PyMuPDF==1.24.2
PyMuPDFb==1.24.1
python-dateutil==2.9.0.post0
python-slugify==8.0.4
PyYAML==6.0.2
requests==2.32.3
s3transfer==0.10.2
six==1.16.0
text-unidecode==1.3
toml==0.10.2
tqdm==4.66.5
troposphere==4.8.3
urllib3==2.2.3
Werkzeug==3.0.1
zappa==0.59.0


Подробнее здесь: https://stackoverflow.com/questions/790 ... sing-zappa
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Куда Zappa загружает переменные среды?
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • TypeError: объект «Piecewise» не является итерируемым
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Объект 'float' не является итерируемым, ошибка типа
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Аргумент кода метрики речи типа «NoneType» не является итерируемым
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Типизация Python для вложенного итератора в списке объектов с итерируемым свойством
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»