Saya cuba menyediakan konfigurasi UserParameters dalam Templat AWS CodePipeline yang dijana,
Name: ... Actions: - Name: Invoke-Lambda ActionTypeId: Category: Invoke Owner: AWS Provider: Lambda Version: '1' Configuration: FunctionName: exampleLambdaFunction UserParameters: '{"example":"user-parameters"}'
Semasa mengujinya pada AWS Lambda, ditulis dalam Go, ia mengambil masa lebih lama daripada biasa untuk mengetahui Definisi Fungsi untuk Pengendali, untuk menghuraikan Acara JSON CodePipeline AWS yang akan dihantar, Contohnya:
{ "CodePipeline.job": { "id": "11111111-abcd-1111-abcd-111111abcdef", "accountId": "111111111111", "data": { "actionConfiguration": { "configuration": { "FunctionName": "exampleLambdaFunction", "UserParameters": "{\"example\":\"user-parameters\"}" } }, "inputArtifacts": [ ... ], ... } } }
Gunakan pautan pakej github.com/aws/aws-lambda-go/events yang mengandungi acara.CodePipelineJobEvent yang membantu menyahmarshal acara AWS CodePipeline JSON yang dihantar
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) }
Atas ialah kandungan terperinci Parse UserParameters yang dihantar daripada AWS CodePipeline ke AWS Lambda in Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!