2016-10-03 12 views
0

プログラムでSNSトピックをAWSのラムダ関数のトリガとしてプログラムで追加したことがありますか? Powershell AWS SDKで次のことを試していますが、すべてを行うことができますが、有効にしています。AWSのラムダ関数にSNSトリガをプログラムで追加(および有効化)

まず、私は(myTopic)私のトピックのいずれかを見つけます。

$snsTopicArn = (Get-SNSTopic | {$_.TopicArn -match "myTopic"}).TopicArn 

は、この関数は、サブスクリプションのARNを返し、ないので、ラムダエンドポイント($のlambdaARN)

Connect-SNSNotification -TopicArn $snsTopicArn -Protocol lambda -Endpoint $lambdaArn ` 
         -Confirm:$FALSE | Out-Null 

に加入するための準備しますトークンがあると、サブスクリプションが自動確認されており、 "ConfirmSubscription"(Confirm-SNSSubscription)コールが不要であるとドキュメントに示されています。

次に、このトピックのラムダのリソースポリシーにラムダを実行する許可を追加します。

Add-LMPermission -FunctionName $lambdaName -Action "lambda:Invoke" ` 
       -Principal sns.amazonaws.com -SourceArn $snsTopicArn ` 
       -StatementId (Get-Random) | Out-Null 

この時点で、トピックはトピックのトリガの一覧に表示されますが、有効になっていません。

アイデア?

答えて

0

興味のある方は、答えを見つけました。有効なラムダアクションを入力することが重要です。 :)私は「権限を追加」の呼び出しで指定された有効なラムダアクション持っていなかったことを発見AWSサポートとチャットの程度時間後

:それは実際にこのする必要があります

lambda:Invoke 

lambda:InvokeFunction 

またはこのワイルドカード表現:

lambda:Invoke* 

"Invoke" の関数名、ない行為でありますイオン(許可)名。彼らの関係は、ここで言及されています https://policysim.aws.amazon.com/

http://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html

疑いでは、AWSが彼らのサービスのためのAWSのすべてのアクションをリストポリシーシミュレータを持っています

関連する問題