"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Go में AWS CodePipeline से AWS लैम्ब्डा को भेजे गए पार्स UserParameters

Go में AWS CodePipeline से AWS लैम्ब्डा को भेजे गए पार्स UserParameters

2024-11-01 को प्रकाशित
ब्राउज़ करें:308

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"}'

गो में लिखे एडब्ल्यूएस लैम्ब्डा पर इसका परीक्षण करते समय, हैंडलर के लिए फ़ंक्शन परिभाषा का पता लगाने में, भेजे जाने वाले एडब्ल्यूएस कोडपाइपलाइन जेएसओएन इवेंट को पार्स करने में सामान्य से थोड़ा अधिक समय लगा, उदाहरण के लिए:

{
    "CodePipeline.job": {
        "id": "11111111-abcd-1111-abcd-111111abcdef",
        "accountId": "111111111111",
        "data": {
            "actionConfiguration": {
                "configuration": {
                    "FunctionName": "exampleLambdaFunction",
                    "UserParameters": "{\"example\":\"user-parameters\"}"
                }
            },
            "inputArtifacts": [
               ...
            ],
            ...
        }
    }
}

समाधान

github.com/aws/aws-lambda-go/events पैकेज लिंक का उपयोग करें जिसमें इवेंट शामिल हैं। CodePipelineJobEvent जो भेजे जा रहे AWS CodePipeline JSON इवेंट को अनमर्शल करने में मदद करता है

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
विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: https://dev.to/prithvijj/parse-userparameters-sent-from-aws-codepipeline-to-aws-lambda-n-go-fem?1 यदि कोई उल्लंघन है, तो कृपया इसे हटा देने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3