Ich habe versucht, die UserParameters-Konfiguration innerhalb der generierten AWS CodePipeline-Vorlage einzurichten,
Name: ... Actions: - Name: Invoke-Lambda ActionTypeId: Category: Invoke Owner: AWS Provider: Lambda Version: '1' Configuration: FunctionName: exampleLambdaFunction UserParameters: '{"example":"user-parameters"}'
Beim Testen auf einem in Go geschriebenen AWS Lambda dauerte es etwas länger als gewöhnlich, die Funktionsdefinition für den Handler herauszufinden und das AWS CodePipeline JSON-Ereignis zu analysieren, das gesendet werden würde, zum Beispiel:
{ "CodePipeline.job": { "id": "11111111-abcd-1111-abcd-111111abcdef", "accountId": "111111111111", "data": { "actionConfiguration": { "configuration": { "FunctionName": "exampleLambdaFunction", "UserParameters": "{\"example\":\"user-parameters\"}" } }, "inputArtifacts": [ ... ], ... } } }
Verwenden Sie den Paketlink github.com/aws/aws-lambda-go/events, der das events.CodePipelineJobEvent enthält, das beim Unmarshalieren des gesendeten AWS CodePipeline JSON-Ereignisses hilft
package main import ( "context" "fmt" "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda" ) func Handler(ctx context.Context, event events.CodePipelineJobEvent) (string, error) { fmt.Printf("received codepipeline event function name: %+v\n", event.CodePipelineJob.Data.ActionConfiguration.Configuration.FunctionName) fmt.Printf("received codepipeline event user parameters: %+v\n", event.CodePipelineJob.Data.ActionConfiguration.Configuration.UserParameters) return "cool", nil } func main() { lambda.Start(Handler) }
Das obige ist der detaillierte Inhalt vonAnalysieren Sie Benutzerparameter, die von AWS CodePipeline an AWS Lambda in Go gesendet werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!