标签: aws-lambda

查看lambda函数的console.log

有没有人知道如何console.log's运行aws lambda功能?

当我在其测试环境中运行该函数时它很好,但我想在生产环境中运行它时看到日志.

amazon-web-services aws-lambda

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

如何从AWS Lambda函数返回错误集合/对象并映射到AWS API Gateway响应代码

我试图从AWS Lambda函数返回一个对象而不是一个简单的字符串.

// ...
    context.fail({
        "email": "Email address is too short",
        "firstname": "First name is too short"
    });
// ...
Run Code Online (Sandbox Code Playgroud)

我已经使用了errorMessage映射错误响应状态代码,这很好:

// ...
    context.fail('That "username" has already been taken.');
// ...
Run Code Online (Sandbox Code Playgroud)

我只是想尝试做一些AWS API Gateway无法承受的事情吗?

我也已经发现这篇文章有所帮助:有没有办法更改Amazon API Gateway返回的http状态代码?.

http amazon-web-services http-response-codes aws-lambda aws-api-gateway

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

如何使用 aws cli 将字符串作为有效负载传递给 aws lambda 函数?

我正在尝试使用下面的 aws cli 命令来调用 lambda 函数。

aws lambda invoke  --invocation-type RequestResponse  --function-name HelloWorldJava  --payload \"world\" outputfile.txt
Run Code Online (Sandbox Code Playgroud)

但我遇到了以下错误。

Invalid base64: ""world""
Run Code Online (Sandbox Code Playgroud)

我所指的书就是使用同样的方法。

amazon-web-services aws-cli aws-lambda

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

AWS Lambda 用于 IP 轮换?

我正在抓取一个网站,其中包含格式为root/page_number.html连续page_num整数的页面。如果我爬行太快,网站会阻止我,所以我认为使用 AWS Lambda 爬行是一个好主意,这样每次进行新函数调用时 IP 地址都会不断轮换。

然后我编写了每次只抓取 100 个页面的函数,以确保在具有不同 IP 地址的不同机器上生成许多并行任务。刚开始的时候效果还不错,但是爬了大约10万个页面之后还是被网站屏蔽了。这让我想知道:

  1. 是否保证每台机器的 IP 地址与同一区域中的另一台机器不同?
  2. 如果我正在运行大约 1000 个并发任务,它们最有可能在同一台计算机上还是不同的计算机上运行?
  3. 是否可以确保新启动的任务不会在已经运行另一个类似任务的同一台计算机上运行?

ip-address amazon-web-services web-scraping aws-lambda

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

如何在无服务器离线状态下从另一个 lambda 调用 lambda 函数?

我正在尝试使用无服务器框架在 lambda 函数中调用 lambda 函数。我现在正在使用这段代码,部署到 AWS 后它可以正常工作。但它在 serverless-offline 中本地返回一些错误。

我现在使用的代码:

const middy = require("@middy/core");
const httpErrorHandler = require("@middy/http-error-handler");
const httpUrlEncodeBodyParser = require("@middy/http-urlencode-body-parser");

const AWS = require("aws-sdk");

const lambda = new AWS.Lambda();

const baseHandler = async (payload) => {
  const params = {
    FunctionName: `my-api-${process.env.STAGE}-handleProcessA`,
    InvocationType: "Event",
    LogType: "None",
    Payload: JSON.stringify(payload),
  };

  await lambda.invoke(params).promise();

  return standardResponse();
}

const endpoint = middy(baseHandler)
  .use(httpUrlEncodeBodyParser())
  .use(httpErrorHandler());

module.exports = { endpoint };

Run Code Online (Sandbox Code Playgroud)

当这个被触发时,它表示找不到该函数: Function not found: arn:aws:lambda:us-west-2:893853743015:function:my-api-local-handleProcessA

我也尝试了这些问题的建议: /sf/answers/4113647121/ /sf/answers/4897727201/

根据建议,我更改了这部分:

const lambda = new …
Run Code Online (Sandbox Code Playgroud)

node.js aws-lambda serverless-framework serverless-offline

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

错误:NodejsNpmEsbuildBuilder:EsbuildBundle - Esbuild 失败:X [错误] 无法解析“aws-sdk”

问题:

\n

我正在尝试构建将部署到 AWS Lambda 的 Typescript 代码。然而,在 Aws Sam 构建时,我遇到了标题中提到的错误。以下是确切的错误。

