我最近探索了serverless,我想为我的应用程序创建一个“简单”的后端。它应该像CRUD连接到DynamoDB,就像这里很好地显示的那样。然后转换成使用Cognoto记录用户。链接1和链接2(
在我的实施过程中,我遇到了一些问题,我想请您帮助,因为我不喜欢使用我只复制的东西,也不知道它是如何工作的:
>
为什么我不需要设置CORS(标头)时初始化lambdas与无服务器,而不是在亚马逊控制台中创建的lambda函数(像这里)?
在无服务器框架中,函数之间的区别是什么。事件。http
和功能。事件。httpapi
?
Serverless.yml有去YAML的指南吗?我知道亚马逊编写用户指南和模板,如AWS::IAM::角色或迪纳摩表等。资源也形成了云,但是当我创建/编码Lambda函数时,它们在那里列出的目的是什么?参考它们?给他们加特权?
还有,引用是如何工作的?我是否只指定应该创建的资源,还是可以通过ARN引用已有的资源?如果是,怎么做?
策略是否仅像文档显示一样全局设置,或者唯一的其他选项是每个函数使用插件无服务器iam角色
?同样的问题也适用于资源中的角色和策略。
我只是被文档和所有不同的指南弄得不知所措,有时找不到正确的答案。我很感激你能回答我的任何问题!我喜欢无服务器功能,看到了它的巨大潜力,因此希望获得更多关于它的知识,并开始更多地使用它:)
干杯并提前感谢卢卡斯!
这里有很多,但我将尝试在高层次上解决这些问题。如果您有后续问题或需要更深入的回答,我建议您发布一个不同的StackOverflow问题,重点关注细节。如果你的问题集中且简洁,你更有可能获得更多的社区参与。
在lambda函数中使用回调vs返回请你能描述这两者之间的区别吗?我已经找到了一些关于这个的资源,但是,他们不会为我清除它。在Amazon Docs和这里堆栈溢出。
差异归结为异步和同步处理程序。我不认为我能比你链接的资源更好地解释这种差异。然而,我要说的是,这取决于个人偏好。
您可以使用任何一种方法实现lambda,这取决于您的个人喜好。您喜欢管理回调还是更喜欢使用async/await?
为什么我不需要设置CORS(标头)时初始化lambdas与无服务器,而不是在亚马逊控制台中创建的lambda函数(像这里)?
无服务器堆栈演示将CORS响应整齐地放入助手方法中。看起来你在这里用。在lambda中调用此方法时,您正在设置CORS头。
在无服务器框架中,函数之间的区别是什么。事件。http和函数。事件。httpapi?
函数。事件。http
指的是API网关的REST API产品(APIG v1)<代码>函数。事件。httpapi指API网关HTTP API产品(APIG v2)。
您可以在这里阅读RESTAPI和HTTP API产品之间的差异。
Serverless.yml有去YAML的指南吗?我知道亚马逊编写用户指南和模板,如AWS::IAM::角色或迪纳摩表等。资源也形成了云,但是当我创建/编码Lambda函数时,它们在那里列出的目的是什么?参考它们?给他们加特权?
将提供程序设置为aws
时,无服务器框架文档有serverless.yml选项的指南。serverless.yml文件是对Cloud形成的抽象。这个想法是serverless.yml比冗长的云形成更容易写。您将在serverless.yml中定义函数,以便在AWS中创建/配置lambdas。例如,这是你serverless.yml的片段
functions:
login:
handler: login.login
name: my-login-function
memorySize: 128
description: Function that log user.
events:
- httpApi:
path: /login
method: post
这将在AWS中使用您在login.js文件中编写的代码创建lambda。它还设置内存大小,并在后面设置一个API网关HTTP API终结点 /login.您可以查看从. serverless
目录中的serverless.yml文件创建的Cloud形成模板。这是......很多。
我是否只指定应该创建的资源,还是可以通过ARN引用已有的资源?如果是,怎么做?
无服务器文档给出了如何指向现有APIendpoint的示例。
apiGateway: # Optional API Gateway global config
restApiResources: # List of existing resources that were created in the REST API. This is required or the stack will be conflicted
'/users': xxxxxxxxxx
'/users/create': xxxxxxxxxx
策略是否仅像文档显示一样全局设置,或者唯一的其他选项是为每个函数使用插件无服务器iam角色?同样的问题也适用于资源中的角色和策略。
我不确定我是否理解这个问题。总的来说,我建议花些时间阅读什么是IAM?来自无服务器堆栈网站。它在涵盖IAM用户/角色/策略/组等方面做得非常出色。
我已经到处找了,我一辈子也找不到服务器来安装dynamodb触发器。 我使用了: 我尝试了一个硬编码的arn,没有发生任何事情,我可以在aws控制台上看到。我是新服务器。如果你有任何建议,请张贴。
我对计划中的应用程序的设计有一点问题,特别是数据库引擎和无服务器/非无服务器。目标是一个通过RESTAPI与数据库对话的Web应用程序。RESTAPI本身实际上只是CRUD操作,因此在我看来,无服务器aproach(AWS Lambda)非常适合。因此,最有效的数据库可能是DynamoDB(NoSQL)。 我熟悉RDBMS,对NoSQL数据库知之甚少。 应用程序的模式尚未完成,应该可以在以后进行扩
如您所见,我正在使用codePipeline和codeBuild自动化部署。我的后端基于无服务器框架,它在触发命令时部署lambda函数。这就是我没有使用codeDeploy进行传统部署的原因<代码>构建规范。yml文件如下所示: 现在,我有3个关于CodeBuild和Serverless的问题: 问题1:命令依赖于一个名为的文件,其中包含数据库密码等秘密。此文件将不会被签入git。你认为在cod
我正在尝试部署一个简单的Slack lambda api,它使用库从特定通道中删除成员和固定消息。我遇到的问题是函数没有问题地执行,并且它没有问题地删除通道成员,但是我的Lambda函数不断返回: 作为反应体。当我使用检查日志时,也没有看到任何错误。我看到我的函数的console.log成功执行。 null 为什么会出现此错误,以及如何解决此错误? 在处理程序函数中引用了这一点之后,我使用了。使用
awsquiestID(S) ttl(N) createdate(S)(ISO) user_id(S) 消息(S) 我想有一个全局二级索引,这样我就可以查询过滤用户的所有消息,我让他们排序(使用排序键),如https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html 出现错误:EventsTable-属性Attr
我对Dynamodb和非关系型数据库世界非常陌生。我正在练习AWS的和。我使用的是无服务器框架。我拆分我的处理程序多个lambda函数。我想创建我的数据,在那里我可以看到所有的餐馆和他们有什么类型的啤酒的价格。我还想查询所有没有价格的啤酒。我成功创建了餐厅,它的分区键是。我可以得到所有餐馆的数据。但是我坚持啤酒逻辑。我为啤酒创建了像这样的apiendpoint餐厅/{id}/createBeers