从 AWS Pinpoint 自定义通道向 AWS Lambda 发送消息

Sending message to AWS Lambda from AWS Pinpoint Custom Channel

我正在尝试通过自定义通道从 AWS Pinpoint 向我的 AWS Lambda 函数发送消息,如所述here

我的问题是关于授予 AWS Pinpoint 调用我的 lambda 函数的权限。文档中提供的用于授予权限的 AWS CLI 命令不起作用。当我按照文档中的描述从 AWS CLI 执行 aws lambda add-permission 命令时,出现以下错误:

"no matches found: arn:aws:mobiletargeting:us-east-1:<account-id>:apps/*"

如果我将 ARN 更改为以下任何一项,结果不会改变:

我尝试使用 AWS Cloudformation 而不是 AWS CLI 进行同样的操作,我成功地向 AWS Pinpoint 授予了调用我的 lambda 函数的权限。至少基于资源的策略出现在我的 AWS Lambda 函数控制台的“权限”选项卡中。类似源 ARN 的条件是 arn:aws:mobiletargeting:us-east-1:<account-id>:apps/<pinpoint-app-id>/*

但是,当我尝试在同一个精确定位应用程序(即项目)下创建活动时,我收到以下错误消息:

"Amazon Pinpoint couldn’t invoke the Lambda function that you specified for custom delivery. Verify that a function policy is assigned to the function and that Amazon Pinpoint is authorized to invoke the function."

我尝试了不同的 SourceArn 条件,包括以下条件,但结果是一样的:

无法弄清楚问题出在哪里。任何关于我所缺少的东西的想法将不胜感激。

提前致谢!

有趣但返回 no matches found: arn:aws:mobiletargeting:us-east-1:<account-id>:apps/* 的相同 aws lambda add-permission 命令在 sudo su 之后起作用。

这可能为时已晚,但对于任何有类似问题并且至少暂时不想浏览整个 cloudformation 模板的人来说。

我和

有同样的问题

"no matches found: arn:aws:mobiletargeting:us-east-1::apps/*".

这是由于我的终端使用“*”时表现异常,所以在 arn 周围添加单引号有效,例如:
arn:aws:mobiletargeting:us-east-1:<account-id>:apps/<pinpoint-app-id>/*