\n
Building codeuri: D:\\AWS\\demo-app\\hello-world runtime: nodejs16.x metadata: {'BuildMethod': 'esbuild', 'BuildProperties': {'Minify': True, 'Target': 'es2020', 'EntryPoints': ['app.ts']}} architecture: x86_64 functions: HelloWorldFunction\nRunning NodejsNpmEsbuildBuilder:CopySource\nRunning NodejsNpmEsbuildBuilder:NpmInstall\nRunning NodejsNpmEsbuildBuilder:EsbuildBundle\n\nBuild Failed\nError: NodejsNpmEsbuildBuilder:EsbuildBundle - Esbuild Failed: X [ERROR] Could not resolve "aws-sdk"\n\n    app.ts:2:21:\n      2 \xe2\x94\x82 import * as AWS from 'aws-sdk';\n        \xe2\x95\xb5                      ~~~~~~~~~\n\n  You can mark the path "aws-sdk" as external to exclude it from the bundle, which will remove this error.\n\n1 error\nchild_process.js:830\n    throw err;\n    ^\n\nError: Command …
Run Code Online (Sandbox Code Playgroud)

node.js typescript aws-lambda aws-sam

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

关闭超过 90 天后重新打开 AWS 账户

我在 2 年前创建了一个 AWS 账户。一段时间后,该帐户被黑客入侵,我与客户支持人员交谈并关闭了该帐户。现在,我想再次开设AWS账户。

我尝试登录,但仪表板显示“不存在此类帐户”。我尝试再次注册,这会将验证码发送到我的 Gmail 帐户,但邮件显示帐户已存在,因此我应该登录。单击登录链接后,我被重定向回登录控制台,其中显示不存在此类帐户。

我现在如何实际创建 AWS 账户?

amazon-s3 amazon-ec2 amazon-web-services aws-lambda

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

如何在Python中的AWS Lambda函数中正确解密PGP加密文件?

我正在尝试用 python 创建一个 AWS Lambda:

  1. 从 S3 存储桶下载压缩和加密的文件
  2. 使用解密文件python-gnupg
  3. 将解密的压缩内容存储在另一个S3存储桶中

python-gnupg这是在 Lambda 层中使用 python 3.8 和包。

我已验证 PGP 密钥是否正确,它是否已正确加载到密钥环中,并且加密文件是否已正确下载。但是,当我尝试运行时,gnupg.decrypt_file我得到的输出看起来好像已经成功,但解密状态显示not ok并且解密的文件不存在。

如何在 Lambda 中进行 PGP 解密?

以下是从 lambda 函数中提取的相关代码:

import gnupg
from pathlib import Path

# ...

gpg = gnupg.GPG(gnupghome='/tmp')

# ...

encrypted_path = '/tmp/encrypted.zip'
decrypted_path = '/tmp/decrypted.zip'

# ...

# this works as expected
status = gpg.import_keys(MY_KEY_DATA)

# ...

print('Performing Decryption of', encrypted_path)
print(encrypted_path, "exists :", Path(encrypted_path).exists())

with open(encrypted_path, 'rb') as f:
    status = …
Run Code Online (Sandbox Code Playgroud)

gnupg pgp python-3.x aws-lambda python-gnupgp

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

在aws cli上切换区域的命令


在aws cli上切换区域的命令是什么?我想切换到 lambda 所在的另一个区域
我已尝试过这些命令,但它们不起作用

aws --region <region_name>
aws set region <region_name>
aws configure region <region_name>
aws lambda .... --region <region_name>
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cli aws-lambda

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

我可以强制 pip 在 powershell 中安装 x86_64 架构的依赖项来创建 Lambda 层吗?

我正在尝试创建一个包含 pydantic/pydantic_core (Lambda python 3.11,x86_64)的 lambda 层,但出现以下错误:"Unable to import module 'reddit_lambda': No module named 'pydantic_core._pydantic_core'"

作为上下文,我将其安装在 Windows x64 计算机上。

从这里、这里和这里阅读有关内容,似乎 pip 安装 pydantic 是为了不兼容的体系结构(win_amd64)。

安装日志:

Using cached pydantic-2.4.2-py3-none-any.whl (395 kB)
Using cached pydantic_core-2.10.1-cp311-none-win_amd64.whl (2.0 MB)
Run Code Online (Sandbox Code Playgroud)

我的问题:有没有办法强制 pip 将软件包安装到 powershell 中特定架构的目录中?

我在这里看到了一个旧的讨论,这对于 Linux 来说是可能的,但不知道如何在 powershell 上做到这一点。

仅供参考:我还尝试从二进制文件中添加 pydantic_core (尝试过 pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl和 pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl),但我对选择哪个版本有点困惑?

python powershell aws-lambda pydantic

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