2016-06-13 16 views
4

Damit ein AWS-Service eine Lambda-Funktion aufrufen kann, müssen Sie Berechtigungen erteilen. Die json für diese Erlaubnis könnte ein wenig etwas aussehen so:So rufen Sie eine Liste der AWS Lambda-Berechtigungen für eine Funktion auf

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

oben

Eine Erlaubnis ist leicht genug, um von http://docs.aws.amazon.com/codecommit/latest/userguide/how-to-notify-lambda.html genommen über die Befehlszeilenschnittstelle (CLI) hinzuzufügen. Siehe http://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html. Und es kann mit dem Befehl entfernt werden http://docs.aws.amazon.com/cli/latest/reference/lambda/remove-permission.html

Was ich nicht kann finden ist eine Möglichkeit, vorhandene Berechtigungen aufzulisten. Ich habe überall in der Lambda und der IAM GUI gesucht. Ich habe die Liste der CLI-Befehle für Lambda um http://docs.aws.amazon.com/cli/latest/reference/lambda/index.html#cli-aws-lambda geschaut - es scheint keinen Befehl zum Auflisten von Berechtigungen zu geben. Ich schaute auch auf die iam Befehle für ein Lachen bei http://docs.aws.amazon.com/cli/latest/reference/iam/index.html#cli-aws-iam. Nichts steht da draußen.

So die Frage: Wie erhalten Sie eine Liste der Lambda-Berechtigungen? Was fehlt mir hier und wenn es eigentlich unmöglich ist, warum? Hoffentlich einige AWS Experten gibt, die Licht auf diese

Antwort

5

Dieser verwirrte mich auch. Sie können einer Lambda-Funktion mit dem Befehl aws lambda add-permission in der AWSCLI eine Berechtigung hinzufügen. Sie können eine Berechtigung mit aws lambda remove-permission entfernen. Um die vorhandenen Berechtigungen anzuzeigen, verwenden Sie aws lambda get-policy.

+0

Nailed it! Vielen Dank –

0

Schuppen kann ich bin kein Experte AWS, hier allerdings ist mein Vorschlag:

Gehen Sie zu Ihrer Lambda-Funktion Detailansicht und gehen Sie die „Ereignisquellen“ -Reiter. Es listet alle Quellen auf, die Inhalte an Ihre Lambda-Funktion übertragen dürfen. Von dort aus können Sie zu der einzelnen Ereignisquelle gehen, um genaue Berechtigungen zu sehen (normalerweise Ausführungsberechtigungen, wie Ihre Statement-Richtlinie zeigt).

Hoffe, dass hilft.

+0

Ich habe nur einen Blick geworfen, ich bekomme "Sie haben keine Ereignisquellen für diese Funktion". Ich sollte klar sein, dass ich die Berechtigung für Codecommit Repo Trigger gewähren, um die Funktion und nichts anderes aufzurufen. Ich weiß, dass Codecommit-Trigger nur ein paar Monate alt sind - vielleicht hat AWS sie nicht als Ereignisquelle hinzugefügt. –

+0

@JamesJones Eine Möglichkeit ist, dass die Ereignisquelle beim Empfang des ersten Ereignisses aufgelistet wird. Da Codecommit Ihr Lambda aufruft (und somit als Quelle fungiert), muss es hier aufgelistet sein. Versuchen Sie, einen Test-Commit durchzuführen und danach zu sehen. –

+0

Gute Idee, aber ich habe diesen Badboy schon mehrmals angerufen. –

Verwandte Themen