生成中の AWS CodePipeline テンプレート内で UserParameters 設定をセットアップしようとしていました。
Name: ... Actions: - Name: Invoke-Lambda ActionTypeId: Category: Invoke Owner: AWS Provider: Lambda Version: '1' Configuration: FunctionName: exampleLambdaFunction UserParameters: '{"example":"user-parameters"}'
Go で書かれた AWS Lambda でテストしているときに、ハンドラーの関数定義を見つけたり、送信される AWS CodePipeline JSON イベントを解析したりするのに、通常より少し時間がかかりました。例:
{ "CodePipeline.job": { "id": "11111111-abcd-1111-abcd-111111abcdef", "accountId": "111111111111", "data": { "actionConfiguration": { "configuration": { "FunctionName": "exampleLambdaFunction", "UserParameters": "{\"example\":\"user-parameters\"}" } }, "inputArtifacts": [ ... ], ... } } }
送信される AWS CodePipeline JSON イベントのアンマーシャリングに役立つ events.CodePipelineJobEvent が含まれる github.com/aws/aws-lambda-go/events パッケージ リンクを使用します
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) }
以上がGo で AWS CodePipeline から AWS Lambda に送信された UserParameters を解析するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。