Documentation

Overview

Package s3 provides types to support unmarshalling generic `event *json.RawMessage` types into S3 specific event structures. Sparta-based S3 event listeners can unmarshall the RawMesssage into source-specific data. Example:

func s3EventListener(event *json.RawMessage,
                      context *sparta.LambdaContext,
                      w http.ResponseWriter,
                      logger *logrus.Logger) {
  var lambdaEvent spartaS3.Event
  err := json.Unmarshal([]byte(*event), &lambdaEvent)
  if err != nil {
    logger.Error("Failed to unmarshal event data: ", err.Error())
    http.Error(w, err.Error(), http.StatusInternalServerError)
  }
  for _, eachRecord := range lambdaEvent.Records {
    switch eachRecord.EventName {
      case "ObjectCreated:Put": {...}
      default : {...}
    }
  }
}

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BucketRegion

func BucketRegion(awsSession *session.Session,
	S3Bucket string,
	logger *logrus.Logger) (string, error)

BucketRegion returns the AWS region that hosts the bucket

func BucketVersioningEnabled

func BucketVersioningEnabled(awsSession *session.Session,
	S3Bucket string,
	logger *logrus.Logger) (bool, error)

BucketVersioningEnabled determines if a given S3 bucket has object versioning enabled.

func UploadLocalFileToS3

func UploadLocalFileToS3(localPath string,
	awsSession *session.Session,
	S3Bucket string,
	S3KeyName string,
	logger *logrus.Logger) (string, error)

UploadLocalFileToS3 takes a local path and uploads the content at localPath to the given S3Bucket and KeyPrefix. The final S3 keyname is the S3KeyPrefix+ the basename of the localPath.

Types

type RollbackFunction

type RollbackFunction func(logger *logrus.Logger) error

RollbackFunction called in the event of a stack provisioning failure

func CreateS3RollbackFunc

func CreateS3RollbackFunc(awsSession *session.Session, s3ArtifactURL string) RollbackFunction

CreateS3RollbackFunc creates an S3 rollback function that attempts to delete a previously uploaded item. Note that s3ArtifactURL may include a `versionId` query arg to denote the specific version to delete.

Source Files