【问题标题】:Unable to add trigger to AWS Lambda无法将触发器添加到 AWS Lambda
【发布时间】:2020-11-10 17:48:03
【问题描述】:

我正在尝试将 SQS 作为触发器添加到我在 AWS-VPC 中运行的 Lambda 函数中,但它会引发错误:

An error occurred when creating the trigger: The provided execution role does not have permissions to call ReceiveMessage on SQS (Service: AWSLambda; Status Code: 400; Error Code: InvalidParameterValueException; Request ID: d34b7525-5c69-4434-a015-112e8e74f447; Proxy: null)

尝试通过将AWSLambdaVPCAccessExecutionRole 添加到策略中 角色以及通过 IAM。但没有运气!

我无法弄清楚我在哪里犯了错误?请帮助我,如果有人过去有类似的经验或知道如何解决它。提前谢谢你!

【问题讨论】:

  • 您需要在您的角色中添加对 sqs 的访问权限。您提到的策略只能提供对 vpc 资源的访问。 SQS 是另一种托管服务。

标签: amazon-web-services aws-lambda amazon-iam amazon-sqs amazon-vpc


【解决方案1】:

请在您的 lambda 执行角色中附加托管策略 AWSLambdaSQSQueueExecutionRole。 如果您的 lambda 函数与任何其他 aws 服务一起使用,您可以尝试创建自定义角色并添加特定权限。

在 aws 中,如果任何服务想要访问任何其他服务,您需要这些特定的角色权限。

有关 lambda 权限的更多信息,请查看Managed lambda permissions

【讨论】:

  • 我有这些策略:AWSLambdaSQSQueueExecutionRole 和 AWSLambdaVPCAccessExecutionRole 已经添加。但不起作用!
【解决方案2】:

您需要将以下操作添加到附加到您的 lambda 的 IAM 角色中:

  • sqs:ReceiveMessage
  • sqs:DeleteMessage
  • sqs:GetQueueAttributes

否则您的 lambda 将无法从队列中接收任何消息。 DeleteMessage 操作允许在成功处理后从队列中删除消息。作为资源设置 SQS 队列的 ARN。政策应如下所示:

{
    "Action": [
        "sqs:DeleteMessage",
        "sqs:ReceiveMessage",
        "sqs:GetQueueAttributes"
    ],
    "Resource": "arn:aws:sqs:region:accountid:queuename",
    "Effect": "Allow"
}

如果您正在寻找托管策略,请查看 AWSLambdaSQSQueueExecutionRole。

【讨论】:

    【解决方案3】:

    附加一个 lambda 角色的策略,如果您需要从这个 lambda 调用另一个 lambda,您可能需要将 account_number 更改为您的帐户号

    {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:**eu-west-1**:**account_number:function**:*"
        },
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": [
                "logs:PutLogEvents",
                "logs:CreateLogStream",
                "logs:CreateLogGroup"
            ],
            "Resource": "*"
        },
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": [
                "sqs:*"
            ],
            "Resource": "*"
        }
    ]
    }
    

    【讨论】:

      猜你喜欢
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 1970-01-01
      • 2021-10-03
      • 2019-01-11
      • 1970-01-01
      相关资源
      最近更新 更多