paramcache

package module
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jan 30, 2021 License: MIT Imports: 8 Imported by: 0

README

ParamCache - A Go SSM Parameter Store Cache

ParamCache is used in AWS Go Lambdas when cold booting to save repeated lookups on subsequent invocations. Assumes SSM / AWS Systems Manager is in the same region as the lambda.

Cache configurable via lambda environment variables:

SSM_CACHE_ENABLE string (default "TRUE")

SSM_CACHE_VERBOSE string (default "FALSE")

SSM_CACHE_TIMEOUT int (default 300 seconds)

Usage

import "github.com/dozyio/paramcache"

...

tableName, err := paramcache.GetParameterStoreValue("dynamodb_table_name")
if err != nil {
	//handle error
}
log.Printf("%s\n", *tableName.Parameter.Value)

Example: Cache timeout per parameter

It is possible to set a cache timeout value per parameter. The example below sets a 20 second cache for "dynamodb_table_name".

tableName, err := paramcache.GetParameterStoreValue("dynamodb_table_name", 20)

Example: Don't cache a parameter

Setting a cache timeout of 0 will not add the parameter to the cache

tableName, err := paramcache.GetParameterStoreValue("dynamodb_table_name", 0)

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AWSSession added in v0.1.4

func AWSSession(s *session.Session) *session.Session

AWSSession create AWS Session for reuse

func GetParameterStoreValue

func GetParameterStoreValue(param string, timeout ...int) (*ssm.GetParameterOutput, error)

GetParameterStoreValue returns a string, stringlist or securestring from SSM and caches the value if configured to do so. timeout is defined as variadic but only the first value is used. If timeout isn't set, then fallback to SSM_CACHE_TIMEOUT variable or cacheDefaultTimeout (300)

Types

type SSMParameterStoreCache

type SSMParameterStoreCache struct {
	Value        *ssm.GetParameterOutput
	CacheExpires int64
}

SSMParameterStoreCache setup

Jump to

Keyboard shortcuts

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