如果我用一个请求调用一个lambda函数,但在该函数内,有三个调用不同的函数,那么这算作4个调用还是只是一个调用,因为它基于一个请求?
因此,如果计数为4,那么(从经济角度来看)如果编写一个长函数而不是许多小函数会不会更好,尽管从设计模式的立场来看它是不明智的?
我的lambda函数可以使用"no VPC"的发布方法向SNS发送消息,但是当我将它放入可以访问带有路由和Internet网关的公共Internet的VPC时它会超时.
我有一个公共子网中的lambda,其0.0.0.0/0已经路由到Internet网关,因此无法再将其路由到NAT.是否可以将EIP分配给lambda函数
如何将作为事件调用的lambda的数据恢复到调用函数?
基本上我的lambda函数是:
exports.handler = function(event, context, callback) {
var data = {};
data.foo ='hello';
callback(null, data)
}
Run Code Online (Sandbox Code Playgroud)
并且调用函数如下所示:
var AWS = require('aws-sdk');
var lambda = new AWS.Lambda();
var params = {
FunctionName: 'SomeFunction',
InvocationType: 'Event'
};
lambda.invoke(params, function (err, data) {
if (err) {
console.log(err, err.stack); // an error occurred
} else {
console.log(JSON.stringify(data, null, 2));
}
});
Run Code Online (Sandbox Code Playgroud)
然而,我唯一从功能中回来的是
{
"StatusCode": 202,
"Payload": ""
}
Run Code Online (Sandbox Code Playgroud)
我认为回调参数的意思是允许调用函数在函数完成时获取数据.我使用它错了还是我问Lambda不可能的?
我目前有一个工作的NodeJS应用程序,可以生成在AWS Lambda上托管的模板化PDF.它接收把手模板,生成带有模板和数据的pdf,将PDF写入S3存储桶并返回文件名.如果该文件已在S3上存在,则返回现有文件的文件名.
文件存在时,大约需要3秒钟才能完成.如果需要生成文件,则需要15-25秒才能完成.
我将它配置为最大128MB内存并在25秒时超时,但我真的更愿意将其减少到15秒(如果可能的话).由于将生成的某些PDF的复杂性和长度,我目前不得不将超时保留.
排除我正在使用的NodeJS库,有没有办法在读取/写入S3时加快Lambda执行和/或Lambda的延迟?
我正在尝试在aws lambda(C#)下执行http/s请求.
System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
System.Net.Http.HttpResponseMessage response = await client.GetAsync("URL");
string responseText = response.ToString();
Run Code Online (Sandbox Code Playgroud)
我收到以下错误代码.如果我手动添加DLL它仍然无法正常工作.
无法加载DLL'iplpapi.dll':找不到指定的模块.
可以在aws下做一个请求吗?
我的东西:
我一直在开发连接到AWS的Android应用程序,我使用代码在应用程序中的DynamoDB中保存数据:
AmazonDynamoDBClient ddb = clientManager
.ddb();
DynamoDBMapper mapper = new DynamoDBMapper(ddb);
try {
mapper.save(event);
}
Run Code Online (Sandbox Code Playgroud)
我知道可以通过Lambda管理DynamoDB中的数据.我的问题是:在Lambda中保存和编辑数据更快更安全吗?
因此,我试图找到一个奇怪的错误的源头,该错误会导致特定lambda函数的异常调用峰值。到目前为止,我已经向lambda添加了日志记录功能,并重新部署以收集有关触发lambda的上下文和事件对象的更多信息。
因此,我想知道这些事件的起源,并从上述那些记录的事件对象中找到了罪魁祸首TopicArn,但是在这种关系中我该如何找到有罪的出版商呢?有什么想法或我忽略的事情吗?
此代码在我的机器上运行正常,但在 AWS Lambda 中出现错误:
import pymysql
dbhost = 'database.ap-south-1.rds.amazonaws.com'
dbuser = 'admin'
dbpass = 'admin123'
dbname = 'classicmodels'
connection = pymysql.connect(host=dbhost, user=dbuser, password=dbpass, database=dbname)
def lambda_handler():
cursor = connection.cursor()
cursor.execute('SELECT * FROM Persons')
rows = cursor.fetchall()
for row in rows:
print ("{0} {1} {2}".format(row[0], row[1], row[2]))
lambda_handler()
Run Code Online (Sandbox Code Playgroud)
{
"errorMessage": "lambda_handler() takes 0 positional arguments but 2 were given",
"errorType": "TypeError",
"requestId": "fb790715-91f1-4f7a-961f-b83485d23b68",
"stackTrace": [" File \"/var/runtime/awslambdaric/bootstrap.py\", line 149, in handle_event_request\n response = request_handler(event, lambda_context)\n"
]
}
Function Logs
START RequestId: …Run Code Online (Sandbox Code Playgroud) 我试图使用 lambda 函数列出 AWS 秘密管理器中可用的所有秘密,以下是 python 代码片段;
region='us-west-2'
session= boto3.sesssion.Session(region_name=region)
client = session.client('secretsmanager')
secrets = client.list_secrets()
secrets_manager = secrets['SecretList']
for secret in secrets_manager:
print(secret['Name'])
Run Code Online (Sandbox Code Playgroud)
上面的代码只列出了一些秘密,而不是所有秘密,但运行以下 CLI 命令会返回所有秘密。
aws secretsmanager list-secrets | grep "Name"
Run Code Online (Sandbox Code Playgroud)
我在 python 代码中缺少什么?请指教
aws-lambda ×10
amazon-sns ×2
node.js ×2
python ×2
.net ×1
amazon-s3 ×1
android ×1
asynchronous ×1
c# ×1
lambda ×1
pymysql ×1