标签: serverless

何时选择App Engine over Cloud Functions?

对不起,如果这是一个天真的问题,但我看了谷歌的工作人员的一堆谈话,仍然不明白为什么我会使用AE而不是CF?

如果我理解正确的话,这两种服务的整体概念就是构建"微服务架构".

  • CF和AE都是无国籍的
  • 两者都假设在有限的时间内执行
  • 两者都可以与dbs和其他gcp apis交互.

虽然,AE必须包装到自己的服务器中.基本上它在与CF相同的功能之上利用了许多复杂性.那么,我何时应该使用它而不是CF?

google-app-engine google-cloud-platform google-cloud-functions serverless

42
推荐指数
2
解决办法
1万
查看次数

无服务器功能和Lambda功能之间有什么区别

我正在玩Cloudformation无服务器转换,并试图弄清楚如何以及何时使用AWS::Serverless::FunctionAWS::Lambda::Function.出于某种原因,Lambda版本用于AWS中的SAM示例.这非常令人困惑.SAM github.然后还有servlerless框架本身,它实际上是一个nodejs框架.所有这些让我非常困惑.

amazon-web-services aws-lambda serverless

34
推荐指数
3
解决办法
8644
查看次数

Vercel 上部署的 Nextjs 中的 api 请求出现 504/502 错误

我在 Next.js 中开发了一个应用程序。对于后端,我使用了 Nextjs 中配置的 api 端点,它们位于pages/api. api 端点经常返回 502(网关超时错误)或 504(我们的部署存在问题)。

经过一些研究,我发现发生这种情况是因为服务器超时。对于我部署了 Nextjs 应用程序的 Vercel,无服务器函数的最长超时时间为 10 秒。

