标签: serverless-framework

通过API网关为无服务器架构模型代理端点设置CORS

我正在使用AWS Visual Studio Toolkit开发C#/。Net无服务器应用程序,但在确定CORS配置方面缺少的内容时遇到了一些麻烦。我的项目基于该工具包附带的ASP.Net示例,该示例将API Gateway配置为具有单个API终结点,该终结点充当ASP.Net Web API框架的代理。

在此处输入图片说明

在chrome中测试此应用程序(服务于本地节点项目)时, No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.

我知道这意味着我必须在API网关端点上配置CORS,但似乎缺少一些东西。我使用动作下拉菜单来启用CORS ...

在此处输入图片说明

但是我遇到一些错误,问题仍然存在。

在此处输入图片说明

我使用了chrome扩展程序(暂时)禁用了CORS,并确认API端点在没有CORS的情况下可以正常工作。

那我在这里想念什么?在线设置CORS的示例通常没有包含设置全部使用的端点的说明,甚至GET闯入自己的方法似乎也无济于事。

另一个问题是,如果缺少某些CORS配置,是否有很好的方法将其集成到serverless.template文件或其他一些自动部署步骤中?

amazon-web-services cors aws-lambda aws-api-gateway serverless-framework

3
推荐指数
1
解决办法
1235
查看次数

AWS CloudFormation 资源限制为 200

我有一个包含大量资源(一堆 DynamoDB 表、lambda 函数等)的应用程序,显然我遇到了 200 个资源的硬限制。具体错误是:

Template format error: Number of resources, 204, is greater than the maximum allowed, 200
Run Code Online (Sandbox Code Playgroud)

错误消息很清楚,但我想知道我的选择是什么。最坏的情况是,我可以将应用程序分成几部分。是否有其他替代策略?

amazon-web-services aws-cloudformation serverless-framework

3
推荐指数
1
解决办法
4737
查看次数

如何保护AWS Lambda功能?

我有一个简单的Lambda函数,它通过SES发送电子邮件.我可以使用带有所需数据的POST请求来调用它,它会发送一封电子邮件.我的问题是,我可以用什么方法来保护这个功能?目前,任何人都可以调用该端点并使用任何数据执行该功能.

javascript aws-lambda aws-api-gateway serverless-framework serverless-architecture

3
推荐指数
1
解决办法
1221
查看次数

如何防止Slack斜杠命令回显到通道?

使用Serverless和NodeJS,我有一个Slack命令设置如下:

/myCommand doStuff
Run Code Online (Sandbox Code Playgroud)

当我输入时/myCommand doStuff,Slack输出执行此操作:

/myCommand doStuff

我想要显示的实际响应的内容就在这里.

我想要做的只是这个:

我想要显示的实际响应的内容就在这里.

没有/myCommand doStuff得到回应.

我该如何防止这种情况发生?

更新 - 添加一些代码

这是实际的命令:

module.exports = () => {
  return new Promise(function(fulfill) {
    fulfill({
      response_type: 'in_channel',
      text: 'some testing text
    });
  });
};
Run Code Online (Sandbox Code Playgroud)

这是处理程序:

module.exports.handler = (event, context, callback) => {
  var response = {
    statusCode: 200,
    body: JSON.stringify(myCommand()),
  };

  callback(null, response);
};
Run Code Online (Sandbox Code Playgroud)

node.js slack-api slack serverless-framework

3
推荐指数
1
解决办法
306
查看次数

使用SAM与无服务器框架有哪些优缺点?

我想知道使用/探索更多的方法,我目前正在探索选择最佳/合适的框架来构建AWS Lambda上的微服务的选项,并且canary部署是一个巨大的功能(SAM支持它,但现在没有服务器).以下是我的问题:

  1. 一般来说,选择SAM而无服务器的优缺点是什么,反之亦然?
  2. 你能在serverless.yaml中写SAM吗?像SAM有一些有用的功能,如果我们可以在无服务器中使用它们会很棒

谢谢

aws-lambda serverless-framework serverless

3
推荐指数
1
解决办法
2844
查看次数

如何在VPC中正确连接AWS Lambda到RDS?

我正在尝试使用Apollo-Server-Lambda等在AWS-Lambda上使用无服务器框架构建graphQL API .我需要使用一个不公开的PostgreSQL RDS实例.

我可以启动并运行lambda,并在不在VPC中时发回请求.我可以启动并运行Postgres RDS数据库并连接到PgAdmin(当处于公共可用模式时).

问题是,一旦我将RDS Postgres"非公开"并试图让所有这些片段一起说话我就失败了.

