metadata

package
v1.16.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 14, 2024 License: Apache-2.0 Imports: 5 Imported by: 107

Documentation

Overview

Package metadata provides methods for creating and accessing context.Context objects with Google Cloud Functions metadata.

NOTE: This package is in alpha. It is not stable, and is likely to change.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewContext

func NewContext(ctx context.Context, m *Metadata) context.Context

NewContext returns a new Context carrying m. If m is nil, NewContext returns ctx. NewContext is only used for writing tests which rely on Metadata.

Types

type Metadata

type Metadata struct {
	// EventID is a unique ID for the event. For example: "70172329041928".
	EventID string `json:"eventId"`
	// Timestamp is the date/time this event was created.
	Timestamp time.Time `json:"timestamp"`
	// EventType is the type of the event. For example: "google.pubsub.topic.publish".
	EventType string `json:"eventType"`
	// Resource is the resource that triggered the event.
	Resource *Resource `json:"resource"`
}

Metadata holds Google Cloud Functions metadata.

func FromContext

func FromContext(ctx context.Context) (*Metadata, error)

FromContext extracts the Metadata from the Context, if present.

type Resource

type Resource struct {
	// Service is the service that triggered the event.
	Service string `json:"service"`
	// Name is the name associated with the event.
	Name string `json:"name"`
	// Type is the type of event.
	Type string `json:"type"`
	// RawPath is the path to the resource type (deprecated).
	// It is used by the GCS notifications shown in
	// https://cloud.google.com/storage/docs/pubsub-notifications,
	// which populate the resource field as a string containing the topic
	// rather than as the expected dictionary.
	// It is also used when triggering Cloud Functions by [Firebase Realtime Database
	// Triggers](https://cloud.google.com/functions/docs/calling/realtime-data).
	RawPath string `json:"-"`
}

Resource holds Google Cloud Functions resource metadata. Resource values are dependent on the event type they're from.

func (*Resource) MarshalJSON

func (r *Resource) MarshalJSON() ([]byte, error)

MarshalJSON specializes the Resource marshalling to handle the case where the value is a string instead of a map. See the comment above on RawPath for why this needs to be handled.

func (*Resource) UnmarshalJSON

func (r *Resource) UnmarshalJSON(data []byte) error

UnmarshalJSON specializes the Resource unmarshalling to handle the case where the value is a string instead of a map. See the comment above on RawPath for why this needs to be handled.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL