2017-01-10 4 views
3

I mit Serverless v1.5 (neuester Version zur Zeit, die zum Zeitpunkt des Schreibens) in ein Problem rennein serverless erstellen Lambda Erlaubnis

Ich habe die Erlaubnis, die Lambda-Funktion hinzuzufügen, und ich versuche, um dies zu erreichen durch eine CF-Vorlage erstellen und zusammen mit dem deploy der Funktion ausgeführt wird:

resources: 
    Resources: 
    logsGroup: 
     Type: "AWS::Lambda::Permission" 
     Properties: 
     Action: lambda:InvokeFunction 
     FunctionName: 
      Fn::GetAtt: 
      - "${self:custom.${opt:stage}.name}" 
      - "Arn" 
     Principal: "logs.amazonaws.com" 
     SourceAccount: 
      Ref: "AWS::AccountId" 
     SourceArn: "arn:aws:logs:${self:provider.region}:*:log-group:*:*" 

Dies ist, wie es aussehen soll. Mein Problem ist, dass wenn ich versuche, es zu implementieren, ich einen Fehler bekomme, der besagt, dass die Funktion noch nicht erstellt wurde, die verständlich ist. Wie kann ich dieses Problem lösen? Irgendwelche Ideen?

+0

Wie haben Sie das gelöst? Wenn Sie eine Lösung gefunden haben, wäre es für diejenigen von uns hilfreich, Ihre Frage zu finden, wenn Sie eine Antwort geschrieben und akzeptiert haben, wenn Ihre Lösung funktioniert. –

Antwort

0

Nicht genug rep, um einen Kommentar hinzuzufügen - haben Sie versucht, ein DependsOn Attribut der Lambda Permission Ressource hinzuzufügen? Das explizite Festlegen dieser Eigenschaft führt dazu, dass CloudFormation wartet, bis die Lambda-Funktionsressource erstellt wird, bevor diese Berechtigung erstellt wird.

Auch wenn Sie nicht bereits wussten, dass der Ordner .serverless, der im Stammverzeichnis Ihres Projekts erstellt wird, die von Serverless verwendeten CloudFormation-Vorlagen enthält, die bei der Behandlung von unerwartetem CloudFormation-Verhalten hilfreich sein können.

Verwandte Themen