我尝试了很多不同的方法.

这经常被描绘成魔术.这是精彩的写作https://gist.github.com/reggi/dc5f2620b7b4f515e68e46255ac042a7

我无法使用我的lambdas访问Postgres.所以我的第一个问题.

我是否需要一个NAT网关来为VPC中的lambdas传入(入口)api调用?我目前的理解是,也许我只需要一个NAT网关来为我的lambdas拨打其他api的电话,例如S3.它是否正确?

接下来.我为我的lambdas创建了一个安全组,并将此安全组添加到为RDS创建的安全组的入站列表中.我的理解是lambda应该如何获得RDS.我没有这么幸运.也许这与公共或非公共子网有关?也许这与我对NAT必要性的理解有关?

基本上我能够获得的唯一可见性是Lambdas在20或30秒后超时,这取决于我们在尝试私密连接到postgres时的限制.Cloudwatch日志不会透露任何其他信息

最后,就目前而言,一旦"不公开"将我的开发机器连接到Postgres的最佳方法是什么?我将我的机器IP列为入站TCP/IP到端口5432到RDS安全组中的postgres,但这似乎没有给我我希望的访问权限.我真的需要连接到VPC的VPN吗?什么是最简单的方法?

我已经完成了本教程,对Postgres进行了基本的修改https://docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html

我已阅读并考虑了此问题的答案以及更多 允许AWS Lambda访问RDS数据库

我已经有很多成功 - 使用无服务器框架的完全部署,在serverless.yml配置上有很多变化来尝试这些选项,否则我会展示一个我认为失败的特定的一个,但这更广泛地说我似乎无法准确掌握所有这些VPC,安全组,路由表等应该互动.

任何帮助非常感谢!

amazon-web-services amazon-rds amazon-vpc aws-lambda serverless-framework

3
推荐指数
1
解决办法
2750
查看次数

Node.js无服务器Windows 10

我有一个无服务器的nod​​ejs项目,它运行良好。一周没有接触它,想重新部署它,现在遇到以下错误:

1)EPERM:不允许操作,scandir'D:\ GIT \ awesome.build \ node_modules'2)EEXIST:文件已存在,符号链接'D:\ GIT \ awesome \ node_modules'->'D:\ GIT \ awesome。 build \ node_modules'

首先,我得到第一个错误。如果第二次尝试,我将获得第二次。如果删除.build,我将返回第一个。

我知道在闲置的一周中,我确实获得了春季Windows更新。

Windows 10 17134.48 NPM 6.1.0 Nodejs 8.11.1

任何想法可能是什么原因造成的?

node.js windows-10 serverless-framework

3
推荐指数
1
解决办法
1021
查看次数

是否可以使用无服务器框架将测试事件推送到AWS Lambda?

我正在使用无服务器框架推送到AWS Lambda。为了测试我的功能,我目前仅使用Lambda控制台添加每个方法,这变得非常乏味,并且我希望有一种方法可以将它们与代码一起使用serverless deploy

在此处输入图片说明

我在用于本地测试的无服务器方法上找到了此参考,但是似乎没有将这些测试事件部署到Lambda。

理想情况下,我希望能够在Serverless中执行此操作,但是如果有通过aws-cli它执行此操作的方法可能也是个不错的选择。

testing aws-lambda serverless-framework

3
推荐指数
1
解决办法
422
查看次数

了解无服务器框架中计划事件中的输入吗?

我正在尝试将特定事件的一些“输入”传递给我的lambda函数,并正在研究实现方法。无服务器文档显示了定义输入的示例,例如

无服务器

functions:
  aggregate:
    handler: statistics.handler
    events:
      - schedule:
          rate: rate(10 minutes)
          enabled: false
          input:
            key1: value1
            key2: value2
            stageParams:
              stage: dev
Run Code Online (Sandbox Code Playgroud)

我仍然不确定这到底是什么,以及如何从我的handlers.js函数进行访问(如果有的话)。

如果有人可以揭开神秘的面纱,将不胜感激。

node.js aws-lambda serverless-framework

3
推荐指数
1
解决办法
500
查看次数

如何使用CloudFormation从别名获取AWS SSM Key Arn?

是否可以使用别名使用CloudFormation获得KMS密钥ARN?我想对我的AWS账户中的密钥赋予特定权限。

类似于以下内容?

  - Effect: Allow
    Action: kms:Decrypt
    Resource:
      - 'Fn::GetAtt': 
        - 'alias/someAliasOfAKMSKey'
        - 'arn'
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-kms serverless-framework

3
推荐指数
1
解决办法
831
查看次数