标签: aws-lambda

如何在不键入所有属性的情况下获取所有 DynamoDB 属性

我目前正在尝试根据 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有没有办法返回所有属性而不是返回?

javascript amazon-web-services amazon-dynamodb aws-lambda

0
推荐指数
1
解决办法
506
查看次数

AWS SQS Node.js script does not await

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 …

amazon-sqs node.js async-await aws-lambda

0
推荐指数
1
解决办法
369
查看次数

何时使用 AWS Lambda,何时使用 Kubernetes (EKS)?

我们正在尝试评估扩展 J2EE Web 应用程序和使用 AWS 托管服务的最佳方法。我们是否有理由在 Kubernetes (EKS) 上使用 Lambda 服务?虽然 Lambda 似乎可以扩展功能单元,但我不清楚为什么有人会用它来代替 Kubernetes,因为 Kubernetes 可以根据性能指标复制容器。

amazon-web-services kubernetes aws-lambda amazon-eks jakarta-ee

0
推荐指数
1
解决办法
2784
查看次数

在 NodeJs 中使用 AWS KMS 解密文本

我正在尝试使用 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)

encryption node.js aws-lambda amazon-kms

0
推荐指数
2
解决办法
5004
查看次数

DynamoDB:查询总是返回空值

我是 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)

我一开始以为是无法访问该表,但似乎我拥有正确的权限。 …

amazon-web-services amazon-dynamodb aws-sdk aws-lambda

0
推荐指数
1
解决办法
2067
查看次数

无法使用 Lambda 和 API Gateway 访问 API

我有一个 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 状态。

amazon-web-services node.js aws-lambda aws-api-gateway

0
推荐指数
1
解决办法
2352
查看次数

ConnectionRefusedError: [Errno 61] 连接被拒绝 &amp; 无法连接到端点 URL: http://127.0.0.1:3001

我正在尝试使用 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)

python amazon-s3 amazon-web-services botocore aws-lambda

0
推荐指数
1
解决办法
1963
查看次数

如何使用 go in lambda 安全地检查 S3 存储桶中是否存在文件?

我正在为我的项目开发一项服务,该服务用于在 AWS 中同步 Lambdas 工作。这个想法是编写一个 TrackerFile 模块,将在 S3 上存储结构。每次我使用跟踪器时,我都会检查是否有分配给被调用跟踪器名称的文件。

我不知道如何安全地检查 S3 上是否存在具有给定名称的文件。如果文件存在,你能展示一段能够返回 (bool, err) 的示例代码,其中 bool 为 True 吗?

file amazon-s3 go aws-lambda

0
推荐指数
3
解决办法
3761
查看次数

是否需要提供 access_key 和 secret_key 才能在 lambda 函数中从 s3 访问对象?

我想编写一个 lambda 函数来更新 s3 存储桶中的对象文件。我正在使用相同的帐户和地区来实现这一点。根据政策,要使用的密钥和访问密钥会经常更改,这意味着我不能在 lambda 函数中使用相同的密钥和访问密钥来访问 s3 对象

那么无论如何我可以访问 s3 对象而无需在 lambda 函数中提供访问权限和密钥?

amazon-s3 python-3.x aws-lambda serverless-framework

0
推荐指数
1
解决办法
445
查看次数

如何通过 AWS 控制台阻止 AWS Lamba 测试?

我在生产中有一个 AWS Lambda 函数。触发它可以导致货币交易。我想阻止通过 AWS 控制台测试此 lambda 的功能,以便具有控制台访问权限的用户不会意外触发它,以便他们可以在相应的登台 lambda 上进行测试。它以某种方式可能吗?

testing amazon-web-services aws-lambda

0
推荐指数
1
解决办法
37
查看次数