相关疑难解决方法(0)

AccessDeniedException:用户无权执行:lambda:InvokeFunction

我正在尝试从节点调用lambda函数.

var aws = require('aws-sdk');
var lambda = new aws.Lambda({
    accessKeyId: 'id',
    secretAccessKey: 'key',
    region: 'us-west-2'
});

lambda.invoke({
    FunctionName: 'test1',
    Payload: JSON.stringify({
        key1: 'Arjun',
        key2: 'kom',
        key3: 'ath'
    })
}, function(err, data) {
    if (err) console.log(err, err.stack);
    else     console.log(data);
});
Run Code Online (Sandbox Code Playgroud)

密钥用于IAM用户.用户必须AWSLambdaExecuteAWSLambdaBasicExecutionRole附加政策.

我收到了一个权限错误: AccessDeniedException: User: arn:aws:iam::1221321312:user/cli is not authorized to perform: lambda:InvokeFunction on resource: arn:aws:lambda:us-west-2:1221321312:function:test1

我阅读了文档和几个博客,但我无法授权此用户调用lambda函数.如何让这个用户调用lambda?

谢谢.

amazon-web-services amazon-iam aws-lambda

50
推荐指数
4
解决办法
5万
查看次数

AWS lambda调用不调用另一个lambda函数 - Node.js

在赋予调用函数的所有权限之后.我的Lambda函数无法调用另一个函数.每次我有超时30 seconds timeout问题.看起来lambda无法获得另一个lambda函数

我的lambda属于同一地区,同一政策,同一安全组.两个lambda中的VPC也相同.现在唯一不同的是lambda函数

这是角色权利

1)创建 AWSLambdaExecuteAWSLambdaBasicExecutionRole

2)创建一个lambda函数,称为 Lambda_TEST

exports.handler = function(event, context) {
  console.log('Lambda TEST Received event:', JSON.stringify(event, null, 2));
  context.succeed(event);
};
Run Code Online (Sandbox Code Playgroud)

3)这是调用它的另一个函数.

var AWS = require('aws-sdk');
AWS.config.region = 'us-east-1';
var lambda = new AWS.Lambda();

exports.handler = function(event, context) {
 var params = {
   FunctionName: 'Lambda_TEST', // the lambda function we are going to invoke
   InvocationType: 'RequestResponse',
   LogType: 'Tail',
   Payload: '{ "name" : "Arpit" }'
 };

  lambda.invoke(params, function(err, data) {
   if (err) {
    context.fail(err);
   } …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-iam aws-sdk aws-lambda

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

Lambda 调用 Lambda - 如何在第二个中访问有效负载?

我正在使用以下方法从另一个 Lambda 异步调用 Lambda:

payload = {"id":item['id']}
invoke_lambda = lambda_client.invoke(FunctionName="process",
                                     InvocationType="Event",
                                     Payload=json.dumps(payload)) # Use InvocationType="RequestResponse" for synchronous run
Run Code Online (Sandbox Code Playgroud)

这可能相当明显,但我找不到它的文档 - 如何访问定义为的第二个 lambda 中的有效负载:

def process(event, context):
    (...)
Run Code Online (Sandbox Code Playgroud)

python amazon-web-services aws-lambda

7
推荐指数
1
解决办法
2569
查看次数

6
推荐指数
2
解决办法
3409
查看次数

从另一个未调用的 Lambda 函数中调用 Lambda 函数

如何在 Lambda 函数中调用 Lambda 函数?

例如,

函数 1 中,它将由 API 网关请求触发,并将调用第二个 lambda 函数作为事件(InvocationType = Event)。

函数 2 中,它将向端点发出 http 请求。

另外,我要在 serverless.yml 中编码吗?还是仅在 index/app/handler.js 上编写代码?

我在 stackoverflow -> Nodejs - Invoke an AWS.Lambda function from within another lambda function上尝试了这里的链接,但它不起作用。

var AWS = require('aws-sdk');
AWS.config.region = 'eu-west-1';
var lambda = new AWS.Lambda();

//LAMBDA A
exports.handler = function(event, context) {
  var params = {
    FunctionName: 'Lambda_B', // the lambda function we are going to invoke
    InvocationType: 'RequestResponse', …
Run Code Online (Sandbox Code Playgroud)

javascript invoke amazon-web-services node.js aws-lambda

4
推荐指数
1
解决办法
7552
查看次数

lambda.invoke 是否需要 promise 包装器?

我有以下Promise.all示例。

承诺包装器是否需要lambda.invoke

引用了这个线程

function get1(id) {
    return new Promise((resolve, reject) => {
        const params = {
            FunctionName: 'myLambda', // the lambda function we are going to invoke
            InvocationType: 'RequestResponse',
            Payload: { id },
        };

        lambda.invoke(params, (err, data) => {
            if (err) {
                reject(new Error('error'));
            } else {
                const result = JSON.parse(data.Payload);
                resolve(result);
            }
        });
    }).catch(e => Promise.resolve({ error: 'Error has occurred.' }));
}

exports.getDetails = list => Promise.all(list.map(get1))
    .then((response) => {
        return result;
    }).catch((error) => …
Run Code Online (Sandbox Code Playgroud)

javascript amazon-web-services node.js promise aws-lambda

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

AWS Lambda 无法在没有 VPC 的情况下调用另一个 AWS Lambda - NodeJs

我有两个 AWS Lambda 函数,函数 A 和函数 B,
这两个 Lambda 函数都位于无 VPC 中,因为它们都不需要任何 VPC 资源。
这两个 Lambda 函数都附加了 LambdaFull 访问角色。

我能够从本地调用并执行 Lambda B,
但无法从 Lambda A 调用或执行 Lambda B。

我需要同步行为 -

line 1 ..
line 2, invoke lambda, get a response,
line 3 to use the response from line 2
Run Code Online (Sandbox Code Playgroud)

以下是本地代码和 Lambda 代码 -

1. 本地 -

let AWS = require('aws-sdk');

let client = new AWS.Lambda({
    region: "us-east-1"
});

let payload = {
    "param1": "ABC",
    "param2": 123
};
payload = JSON.stringify(payload); …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services node.js aws-lambda

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