2 parametrii invoca aws lambda din golang

0

Problema

vreau să trimit 2 parametrii lambda are nevoie pentru a funcționa și este nevoie de practic valoarea vreau pentru a căuta și ca un al doilea parametru teren în cazul în care pentru a găsi acea valoare.

Acum, cu nici o problema am fost capabil de a accesa alte lambda cu care nevoie doar de un singur parametru cu un cod de genul asta.

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
}

acum cu 2 parametri am avut o mulțime de probleme și a încercat o MULȚIME de diferite abordări de pornire pentru a adăuga o altă Încărcătură de valoare, creând un șir cu 2 valori și mareșalul ea, marshaling ambii parametri și încerca și adăugați-le ca sarcină, chiar și adăugați ambele adunate bytes matrice dar am fost incapabil de a trimite 2 parametri ca sarcină

Știți modul corect de a face acest lucru? Vă Rugăm Să Ajute

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

Cel mai bun răspuns

0

Lambda funcții lua doar o sarcină Utilă. În V1 de AWS SDK, InvokeInput nevoie de unul []byte parametrul care exprimă JSON, după cum știți deja.

Puteți structura o Json Utilă pentru a transporta o listă. Privind la exemplul tau, Încărcătura ar putea arata ceva de genul

["name","name"]

Ai putea schimba semnatura ta astfel:

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

json.Marshal pot ocupa marshaling o felie la fel de bine ca elemente în cadrul felie, deci restul de cod nu are nevoie să se schimbe.

Desigur, primirea funcție trebuie să fie de acord despre schema de date este trecut. Dacă doriți să schimbați de la un șir la o listă de siruri de caractere, care va fi o rupere de schimbare. Pentru acest motiv, Json scheme de obicei folosesc nume valorile în loc de scalari.

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

Puteți adăuga Age și Address fără a rupe primirea funcție (deși, desigur, se va ignora noile domenii până când veți programa să le ignore).

Ia timp pentru a Ajunge să cunoască JSON - acesta este un simplu și expresiv codare standard, care este fiabil acceptate peste tot. JSON este o alegere naturala pentru codificarea datelor structurate în Du-te pentru JSON integrează bine cu Drumul lui, cu structuri, hărți, și felii.

2021-11-22 23:47:47

Multumesc pentru ajutor, având asta în minte, cred că am de gând să utilizeze un obiect ca o intrare de o schimbare lambda parametru pentru a lucra cu ea
Julian Cisneros

În alte limbi

Această pagină este în alte limbi

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