Maison >développement back-end >Golang >Analyser les paramètres utilisateur envoyés d'AWS CodePipeline à AWS Lambda en Go
J'essayais de configurer la configuration UserParameters dans le modèle AWS CodePipeline en cours de génération,
Name: ... Actions: - Name: Invoke-Lambda ActionTypeId: Category: Invoke Owner: AWS Provider: Lambda Version: '1' Configuration: FunctionName: exampleLambdaFunction UserParameters: '{"example":"user-parameters"}'
Lors du test sur un AWS Lambda, écrit en Go, il a fallu un peu plus de temps que d'habitude pour trouver la définition de fonction du gestionnaire, pour analyser l'événement JSON AWS CodePipeline qui serait envoyé, par exemple :
{ "CodePipeline.job": { "id": "11111111-abcd-1111-abcd-111111abcdef", "accountId": "111111111111", "data": { "actionConfiguration": { "configuration": { "FunctionName": "exampleLambdaFunction", "UserParameters": "{\"example\":\"user-parameters\"}" } }, "inputArtifacts": [ ... ], ... } } }
Utilisez le lien du package github.com/aws/aws-lambda-go/events qui contient le event.CodePipelineJobEvent qui aide à désorganiser l'événement JSON AWS CodePipeline envoyé
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) }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!