端点之一的代码(https://bulkbays.com/api/fetchSections)是

import db from "../../config/db";
import Section from "../../Models/Section";

db();

export default async function handler(req, res) {

    console.log('Entered the serverless function')

    Section.find()
        .lean()
        .then((sections) => {
            console.log('Fetched Sections',sections)
            return res.json(sections);
        })
        .catch((err) => {
            console.log('Error in fetching sessions',err)
            return res.json({
                status: false,
                msg: "An unexpected problem occured",
                err,
            });
        });
}
Run Code Online (Sandbox Code Playgroud)

请有人告诉我怎么会超过10秒。这是人们可以进行的最简单的查询。此外,此查询的结果只是一个长度为 9 的数组,其中对象作为项目,其值包含字符串。它看起来像这样

[
  {
  "_id":"6092a55478ccc2092c5e41b0",
  "images":["http://res.cloudinary.com/bulkbays97/image/upload/v1620223428/eysvsch2hf4ymajizzcn.jpg","http://res.cloudinary.com/bulkbays97/image/upload/v1620223429/qiwa2idfrntiygsfmnx2.jpg","http://res.cloudinary.com/bulkbays97/image/upload/v1620223429/elwhjk7abwcde7ccqcxf.jpg","http://res.cloudinary.com/bulkbays97/image/upload/v1620223428/yuzhe8iehcyj1rmfyr09.jpg"],
  "title":"P-Caps", …
Run Code Online (Sandbox Code Playgroud)

lambda node.js next.js serverless vercel

24
推荐指数
3
解决办法
3万
查看次数

由于 aws-exports,AWS 放大部署失败

我正在尝试将我的 reactJs 应用程序部署到 Amplify。我的 Github 连接到 Amplify。在部署期间,它在构建步骤中显示以下错误:

2020-01-07T19:35:22.127Z [INFO]: Failed to compile.
2020-01-07T19:35:22.129Z [INFO]: ./src/index.js
                                 Cannot find file './aws-exports' in './src'.
2020-01-07T19:35:22.149Z [WARNING]: error Command failed with exit code 1.
2020-01-07T19:35:22.150Z [INFO]: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
2020-01-07T19:35:22.155Z [ERROR]: !!! Build failed
2020-01-07T19:35:22.239Z [ERROR]: !!! Non-Zero Exit Code detected
2020-01-07T19:35:22.239Z [INFO]: # Starting environment caching...
Run Code Online (Sandbox Code Playgroud)

发生这种情况是因为.gitignore忽略了 aws-exports。有人可以告诉我在不提交 aws-exports 的情况下解决此问题的方法是什么?

amazon-web-services reactjs serverless aws-amplify

22
推荐指数
1
解决办法
1万
查看次数

AWS Aurora MySQL无服务器:如何从MySQL Workbench连接

我试图在我的项目中使用AWS Aurora Serverless for MySQL,但我无法连接到它,尽管我有端点,用户名和密码.

我做了什么:

  1. 从AWS控制台管理,我选择RDS> Instances> Aurora> Serverless
  2. 保留默认设置
  3. 创建数据库
  4. AWS将仅创建AWS群集 在此输入图像描述
  5. 我打开MySQL Workbench,并使用端点,用户名,密码来连接数据库

Ressult:

用户'admin'从主机到服务器的连接尝试失败xxxxx.cluster-abcdefg1234.eu-west-1.rds.amazonaws.com:3306:无法连接到'xxxxx.cluster-abcdefg1234上的MySQL服务器. eu-west-1.rds.amazonaws.com'(60)

我做错了吗?请指教.

****编辑****

我尝试使用容量类型创建另一个Aurora数据库:Provisioned.我可以使用MySql workbench的用户名和密码无缝连接到端点.这意味着端口3306为工作台打开.

关于安全组: 在此输入图像描述

mysql amazon-web-services amazon-aurora serverless

20
推荐指数
7
解决办法
1万
查看次数

Fargate vs Lambda,何时使用哪个?

我对整个无服务器环境都很陌生,而且我正试图在使用Fargate和Lambda时解决这个问题.

我知道Fargate是ECS的无服务器子集,Lambda也是无服务器的,但是由事件驱动.但我希望能够以简单的方式向其他熟悉容器的人解释这两种范例,而不是那些使用AWS和无服务器的人.

目前,我们有几个物理服务器负责接收文本文件,解析它们,并用结果填充几个数据库表.根据我的理解,我认为这将是一个更适合Lambda的用例,因为解析文本文件的过程是由计划触发的,不会长时间运行,并且在不使用时会减少.

但是,如果我们要移植一个接收API调用的服务器,我们可能会想要使用Fargate,因为我们总是需要至少一个映像实例启动并运行.

就容器而言,如果容器的设计是这样设计的话,可以安全地说:

docker run <some_input>
Run Code Online (Sandbox Code Playgroud)

然后这是Lambda的工作.

但是,如果容器设计为执行以下操作:

docker run --expose 80
Run Code Online (Sandbox Code Playgroud)

然后这是Fargate的工作.

这是一个很好的比喻吗?

amazon-ecs aws-lambda serverless aws-fargate

19
推荐指数
2
解决办法
9246
查看次数

aws-sam-local环境变量

我在这里阅读自述文件:https://github.com/awslabs/aws-sam-local

我已经写在python 3.6拉姆达及其类似HelloWorld示例这里:https://github.com/awslabs/aws-sam-local/tree/develop/samples/hello-world/python

template.yml看起来像这样:

AWSTemplateFormatVersion : '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: MyFunction1 API
Resources:
  MyFunction1:
    Type: AWS::Serverless::Function
    Properties:
      FunctionName: MyFunction1
      Handler: lambda_module.lambda_handler
      Runtime: python3.6
      CodeUri: lambda.zip
      MemorySize: 128
      Timeout: 10
      Policies:
        -AWSLamdbaBasicExecutionRole
      Events:
        BingLambdaEndpoint:
          Type: Api
          Properties:
            Path: MyFunction1/search
            Method: get
Run Code Online (Sandbox Code Playgroud)

我在lambda中有环境变量但在启动时无法连接它们.文档说我可以创建一个environments.json文件并在invoke命令上附加以下内容:使用--env-vars invoke参数

我的环境文件看起来像示例,我收到一个错误: Unable to find environment variable: api_key

environment.json看起来像这样:

{
  "MyFunction1": {
    "api_key": "123456789",
    "BUCKET_NAME": "testBucket"
  }
}
Run Code Online (Sandbox Code Playgroud)

命令我运行是这样的:

sam local invoke MyFunction1 --env-vars environment_variables.json -e event.json
Run Code Online (Sandbox Code Playgroud)

有人能提供额外的见解吗?

aws-lambda aws-sam-cli serverless

18
推荐指数
4
解决办法
1万
查看次数

Vercel Serverless 函数出现超时错误

我在 Vercel 上部署了一个 Nuxt.js 服务器端网站。我注意到,在某些情况下,我会收到504: GATEWAY_TIMEOUT错误,并显示代码FUNCTION_INVOCATION_TIMEOUT和消息“此无服务器函数已超时”。

为什么我会看到这个错误?

无服务器函数已超时

server serverless-framework nuxt.js serverless vercel

18
推荐指数
2
解决办法
2万
查看次数

npm ERR! 是什么意思?代码ELSPROBLEMS是什么意思?

使用无服务器构建节点项目

\n

首先我得到错误

\n
Error:\nError: npm ls -prod -json -depth=1 failed with code 1\n  at ChildProcess.<anonymous> (/Users/jrobens/NetBeansProjects/azuron/winpay/winpay- \n
Run Code Online (Sandbox Code Playgroud)\n

上传者/node_modules/serverless-webpack/lib/utils.js:91:16)

\n

要查找更多信息,我输入npm ls -prod -json -depth=1并获取

\n
npm ERR! code ELSPROBLEMS\nnpm ERR! invalid: serverless@3.2.1 \n/my-project/node_modules/serverless\n{\n
Run Code Online (Sandbox Code Playgroud)\n

看起来 webpack 已经工作了

\n
webpack compiled successfully in 4581 ms\n
Run Code Online (Sandbox Code Playgroud)\n

关于环境:node-14、typescript、aws

\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 @serverless/typescript@3.2.0\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 @types/serverless@3.0.0\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 serverless-apigw-binary@0.4.4\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 serverless-certificate-creator@1.6.0\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 serverless-dynamodb-local@0.2.40\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 serverless-http@2.7.0\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 serverless-iam-roles-per-function@3.2.0\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 serverless-plugin-aws-alerts@1.7.4\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 serverless-prune-plugin@2.0.1\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 serverless-s3-local@0.6.21\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 serverless-webpack@5.6.1\n
Run Code Online (Sandbox Code Playgroud)\n

node.js npm serverless

18
推荐指数
1
解决办法
2万
查看次数

AWS Lambda TooManyRequestsException:超出率

当尝试执行Amazon Web Services(AWS)Lambda函数(多次)时,我们看到了错误:

AWS Lambda TooManyRequestsException: Rate Exceeded

我们如何解决这个问题?

rate-limiting amazon-web-services node.js aws-lambda serverless

17
推荐指数
1
解决办法
1万
查看次数