我目前正在尝试根据 Lambda 中的主键返回条目的所有属性,但我不想键入要获取的每个属性。有没有一种优化的方法来做到这一点,而不是每一个都打出来?
这是我的 lambda 函数:
exports.handler = async function(event, ctx, callback) {
var data;
var params = {
Key: {
key: event.key
},
TableName : 'app',
AttributesToGet: [
'email',
'lastName',
'firstName',
'...nextAttribute',
'...nextAttribute'
],
};
try {
data = await dynamoDb.get(params).promise()
console.log(data);
}
catch (err) {
console.log(err);
}
return data.Item;
}
Run Code Online (Sandbox Code Playgroud)
所以在这个例子中,...nextAttribute有没有办法返回所有属性而不是返回?
Trying to send several messages (from AWS SQS lambda, if that matters) but it's never waiting for the promises.
function getEndpoint(settings){
return new Promise(function(resolve, reject) {
// [...] more stuff here
}
Run Code Online (Sandbox Code Playgroud)
Which is then called in a loop:
exports.handler = async (event) => {
var messages = [];
event.Records.forEach(function(messageId, body) {
//options object created from some stuff
messages.push(getEndpoint(options).then(function(response){
console.log("anything at all"); //NEVER LOGGED
}));
});
await Promise.all(messages);
};
Run Code Online (Sandbox Code Playgroud)
But the await seems to be flat out skipped. I'm not …
我们正在尝试评估扩展 J2EE Web 应用程序和使用 AWS 托管服务的最佳方法。我们是否有理由在 Kubernetes (EKS) 上使用 Lambda 服务?虽然 Lambda 似乎可以扩展功能单元,但我不清楚为什么有人会用它来代替 Kubernetes,因为 Kubernetes 可以根据性能指标复制容器。
amazon-web-services kubernetes aws-lambda amazon-eks jakarta-ee
我正在尝试使用 aws-sdk 和 NodeJs 解密一些使用 AWS KMS 加密的文本。我今天开始使用 NodeJs,所以我是它的新手。我用 Java 解决了这个问题,但我正在尝试将现有的 Alexa 技能从 Java 迁移到 NodeJs。
解密的代码是:
function decrypt(buffer) {
const kms = new aws.KMS({
accessKeyId: 'accessKeyId',
secretAccessKey: 'secretAccessKey',
region: 'eu-west-1'
});
return new Promise((resolve, reject) => {
let params = {
"CiphertextBlob" : buffer,
};
kms.decrypt(params, (err, data) => {
if (err) {
reject(err);
} else {
resolve(data.Plaintext);
}
});
});
};
Run Code Online (Sandbox Code Playgroud)
当我使用正确的 CiphertextBlob 运行此代码时,出现此错误:
Promise {
<rejected> { MissingRequiredParameter: Missing required key 'CiphertextBlob' in params
at ParamValidator.fail (D:\Developing\abono-transportes-js\node_modules\aws-sdk\lib\param_validator.js:50:37) …Run Code Online (Sandbox Code Playgroud) 我是 DynamoDB 的新手,我只是创建了一个表,在其中插入了一些虚拟行来测试读/写功能。
这是我的数据。
我创建了一个 Lambda 来访问这些数据,通过 Partition Key ok Sort Key 但我每次都以空返回结束:'(
这是我的 lambda 代码:
const dynamodb = new AWS.DynamoDB.DocumentClient({apiVersion: '2012-08-10', region: 'eu-west-1'});
exports.handler = async (event,context,callback) => {
var params = {
TableName : "DontMissAPlaceTable",
KeyConditionExpression: "Partition_Key = :id",
ExpressionAttributeValues: {
":id": {"S" : "media_001"}
}
};
dynamodb.query(params, function(err, data) {
if (err) {
console.log(err, err.stack);
callback(null, {
statusCode: '500',
body: err
});
} else {
console.log(data)
callback(null, {
statusCode: '200',
body: data
});
}
})
};
Run Code Online (Sandbox Code Playgroud)
我一开始以为是无法访问该表,但似乎我拥有正确的权限。 …
我有一个 aws lambda 函数,它返回以下响应:
var responseBody = { cost: price };
var response = {
statusCode: 200,
headers: {
"Access-Control-Allow-Origin": "*"
},
body: JSON.stringify(responseBody),
isBase64Encoded: false
};
callback(null, response);
Run Code Online (Sandbox Code Playgroud)
但是我在前端 Angular 应用程序中收到以下错误。
CORS 政策已阻止在“ https://xxxxxxxxx.execute-api.us-east-1.amazonaws.com/dev/price ”处访问 XMLHttpRequest,来自源“ http://127.0.0.1:8080 ”:响应预检请求未通过访问控制检查:它没有 HTTP ok 状态。
我正在尝试使用 boto3 和 aws 运行集成测试。似乎测试无法连接到本地主机端点,因此测试失败。我很确定我已经正确配置了我的 aws 环境变量。我怀疑可能没有本地服务器在运行,但我仍然不确定如何解决这个问题。任何帮助将不胜感激。
我在 Mac Mojave 上运行,我尝试更改服务器尝试连接到 localhost:3000 的端口。我还尝试连接到我正在使用 AWS Step Functions ( https://docs.aws.amazon.com/step-functions/latest/dg/sfn-local-config-options.html )运行的服务器,但是没有运气。
来自日志的错误消息:
ConnectionRefusedError: [Errno 61] Connection refused
Run Code Online (Sandbox Code Playgroud)
和
raise EndpointConnectionError(endpoint_url=request.url, error=e)
botocore.exceptions.EndpointConnectionError: Could not connect to the endpoint URL: "http://127.0.0.1:3001/2015-03-31/functions/AthenaDatabaseProvider/invocations"
Run Code Online (Sandbox Code Playgroud)
完整日志:
Traceback (most recent call last):
File "/Users/patrickward/.local/share/virtualenvs/hobbes-iOpBOaJm/lib/python3.7/site-packages/urllib3/connection.py", line 160, in _new_conn
(self._dns_host, self.port), self.timeout, **extra_kw)
File "/Users/patrickward/.local/share/virtualenvs/hobbes-iOpBOaJm/lib/python3.7/site-packages/urllib3/util/connection.py", line 80, in create_connection
raise err
File "/Users/patrickward/.local/share/virtualenvs/hobbes-iOpBOaJm/lib/python3.7/site-packages/urllib3/util/connection.py", line 70, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 61] Connection refused
During handling of the above exception, …Run Code Online (Sandbox Code Playgroud) 我正在为我的项目开发一项服务,该服务用于在 AWS 中同步 Lambdas 工作。这个想法是编写一个 TrackerFile 模块,将在 S3 上存储结构。每次我使用跟踪器时,我都会检查是否有分配给被调用跟踪器名称的文件。
我不知道如何安全地检查 S3 上是否存在具有给定名称的文件。如果文件存在,你能展示一段能够返回 (bool, err) 的示例代码,其中 bool 为 True 吗?
我想编写一个 lambda 函数来更新 s3 存储桶中的对象文件。我正在使用相同的帐户和地区来实现这一点。根据政策,要使用的密钥和访问密钥会经常更改,这意味着我不能在 lambda 函数中使用相同的密钥和访问密钥来访问 s3 对象
那么无论如何我可以访问 s3 对象而无需在 lambda 函数中提供访问权限和密钥?
我在生产中有一个 AWS Lambda 函数。触发它可以导致货币交易。我想阻止通过 AWS 控制台测试此 lambda 的功能,以便具有控制台访问权限的用户不会意外触发它,以便他们可以在相应的登台 lambda 上进行测试。它以某种方式可能吗?
aws-lambda ×10
amazon-s3 ×3
node.js ×3
amazon-eks ×1
amazon-kms ×1
amazon-sqs ×1
async-await ×1
aws-sdk ×1
botocore ×1
encryption ×1
file ×1
go ×1
jakarta-ee ×1
javascript ×1
kubernetes ×1
python ×1
python-3.x ×1
testing ×1