2016-06-13 61 views
4

要允許AWS服務調用lambda函數,您需要應用權限。該json這個權限可能看起來有點像這樣:如何調用函數的AWS Lambda權限列表

{ 
    "FunctionName": "someFunction", 
    "StatementId": "1", 
    "Action": "lambda:InvokeFunction", 
    "Principal": "codecommit.amazonaws.com", 
    "SourceArn": "arn:aws:codecommit:us-east-1:80398EXAMPLE:MyDemoRepo", 
    "SourceAccount": "80398EXAMPLE" 
} 

以上來自http://docs.aws.amazon.com/codecommit/latest/userguide/how-to-notify-lambda.html

權限是很容易使用命令行界面(CLI)來添加拍攝。見http://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html。它可以通過使用http://docs.aws.amazon.com/cli/latest/reference/lambda/remove-permission.html

命令刪除我不能查找是一種列出現有權限的方法。我在Lambda和IAM GUI中查找了各處。我在http://docs.aws.amazon.com/cli/latest/reference/lambda/index.html#cli-aws-lambda上查看了Lambda的cli命令列表 - 似乎沒有列出權限的命令。我還在http://docs.aws.amazon.com/cli/latest/reference/iam/index.html#cli-aws-iam上看了一下iam命令。沒有什麼突出的。

所以問題:你如何獲得Lambda權限列表?我在這裏錯過了什麼,如果它實際上不可能,爲什麼?希望一些AWS專家那裏誰可以在此

回答

5

這個也讓我困惑。您可以使用AWSCLI中的aws lambda add-permission命令向Lambda函數添加權限。您可以使用aws lambda remove-permission刪除權限。但要查看您使用的現有權限aws lambda get-policy

+0

釘牢它!謝謝 –

0

闡明我不是AWS專家,但這裏是我的建議:

轉到您的lambda函數詳細視圖去「事件源」選項卡。它列出了所有可以將內容推送到您的lambda函數的來源。從那裏開始,您可以轉到單個事件源以查看授予的確切權限(通常爲執行權限,如您的語句策略所示)。

希望有所幫助。

+0

剛剛看了一下,我得到「你沒有任何事件源的這個功能」。我應該清楚,我正在授予Codecommit repo觸發器的權限來調用該函數,而不是其他任何東西。我知道Codecommit觸發器只有幾個月的時間 - 也許AWS沒有將它們添加爲事件源。 –

+0

@JamesJones一個可能性是事件源在接收到第一個事件時被列出。由於Codecommit調用你的lambda(因此作爲源),它必須在這裏列出。嘗試做一個測試提交,然後看看。 –

+0

好主意,但我已經多次調用過這個badboy。 –

相關問題