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 l'événement events.CodePipelineJobEvent qui permet de 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) }
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3