#amazon-web-services #aws-lambda #aws-pinpoint
#amazon-веб-сервисы #aws-lambda #aws-pinpoint
Вопрос:
Я пытаюсь отправлять сообщения в мою функцию AWS Lambda из AWS Pinpoint через пользовательский канал, как описано здесь
Моя проблема заключается в предоставлении разрешения AWS Pinpoint на вызов моей функции lambda. Команда AWS CLI, представленная в документации для предоставления разрешения, не работает. Когда я выполняю aws lambda add-permission
команду из AWS CLI, как описано в документации, я получил следующую ошибку:
« no matches found: arn:aws:mobiletargeting:us-east-1:<account-id>:apps/*
«
Результат не изменится, если я изменю ARN на любой из приведенных ниже:
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>/*
arn:aws:mobiletargeting:us-east-1:<account-id>:/apps/<pinpoint-app-id>/campaigns/*
Я попробовал то же самое с AWS Cloudformation вместо AWS CLI, мне удалось предоставить разрешение AWS Pinpoint на вызов моей функции lambda. По крайней мере, политика на основе ресурсов появилась на вкладке «Разрешения» моей функциональной консоли AWS Lambda. Исходное условие, подобное ARN, является arn:aws:mobiletargeting:us-east-1:<account-id>:apps/<pinpoint-app-id>/*
Но, когда я пытаюсь создать кампанию в том же приложении pinpoint (т. Е. Проекте) Я получил следующее сообщение об ошибке:
"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, включая следующие, но результат тот же:
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>:*
arn:aws:mobiletargeting:us-east-1:<account-id>:/apps/*
Не удалось выяснить, в чем проблема. Любая идея о том, чего мне не хватает, будет высоко оценена.
Заранее спасибо!
Ответ №1:
Интересно, но та же aws lambda add-permission
команда, которая вернулась no matches found: arn:aws:mobiletargeting:us-east-1:<account-id>:apps/*
, работает после sudo su
.
Ответ №2:
Вероятно, уже слишком поздно, но для всех, у кого есть подобная проблема, и кто не хочет проходить через весь шаблон cloudformation, по крайней мере, на данный момент.
У меня была такая же проблема с
«совпадений не найдено: arn: aws: mobiletargeting: us-east-1::apps/*».
Это было связано с тем, что мой терминал странно вел себя с ‘*’, поэтому добавление одинарных кавычек вокруг arn сработало, например:
arn:aws:mobiletargeting:us-east-1:<account-id>:apps/<pinpoint-app-id>/*
Комментарии:
1. извините за трудночитаемый формат, новый для публикации stackoverflow.