2 parâmetros de invocar lambda aws a partir de golang

0

Pergunta

eu quero enviar os 2 parâmetros lambda necessidades, a fim de trabalhar e é, basicamente, precisa o valor que deseja pesquisar e, como segundo parâmetro o campo onde encontrar esse valor.

Agora, sem problema, eu tenho sido capaz de acessar alguns outros lambdas com que só precisa de um parâmetro com um 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
}

agora com 2 parâmetros, eu tive um monte de problemas e tentei um MONTE de diferentes abordagens de partida para a adição de uma outra Carga de valor, criando uma cadeia de caracteres com os valores 2 e marechal-lo, empacotamento de referências e parâmetros de experimentar e adicioná-los como carga, mesmo acrescentar tanto empacotado bytes matriz, mas eu tenho sido incapaz de envio de 2 parâmetros como carga

Você sabe o caminho certo para fazê-lo? Por Favor, Ajuda

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

Melhor resposta

0

Funções Lambda só levar uma Carga útil. Em V1, o AWS SDK, InvokeInput leva um []byte parâmetro expressar JSON, como você já sabe.

Você pode estruturar a sua um Json Carga para transportar uma lista. Olhando para o seu exemplo, a Carga pode parecer algo como

["name","name"]

Você pode alterar sua assinatura assim:

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

json.Marshal pode lidar com empacotamento de uma fatia, tão bem como os elementos dentro da fatia, de modo que o restante do código não precisa ser alterado.

É claro que o recebimento de função deve concordar sobre o esquema de dados que está sendo passado. Se você deseja mudar a partir de uma seqüência de caracteres para uma lista de cadeias de caracteres, que será uma alteração de última hora. Por essa razão, Json esquemas utilizam normalmente chamado de valores, em vez de escalares.

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

Você pode adicionar Age e Address sem quebrar o que recebe a função (embora, é claro, ele irá ignorar os novos campos até que você programa é ignorá-los).

Tire um tempo para conhecer JSON - é um modo simples e expressivo padrão de codificação que é confiável suportados em todos os lugares. JSON é uma escolha natural para a codificação de dados estruturados em Ir, porque JSON se integra bem com o Go, com estruturas, mapas e fatias.

2021-11-22 23:47:47

Obrigado pela a ajuda, tendo isso em mente, eu acho que eu vou usar um objeto como entrada uma alteração o parâmetro lambda para trabalhar com ele
Julian Cisneros

Em outros idiomas

Esta página está em outros idiomas

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