>  기사  >  백엔드 개발  >  Go에서 AWS CodePipeline에서 AWS Lambda로 전송된 UserParameter를 구문 분석합니다.

Go에서 AWS CodePipeline에서 AWS Lambda로 전송된 UserParameter를 구문 분석합니다.

Susan Sarandon
Susan Sarandon원래의
2024-10-03 06:41:30314검색

Parse UserParameters sent from AWS CodePipeline to AWS Lambda in Go

문맥

생성 중인 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)
}

참고자료

  • https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-Lambda.html
  • https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-Lambda.html#action-reference-Lambda-event
  • https://github.com/aws/aws-lambda-go/blob/main/events/codepipeline_job.go

위 내용은 Go에서 AWS CodePipeline에서 AWS Lambda로 전송된 UserParameter를 구문 분석합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.