问题描述
我正在尝试通过here所述的自定义渠道从AWS Pinpoint向我的AWS Lambda函数发送消息
我的问题是有关授予AWS Pinpoint调用我的lambda函数的权限。文档中提供的用于授予权限的AWS CLI命令不起作用。如文档中所述,当我从AWS CLI执行# check your package library path
.libPaths()
# grab old packages names
old_packages <- installed.packages(lib.loc = "/Library/Frameworks/R.framework/Versions/3.6/Resources/library")
old_packages <- as.data.frame(old_packages)
list.of.packages <- unlist(old_packages$Package)
# remove old packages
remove.packages( installed.packages( priority = "NA" )[,1] )
# reinstall all packages
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)
lapply(list.of.packages,function(x){library(x,character.only=TRUE)})
命令时,出现以下错误:
“ aws lambda add-permission
”
如果我将ARN更改为以下任何一项,结果不会改变:
-
no matches found: arn:aws:mobiletargeting:us-east-1:<account-id>:apps/*
-
arn:aws:mobiletargeting:us-east-1:<account-id>:apps/<pinpoint-app-id>/*
-
arn:aws:mobiletargeting:us-east-1:<account-id>:apps/<pinpoint-app-id>/campaigns/*
-
arn:aws:mobiletargeting:us-east-1:<account-id>:/apps/<pinpoint-app-id>/*
我尝试使用AWS Cloudformation而不是AWS CLI进行了同样的尝试,我成功向AWS Pinpoint授予了调用我的lambda函数的权限。至少基于资源的策略出现在我的AWS Lambda功能控制台的“权限”选项卡中。源ARN之类的条件是
arn:aws:mobiletargeting:us-east-1:<account-id>:/apps/<pinpoint-app-id>/campaigns/*
但是,当我尝试在相同的精确应用程序(即项目)下创建广告系列时,收到以下错误消息:
arn:aws:mobiletargeting:us-east-1:<account-id>:apps/<pinpoint-app-id>/*
我尝试了不同的SourceArn之类的条件,包括以下内容,但结果是相同的:
-
"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."
-
arn:aws:mobiletargeting:us-east-1:<account-id>:apps/<pinpoint-app-id>/*
-
arn:aws:mobiletargeting:us-east-1:<account-id>:apps/<pinpoint-app-id>/campaigns/*
-
arn:aws:mobiletargeting:us-east-1:<account-id>:apps/*
-
arn:aws:mobiletargeting:us-east-1:<account-id>:*
无法找出问题所在。关于我所缺少的任何想法将不胜感激。
谢谢!
解决方法
有趣但返回aws lambda add-permission
的{{1}}命令却在no matches found: arn:aws:mobiletargeting:us-east-1:<account-id>:apps/*
之后起作用。
这可能为时已晚,但对于任何有类似问题且至少目前不想浏览整个 cloudformation 模板的人来说。
我遇到了同样的问题
“未找到匹配项:arn:aws:mobiletargeting:us-east-1::apps/*”。
这是由于我的终端在使用 '*' 时表现得很奇怪,所以在 arn 周围添加单引号起作用了,例如:arn:aws:mobiletargeting:us-east-1:<account-id>:apps/<pinpoint-app-id>/*