gpt4 book ai didi

python-3.x - 带有 Dynamorm 的 Python 中的 AWS SAM 嵌套应用程序

转载 作者:行者123 更新时间:2023-12-04 10:36:46 24 4
gpt4 key购买 nike

我正在使用 AWS SAM构建无服务器应用程序。我按照说明构建 a nested application .

我的应用程序结构基本如下:

.
├── MAKEFILE
├── README.md
├── __init__.py
├── apps
│ ├── __init__.py
│ ├── account
│ │ ├── __init__.py
│ │ ├── endpoints.py
│ │ ├── models.py
│ │ ├── requirements.txt
│ │ └── template.yaml
├── samconfig.toml
└── template.yaml
requirements.txt在文件夹 apps/account/有以下 python 包: boto3 marshmallowdynamorm .
sam buildsam deploy工作正常,并且正确部署了 lambda 函数。但是,我在调用 lambda 函数时收到错误消息。日志显示以下错误 Unable to import module 'endpoints': No module named 'dynamorm' .

以下是我的代码摘录:

端点.py
import json
import boto3

from models import Account

print('Loading function')

def account_info(event, context):

apiKey = event["requestContext"]["identity"]["apiKeyId"]

account_info = Account.get(id= apiKey)

return {
"statusCode": 200,
"body": json.dumps(account_info)
}

模型.py
import datetime

from dynamorm import DynaModel, GlobalIndex, ProjectAll

from marshmallow import Schema, fields, validate, validates, ValidationError

class Account(DynaModel):
# Define our DynamoDB properties
class Table:
name = 'XXXXXXXXXX'
hash_key = 'id'
read = 10
write = 5

class Schema:
id = fields.String(required=True)
name = fields.String()
email = fields.String()
phonenumber = fields.String()
status = fields.String()

我不确定我错过了什么?是否有其他说明可以在 SAM 中构建嵌套应用程序?

十分感谢你的帮助!

最佳答案

根据 https://github.com/awslabs/aws-sam-cli/issues/1213 ,尚不支持此功能。

就我而言,我在每个嵌套堆栈上进行了“sam build”,并按如下方式修复父 yaml 模板(使用由 sam build 命令生成的 template.yaml),然后工作。但只是解决方法而不是好方法。

  XXX_APP:
Type: AWS::Serverless::Application
Properties:
Location: nest_application/.aws-sam/build/template.yaml

关于python-3.x - 带有 Dynamorm 的 Python 中的 AWS SAM 嵌套应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60141845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com