es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Encontrar el ID de mensaje de Pub/Sub que activa la Función en la Nube.

Estoy tratando de acceder al messageId del mensaje de Pub/Sub que activa mi función de Golang. Para hacerlo, estoy intentando modificar la estructura PubSubMessage de la documentación de Cloud Functions:


// PubSubMessage es la carga útil de un evento de Pub/Sub.
// Consulte la documentación para obtener más detalles:
// https://cloud.google.com/pubsub/docs/reference/rest/v1/PubsubMessage
type PubSubMessage struct {
Data []byte json:"data"
MessageId string json:"messageId"
}

La función compila correctamente, pero el valor de MessageID aparece vacío. Cambiar el tipo no ayuda.

Me pregunto si existe alguna forma de obtener el ID del mensaje que desencadena una función desde dentro de ella. ¿O quizás eso no se pasa a las funciones en absoluto?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para acceder al ID de mensaje (messageId) del mensaje de Pub/Sub que activa una función de Golang, modifique la estructura PubSubMessage de la documentación de Cloud Functions de la siguiente manera:

    // PubSubMessage es la carga útil de un evento de Pub/Sub.
    // Consulte la documentación para obtener más detalles:
    // https://cloud.google.com/pubsub/docs/reference/rest/v1/PubsubMessage
    type PubSubMessage struct {
        Data []byte `json:"data"`
        MessageId string `json:"messageId"`
    }
    

    Asegúrese de eliminar las referencias de entidad de caracteres HTML " y utilizar comillas dobles normales " alrededor de las etiquetas JSON.

    Si la función aún no puede acceder al valor messageId, es posible que no se pase a las funciones en absoluto. En este caso, un enfoque alternativo sería utilizar la biblioteca de cliente Pub/Sub para recuperar manualmente el ID de mensaje en función del tema de suscripción y el contenido del mensaje.

Comments are closed.