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 ¶
- func BucketRegion(awsSession *session.Session, S3Bucket string, logger *logrus.Logger) (string, error)
- func BucketVersioningEnabled(awsSession *session.Session, S3Bucket string, logger *logrus.Logger) (bool, error)
- func UploadLocalFileToS3(localPath string, awsSession *session.Session, S3Bucket string, ...) (string, error)
- type Bucket
- type Event
- type EventOwnerIdentity
- type EventRecord
- type Object
- type RollbackFunction
- type S3
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BucketRegion ¶ added in v1.3.0
func BucketRegion(awsSession *session.Session, S3Bucket string, logger *logrus.Logger) (string, error)
BucketRegion returns the AWS region that hosts the bucket
func BucketVersioningEnabled ¶ added in v1.3.0
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 ¶ added in v1.3.0
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 Bucket ¶
type Bucket struct { Name string `json:"name"` Arn string `json:"arn"` OwnerIdentity EventOwnerIdentity `json:"ownerIdentity"` }
Bucket event data
type EventOwnerIdentity ¶
type EventOwnerIdentity struct {
PrincpalID string `json:"principalId"`
}
EventOwnerIdentity event data
type EventRecord ¶
type EventRecord struct { Region string `json:"awsRegion"` EventName string `json:"eventName"` EventTime string `json:"eventTime"` EventSource string `json:"eventSource"` EventVersion string `json:"eventVersion"` S3 S3 `json:"s3"` }
EventRecord event data
type RollbackFunction ¶ added in v1.3.0
RollbackFunction called in the event of a stack provisioning failure
func CreateS3RollbackFunc ¶ added in v1.3.0
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.