2 parametri di richiamare lambda aws da golang

0

Domanda

voglio inviare i 2 parametri lambda ha bisogno per lavoro e ha bisogno fondamentalmente il valore che voglio cercare e come secondo parametro il campo dove trovare quel valore.

Ora, con nessun problema, sono stato in grado di accedere ad alcune altre espressioni lambda con che necessitano solo di un parametro con un codice simile a questo.

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
}

ora con 2 parametri ho avuto un sacco di problemi e provato un SACCO di diversi approcci di partenza per l'aggiunta di un altro Payload valore, la creazione di una stringa con i 2 valori e il maresciallo si, il marshalling dei parametri e cercare di aggiungere come il payload, anche aggiungere sia il marshalling byte array, ma io sono stato incapace di invio di 2 parametri come il payload

Non si conosce il modo giusto per farlo? Si Prega Di Aiutare

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

Migliore risposta

0

Le funzioni Lambda prendere solo un Payload. In V1 di AWS SDK, InvokeInput prende una []byte parametro che esprime JSON, come già sapete.

È possibile strutturare il vostro uno Json carico per il trasporto di un elenco. Guardando il tuo esempio, il Payload potrebbe apparire qualcosa di simile

["name","name"]

Si potrebbe cambiare la tua firma in questo modo:

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

json.Marshal in grado di gestire il marshalling di una fetta così come gli elementi all'interno della sezione, in modo che il codice rimanente non ha bisogno di cambiare.

Naturalmente, la ricezione , la funzione deve d'accordo circa lo schema di dati che viene passato. Se si desidera modificare una stringa in una lista di stringhe, che sarà una modifica di rilievo. Per questo motivo, Json schemi utilizzano in genere denominato valori invece di scalari.

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

È possibile aggiungere Age e Address senza rompere la funzione di ricezione (anche se, naturalmente, ignorerà i nuovi campi fino a quando non si programma per ignorarli).

Prendetevi il tempo per conoscere JSON - è un semplice ed espressivo standard di codifica che è affidabile supportato ovunque. JSON è una scelta naturale per la codifica di dati strutturati in Andare perché JSON si integra bene con Go con le strutture, le mappe e le fette.

2021-11-22 23:47:47

Grazie per l'aiuto, avendo questo in mente penso che ho intenzione di utilizzare un oggetto come un input, modificare il parametro lambda per lavorare con esso
Julian Cisneros

In altre lingue

Questa pagina è in altre lingue

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