标签: serverless

Terraform cloudwatch 保留逻辑

我正在尝试向我的 terraform 脚本添加逻辑,以便在创建 lambda 时添加 CW 保留逻辑,以便我们的日志在 30 天后清除。我看到的是,当运行 terraform 来更新现有的 lambda(在添加新的保留逻辑之前部署的)时,我的工作失败并出现以下错误。

  • aws_cloudwatch_log_group.lambda-deploy:发生 1 个错误:

  • aws_cloudwatch_log_group.lambda-deploy:创建 CloudWatch 日志组失败:ResourceAlreadyExistsException:指定的日志组已存在状态代码:400,请求 ID:e500eb50-4a81-11e9-9c08-7152b4a0ad31:CloudWatch 日志组'/aws/lambda/{lambda -name}'已经存在。

以下是我设置 terraform 代码的方式:

resource "aws_lambda_function" "lambda-deploy" {
  filename      = "${var.filename}"
  function_name = "${var.functionname}"
  role          = "${var.role}"
  handler       = "${var.handler}"
  runtime       = "${var.runtime}"
  publish       = "${var.publish}"
  memory_size   = "${var.memory_size}"
  timeout       = "${var.timeout}"
  description   = "${var.description}"

  layers = "${var.layers}"

  environment {
    variables = "${var.envVars}"
  }

  tags {
    PLATFORM        = "${var.tag_PLATFORM}"
    BUSINESS_UNIT   = "${var.tag_BUSINESS_UNIT}"
    CLIENT          = "${var.tag_CLIENT}"
    BUSINESS_REGION = "${var.tag_BUSINESS_REGION}"
  }

  vpc_config …
Run Code Online (Sandbox Code Playgroud)

lambda terraform serverless

5
推荐指数
1
解决办法
9086
查看次数

AWS Fargate 是否像 Lambda 一样真正无服务器?任务完成后会自动关闭吗?

这在文档中对我来说确实不清楚。而且控制台的配置非常混乱。

在负载均衡器关闭后以 Fargate 模式运行的 Docker 集群是否会在不使用时向我收费?

冷启动怎么办?我需要像 Lambda 一样在 Fargate 中关心这个吗?

它的水平度比 Lambda 低吗?连接到 API Gateway 的 lambda 将为每个并发请求生成一个新函数,Fargate 也会这样做吗?或者负载均衡器会决定它吗?

我已经在 Lambda 中运行 Flask/Django 应用程序一段时间了(使用 Serverless/Zappa),将它们迁移到 Fargate 有什么好处吗?

它似乎比 Lambda 更昂贵,但如果 Lambda 限制不是问题,那么 Lambda 应该总是更好的选择,对吗?

amazon-web-services amazon-ecs aws-lambda serverless aws-fargate

5
推荐指数
2
解决办法
4437
查看次数

原生无服务器与无服务器 Express

现在,我正在遵循无服务器堆栈团队准备的指南。他们正在使用React许多AWS功能,例如lambdaAPI getaway。为了练习它,我正在使用无服务器堆栈重写我的旧Express示例之一。

我还看到了一个名为 的库或工具aws-serverless-expressexpress这个库或工具允许您以这种形式运行您的应用程序serverless

这将是一个奇怪的问题,但我想知道本机无服务器构建和无服务器快速之间的区别。

Cold start已经是劣势了。我知道这一点。除此之外,无服务器快递还有哪些负面或正面的方面?原生无服务器
有哪些消极或积极的一面?

node.js express serverless aws-serverless

5
推荐指数
1
解决办法
3578
查看次数

SignalR 服务(无服务器)-Azure Functions

我对 SignalR 感到困惑,特别是在使用 Azure SignalR 服务时,在考虑使用 Azure Functions 的无服务器实现时更是如此。

我有一个 Web 应用程序和一个 Azure Function 应用程序,其中实现了协商功能。客户端上的 JavaScript 已成功协商并能够连接到 Azure SignalR 服务,到目前为止一切顺利。

附带问题:CORS 设置是阻止任何老人连接并获取令牌的唯一因素吗?这本身足够安全吗?

之后这就是我感到困惑的地方。我现在有一个 Azure SignalR 服务和一个 Azure Function 应用程序,在建立与 Azure SignalR 服务的客户端连接后,Function 应用程序有什么用处?

在客户端交互方面,我需要做一些事情,例如加入一个组并向该组广播(从客户端上的 JavaScript),我假设这些将是函数应用程序上的两个附加函数(Http 触发器)?

假设我对上述内容是正确的,如何阻止任何人通过函数应用程序 http 端点调用“广播”函数?至少在本地,我可以从邮递员调用它,而无需提供在初始协商响应中收到的任何信息。

我还需要从后端代码(.net 标准)将消息推送到组,这是通过调用函数应用程序还是直接调用 Azure SignalR 服务来完成的?

提前致谢。

c# signalr azure-functions serverless

5
推荐指数
1
解决办法
1579
查看次数

使用无服务器和 chrome-aws-lambda 节点包在 AWS Lambda 上找不到 Chrome 二进制文件

我创建了一个简单的应用程序,它接受 URL 并将其转换为 PDF。它将生成的 PDF 存储在 S3 存储桶中并返回 PDF 的 URL。它使用 Chrome(无头运行)将 URL 转换为 PDF。我使用了无服务器框架、AWS Lambda 和 chrome-aws-lambda npm 包。当我使用无服务器在本地执行此设置时,一切都很好。我可以使用 postman 发出带有 URL 的请求,它会返回生成的 PDF 的 URL。当我将此设置部署到 AWS Lambda 时,它返回 502 内部服务器错误响应。当我查看应用程序的 AWS 日志时,我看到以下内容:

{
    "errorType": "Error",
    "errorMessage": "ENOENT: no such file or directory, open '//../bin/chromium.br'",
    "code": "ENOENT",
    "errno": -2,
    "syscall": "open",
    "path": "//../bin/chromium.br",
    "stack": [
        "Error: ENOENT: no such file or directory, open '//../bin/chromium.br'"
    ]
}
Run Code Online (Sandbox Code Playgroud)

这是应用程序的主要处理程序:

import AWS from 'aws-sdk'
import middy from 'middy'
import chromium from 'chrome-aws-lambda' …
Run Code Online (Sandbox Code Playgroud)

google-chrome amazon-web-services node.js aws-lambda serverless

5
推荐指数
1
解决办法
6677
查看次数

http-proxy-middleware 是否可以与 Serverless Lambda 配合使用?

我正在尝试通过无服务器 Lambda 代理外部 API。尝试以下代码示例:http://localhost:3000/users/1返回 200 但正文为空。我必须忽略一些东西,因为http://localhost:3000/users/11返回 404 (如预期)。

索引.js

'use strict';
const serverless = require('serverless-http');
const express = require('express');
const {
  createProxyMiddleware
} = require('http-proxy-middleware');

const app = express();

const jsonPlaceholderProxy = createProxyMiddleware({
  target: 'http://jsonplaceholder.typicode.com',
  changeOrigin: true,
  logLevel: 'debug'
});

app.use('/users', jsonPlaceholderProxy);

app.get('/', (req, res) => {
  res.json({
    msg: 'Hello from Serverless!'
  })
})

const handler = serverless(app);
module.exports.handler = async (event, context) => {
  try {
    const result = await handler(event, context);
    return result;
  } …
Run Code Online (Sandbox Code Playgroud)

proxy http aws-lambda http-proxy-middleware serverless

5
推荐指数
1
解决办法
1276
查看次数

如何调试由 CircleCI 编排的 Serverless 生成的 CloudFormation 模板

语境

我觉得我需要在这里提供很多背景信息才能理解问题的全部范围,所以如果这有点长或最终提供了太多信息,请提前道歉,只是想避免很多人跟随尽我所能提出问题和澄清请求。

我有一个技术交接的项目。它曾经在不同所有者的不同 AWS 账户下进行生产。我正在尝试在我控制的 AWS 账户中重新启动它,但其中一个软件包给我带来了一些问题。

它使用 Serverless 来配置几个 S3 存储桶及其访问策略、几个 IAM 角色和一堆 ApiGateway 方法。该包依赖嵌套堆栈来绕过 200 个资源限制,如此处所述

最后,CircleCI 连接的 IAM 用户已AdministratorAccess附加策略。

问题

在构建的这一步中,我不断收到 CircleCI 的失败消息

node_modules/.bin/serverless deploy --verbose --stage develop --region us-east-1 --package ./.serverless
Run Code Online (Sandbox Code Playgroud)

故障的确切性质似乎不一致,即它并不总是在同一位置发生故障。在某些时候,资源无法创建,整个过程会回滚。以下是日志中运行失败的几个示例,其中包含 +/- 5 行,后面是 Serverless 报告的实际错误

运行1

CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::Method - ApiGatewayMethod001VarOptions
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::Method - ApiGatewayMethod002VarOptions
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::Method - ApiGatewayMethod003VarOptions
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::Method - ApiGatewayMethod004VarOptions
CloudFormation - …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cloudformation circleci serverless infrastructure-as-code

5
推荐指数
1
解决办法
1062
查看次数

无服务器 s3 上传访问被拒绝

我正在尝试使用无服务器框架将图像上传到 S3 存储桶。当我在部署后调用端点时,代码失败并出现“访问被拒绝”错误。我究竟做错了什么?

使用“无服务器日志 -f fileDownload”时出现错误:

ERROR   Unhandled Promise Rejection     {"errorType":"Runtime.UnhandledPromiseRejection","errorMessage":"AccessDenied: Access Denied","reason":{"errorType":"AccessDenied","errorMessage":"Access Denied","code":"AccessDenied","message":"Access Denied","region":null,"time":"2020-05-08T14:06:11.767Z","requestId":"874D7C86A4C6BE45","extendedRequestId":"r8xyvcrK9su5c+slhX5L/uh4/Y/sdFnUgPcebHpSTNpbnf39EnAZJET750P8t0iXy8UR81SiYZc=","statusCode":403,"retryable":false,"retryDelay":17.606445772028543,"stack":
["AccessDenied: Access Denied"
,"    at Request.extractError (/var/task/node_modules/aws-sdk/lib/services/s3.js:835:35)"
,"    at Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:106:20)"
,"    at Request.emit (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:78:10)"
,"    at Request.emit (/var/task/node_modules/aws-sdk/lib/request.js:683:14)"
,"    at Request.transition (/var/task/node_modules/aws-sdk/lib/request.js:22:10)"
,"    at AcceptorStateMachine.runTo (/var/task/node_modules/aws-sdk/lib/state_machine.js:14:12)"
,"    at /var/task/node_modules/aws-sdk/lib/state_machine.js:26:10"
,"    at Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:38:9)"
,"    at Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:685:12)"
,"    at Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:116:18)"
]}
,"promise":{},"stack":
["Runtime.UnhandledPromiseRejection: AccessDenied: Access Denied"
,"    at process.<anonymous> (/var/runtime/index.js:35:15)"
,"    at process.emit (events.js:310:20)"
,"    at process.EventEmitter.emit (domain.js:482:12)"
,"    at processPromiseRejections (internal/process/promises.js:209:33)"
," …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 access-denied serverless-framework serverless

5
推荐指数
1
解决办法
9419
查看次数

Azure Functions 中的 1.5 GB 内存限制是否仅限于整个 Function App 或每个函数调用?

我正在设置一个 Azure Function 应用程序,该应用程序具有多个同时或大约同时触发的计时器触发器。我对这里的措辞感到困惑: https: //learn.microsoft.com/fi-fi/azure/azure-functions/functions-scale

消耗计划中的 Functions 主机的每个实例仅限于 1.5 GB 内存和 1 个 CPU。主机的实例是整个函数应用程序,这意味着函数应用程序中的所有函数共享实例内的资源并同时扩展。

这是否意味着使用计时器触发器执行的每个脚本都会分配 1.5 GB 内存,或者是否意味着所有同时运行的脚本共享 1.5 GB 内存?

azure azure-functions serverless

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

无法无服务器运行。在输出中获取路径和“没有这样的文件或目录”

我使用的是 Windows 8。

我用yarn安装了无服务器框架。 yarn add global serverless

serverless在 Git Bash 中 运行命令会输出这个奇怪的路径/bin/sh: /usr/local/bin/../../../../../Users/tempuser/AppData/Local/Yarn/Data/global/node_modules/.bin/serverless: No such file or directory

尝试修复它:删除node_modules,再次安装。没有帮助。

有谁知道如何修理它?

提前致谢。

windows bash hadoop-yarn serverless

5
推荐指数
0
解决办法
448
查看次数