2 parametre golang'dan lambda aws'yi çağırır

0

Soru

bir lambda'nın çalışması için ihtiyaç duyduğu 2 parametreyi göndermek istiyorum ve temel olarak aramak istediğim değere ve ikinci bir parametre olarak bu değeri bulabileceğim alana ihtiyaç duyuyor.

Şimdi hiçbir sorun yaşamadan, bunun gibi bir kodla yalnızca bir parametreye ihtiyaç duyan diğer bazı lambda'lara erişebildim.

func (s *resourceService) GetProject(ctx context.Context, name string) projectStruct {

    payload, err := json.Marshal(name)

    util.Logger.Debugf("Payload",payload)
    invokeOutput, err := s.lambdaSvc.Invoke(ctx, &lambda.InvokeInput{
        FunctionName:   &s.getProject,
        InvocationType: "RequestResponse",
        Payload: payload,

    })
    if err != nil {
        panic(err.Error())
    }
    var project projectStruct
    err = json.Unmarshal(invokeOutput.Payload, &project)
    if err != nil {
        panic(err.Error())
    }

    util.Logger.Debugf("Invocation output [%v]", invokeOutput)
    return project
}

şimdi 2 parametreyle çok fazla sorun yaşadım ve başka bir Yük değeri eklemeye başlamak, 2 değere sahip bir dize oluşturmak ve sıralamak, her iki parametreyi sıralamak ve bunları yük olarak eklemeyi denemek için birçok farklı yaklaşım denedim. sıralanmış bayt dizisi ama yük olarak 2 parametre gönderemiyorum

Bunu yapmanın doğru yolunu biliyor musun? Yardım Lütfen

aws-lambda go
2021-11-22 20:58:11
1

En iyi cevabı

0

Lambda işlevleri yalnızca bir Yük alır. AWS sdk'nın V1'inde InvokeInput bir tane alır []byte bildiğiniz gibi json'u ifade eden parametre.

Bir Json Yükünüzü bir liste taşıyacak şekilde yapılandırabilirsiniz. Örneğinize baktığımızda, Yük yükü şöyle bir şeye benzeyebilir

["name","name"]

İmzanı böyle değiştirebilirsin.:

func (s *resourceService) GetProject(ctx context.Context, names []string) projectStruct

json.Marshal dilimin içindeki öğelerin yanı sıra bir dilimin sıralanmasını da işleyebilir, böylece kalan kodun değişmesi gerekmez.

Elbette alıcı işlev, iletilmekte olan verilerin şeması hakkında hemfikir olmalıdır. Eğer geçirmeniz için değişim " den bir dize için bir liste dizeleri, o olacak bir kırılma değiştirin. Bu nedenle, Json şemaları genellikle skalerler yerine adlandırılmış değerler kullanır.

[{ "Name": "Joan"},{"Name":"Susan"}]

Şunları ekleyebilirsiniz Age ve Address alma işlevini bozmadan (tabii ki, bunları yoksaymak için programlayana kadar yeni alanları yoksayar).

Json'u tanımak için zaman ayırın-her yerde güvenilir bir şekilde desteklenen basit ve etkileyici bir kodlama standardıdır. JSON, yapılandırılmış verileri Go'da kodlamak için doğal bir seçimdir çünkü JSON, Go'larla yapılar, haritalar ve dilimlerle iyi bütünleşir.

2021-11-22 23:47:47

Teşekkür için yardımcı olan olur sanırım ben gidiş için kullandıkları bir nesne olarak bir giriş bir değişiklik lambda parametre çalışma ile
Julian Cisneros

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................