Dieses Tutorial zeigt, wie ein Lambda von CodePipeline Invoke einen einzigen Parameter übergeben:Invoke Lambda von CodePipeline mit mehreren Userparameters
http://docs.aws.amazon.com/codepipeline/latest/userguide/how-to-lambda-integration.html
ich ein slackhook Lambda aufgebaut haben, die zwei Parameter zu erhalten, muss:
- webhook_url
- Nachricht
Wenn JSON über den CodePipeline-Editor übergeben wird, wird der JSON-Block gesendet, sodass er nicht direkt analysiert werden kann.
Userparameter übergeben:
{
"webhook":"https://hooks.slack.com/services/T0311JJTE/3W...W7F2lvho",
"message":"Staging build awaiting approval for production deploy"
}
Benutzerparameter in der Ereignisnutzlast
UserParameters: '{
"webhook":"https://hooks.slack.com/services/T0311JJTE/3W...W7F2lvho",
"message":"Staging build awaiting approval for production deploy"
}'
Beim Versuch, mehrere Userparameters direkt in der Cloudformation wie folgt anzuwenden:
Name: SlackNotification
ActionTypeId:
Category: Invoke
Owner: AWS
Version: '1'
Provider: Lambda
OutputArtifacts: []
Configuration:
FunctionName: aws-notify2
UserParameters:
- webhook: !Ref SlackHook
- message: !Join [" ",[!Ref app, !Ref env, "build has started"]]
RunOrder: 1
einen Fehler erstellen - Die Konfiguration darf nur einfache Objekte oder Strings enthalten.
Alle Vermutungen darüber, wie mehrere UserParameters, die von einer CloudFormation-Vorlage in ein Lambda übergeben werden, erhalten würden, wären sehr willkommen.
Hier ist der Lambda-Code als Referenz: https://github.com/byu-oit-appdev/aws-codepipeline-lambda-slack-webhook
@Eric Wenn Sie Pipeline mit Cloudformation oder CLI erstellen, denken Sie daran, die Anführungszeichen zu entkommen. – RandomQuestion