2 parametry vyvolat lambda aws od golang

0

Otázka

chci poslat 2 parametry lambda, které potřebuje k práci, a to v podstatě potřebuje hodnota chci hledat a jako druhý parametr pole, kde najít tu hodnotu.

Teď s tím žádný problém, byl jsem schopen získat přístup k některé jiné lambdy s, které potřebují pouze jeden parametr s kódem, jako je tento.

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
}

nyní s 2 parametry jsem měl hodně problémů a vyzkoušeli MNOHO různých přístupů spuštění pro přidání další Nálož hodnotu, vytváří řetězec s 2 hodnoty a maršál to, zařazování oba parametry a zkusit je přidat jako náklad, a to i připojit oba zařazen bajtů pole, ale byl jsem schopen odesílání 2 parametry jako náklad

Víte, že správný způsob, jak to udělat? Prosím, Pomozte

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

Nejlepší odpověď

0

Lambda funkce vzít jen jeden Náklad. V V1 AWS SDK, InvokeInput trvá jeden []byte parametr vyjadřující JSON, jak již víte.

Můžete strukturovat svůj jeden Json Payload nosit seznamu. Při pohledu na váš příklad, Náklad by mohl vypadat nějak takto

["name","name"]

Mohla by sis změnit podpis jako tak:

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

json.Marshal zvládne zařazování plátek stejně jako prvky v řezu, takže zbývající kód nemusí změnit.

Samozřejmě příjem funkce musí dohodnout o schématu dat je přenášen. Pokud chcete změnit z řetězce na seznam řetězců, které budou rozdělení změnit. Pro, že důvod, Json schémata typicky použít pojmenované hodnoty místo skaláry.

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

Můžete přidat Age a Address bez porušení přijímat funkce (i když, samozřejmě, to bude ignorovat nové pole, dokud si program ignorovat).

Udělejte si čas, aby Si vědět, JSON - jednoduchý a expresivní standard kódování, který je spolehlivě podporované všude. JSON je přirozenou volbou pro kódování strukturovaných dat v Go, protože JSON integruje dobře s Go, s konstrukcí, mapy, a plátky.

2021-11-22 23:47:47

Děkuji za pomoc, s tímto na mysli, myslím, že budu používat objekt jako vstupní změnit parametr lambda, aby s ním pracovat
Julian Cisneros

V jiných jazycích

Tato stránka je v jiných jazycích

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