2 parámetros de invocar aws lambda de golang

0

Pregunta

quiero enviar el 2 parámetros lambda necesidades con el fin de trabajar y que básicamente se necesita el valor que desea buscar y como segundo parámetro el campo donde encontrar ese valor.

Ahora sin problema he sido capaz de acceder a algunos de los otros lambdas con que solo necesitan un parámetro con un código como este.

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
}

ahora, con 2 parámetros que he tenido un montón de problemas y trató de un MONTÓN de diferentes enfoques de partida para añadir otra Carga de valor, la creación de una cadena con los valores de 2 y de la jefa de ello, el cálculo de referencias de ambos parámetros y probar y añadir la carga, incluso anexar tanto calcularse bytes de la matriz, pero he sido incapaz de envío de 2 parámetros como la carga

¿Usted sabe la manera correcta de hacerlo? Por Favor Ayuda

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

Mejor respuesta

0

Las funciones Lambda de una sola Carga. En la V1 de la SDK de AWS, InvokeInput toma uno []byte parámetro que expresan JSON, como usted ya sabe.

Puedes estructura de un Json Carga útil llevar una lista. Busca en tu ejemplo, la Carga podría ser algo como

["name","name"]

Usted puede cambiar su firma así:

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

json.Marshal puede manejar el cálculo de referencias de un sector tan bien como los elementos dentro de la rebanada, por lo que el resto del código no necesita cambiar.

Por supuesto, la recepción de la función debe estar de acuerdo sobre el esquema de los datos que se le pasa. Si usted desea cambiar de una cadena en una lista de cadenas, que será un cambio de hora. Por esa razón, Json esquemas suelen utilizar nombrado valores en lugar de los escalares.

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

Usted puede agregar Age y Address sin romper la función de recepción (aunque, por supuesto, va a ignorar los nuevos campos hasta que el programa es ignorarlos).

Tómese el tiempo para conocer a JSON - es una forma simple y expresiva estándar de codificación que es fiable apoyada por todas partes. JSON es una elección natural para la codificación de los datos estructurados en Ir porque JSON se integra bien con Go con las estructuras, los mapas, y las rodajas.

2021-11-22 23:47:47

Gracias por la ayuda, teniendo en cuenta lo creo que me voy a utilizar un objeto como una entrada de un cambio en el parámetro lambda para trabajar con él
Julian Cisneros

En otros idiomas

Esta página está en otros idiomas

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