All Versions
73
Latest Version
Avg Release Cycle
50 days
Latest Release
-

Changelog History
Page 4

  • v0.20.4 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
      • Changed step.NewStateMachine signature to include StateMachineName as first argument per Nov 15th, 2017 release
    • :checkered_flag: CHANGES

      • Add profile command
      • Profile snapshots are enabled via:
      sparta.ScheduleProfileLoop(nil, 5*time.Second, 30*time.Second, "heap")
      
      • Profile snapshots are published to S3 and are locally aggregated across all lambda instance publishers. To view the ui, run the profile Sparta command.
      • See the SpartaPProf sample for a service that installs profiling hooks.
      • Ensure you have the latest pprof UI via go get -u -v github.com/google/pprof
      • The standard profile names are available, as well as a cpu type implied by a non-zero time.Duration supplied as the third parameter to ScheduleProfileLoop.
      • Eliminate unnecessary logging in AWS lambda environment
      • Log NodeJS process.uptime()
    • ๐Ÿ›  :bug: FIXED

      • Added more constructive message when working directory for go build doesn't contain main package.
  • v0.20.3 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
    • :checkered_flag: CHANGES
    • ๐Ÿ›  :bug: FIXED
      • Fixed explore interactive debugging instructions
  • v0.20.2 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
    • :checkered_flag: CHANGES

      • Added support for Step functions.
      • Step functions are expressed via a combination of: states, NewStateMachine, and adding a StateMachineDecorator as a service hook.
      • See the SpartaStep sample for a service that provisions a simple roll die state machine.
      • Usability improvements & enhancements for CLI log output. Text-formatted output now includes cleaner header as in:
      INFO[0000] โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
      INFO[0000]    _______  ___   ___  _________
      INFO[0000]   / __/ _ \/ _ | / _ \/_  __/ _ |     Version : 0.20.2
      INFO[0000]  _\ \/ ___/ __ |/ , _/ / / / __ |     SHA     : 740028b
      INFO[0000] /___/_/  /_/ |_/_/|_| /_/ /_/ |_|     Go      : go1.9.1
      INFO[0000]
      INFO[0000] โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
      INFO[0000] Service: SpartaStep-mweagle                   LinkFlags= Option=provision UTC="2017-11-01T01:14:31Z"
      INFO[0000] โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
      
      • Added megacheck to compile pipeline. Fixed issues.
      • Corrected inline Go examples to use proper function references & signatures.
    • ๐Ÿ›  :bug: FIXED

  • v0.20.1 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
    • :checkered_flag: CHANGES
      • Add sparta.LambdaName to return the reflection-discovered name of an http.HandleFunc instance.
    • ๐Ÿ›  :bug: FIXED
      • Fixed issue with --describe not rendering CloudFormation template properly
      • Better handle failures when posting body - thanks @nylar
  • v0.20.0 Changes

    ๐Ÿ—„ :star: Deprecation Notice

    ๐Ÿš€ The sparta.LambdaFunc signature is officially deprecated in favor of http.HandlerFunc and will be removed in an upcoming release. See below for more information

    • ๐Ÿ’ฅ :warning: BREAKING
      • Changed NewLambdaHTTPHandler to NewServeMuxLambda
      • Remove obsolete InvokeID from LambdaContext
      • Changed codePipelineTrigger CLI arg name to codePipelinePackage
    • :checkered_flag: CHANGES

      • Eliminated NodeJS cold start cp & chmod penalty! :fire:
      • Prior to this release, the NodeJS proxying code would copy the embedded binary to /tmp and add the executable flag prior to actually launching the binary. This had a noticeable performance penalty for startup.
      • This release embeds the application or library in a ./bin directory with the file permissions set so that there is no additional filesystem overhead on cold-start. h/t to StackOverflow for the tips.
      • Migrated all IPC calls to protocolBuffers.
      • Message definitions are in the proxy directory.
      • The client-side log level (eg: --level debug) is carried into the AWS Lambda Code package.
      • Provisioning a service with --level debug will log everything at logger.Debug level and higher including all AWS API calls made both at provision and Lambda execution time.
      • Help resolve "Works on My Stack" syndrome.
      • HTTP handler panic events are now recovered and the traceback logged for both NodeJS and cgo deployments
      • Introduced sparta.HandleAWSLambda
      • sparta.HandleAWSLambda accepts standard http.RequestFunc signatures as in:
        func helloWorld(w http.ResponseWriter, r *http.Request) {
          ...
        }
      
        lambdaFn := sparta.HandleAWSLambda("Hello HTTP World",
          http.HandlerFunc(helloWorld),
          sparta.IAMRoleDefinition{})
      
      • This allows you to chain middleware for a lambda function as if it were a standard HTTP handler. Say, for instance: X-Ray.
      • The legacy sparta.LambdaFunction is still supported, but marked for deprecation. You will see a log warning as in:
        WARN[0045] DEPRECATED: sparta.LambdaFunc() signature provided. Please migrate to http.HandlerFunc()
      
      • LambdaContext and *logrus.Logger are now available in the requext.Context() via:
        • sparta.ContextKeyLogger => *logrus.Logger
        • sparta.ContextKeyLambdaContext => *sparta.LambdaContext
      • Example:
        • loggerVal, loggerValOK := r.Context().Value(sparta.ContextKeyLogger).(*logrus.Logger)
      • Added support for CodePipeline
      • See the SpartaCodePipeline project for a complete example and the related post.
      • Upgraded NodeJS to nodejs6.10 runtime
      • Parity between NodeJS and Python/cgo startup output
      • Both NodeJS and cgo based Sparta applications now log equivalent system information.
      • Example:
        {
          "level": "info",
          "msg": "SystemInfo",
          "systemInfo": {
            "sysinfo": {
              "version": "0.9.1",
              "timestamp": "2017-09-16T17:07:34.491807588Z"
            },
            "node": {
              "hostname": "ip-10-25-51-97",
              "machineid": "0046d1358d2346adbf8851e664b30d25",
              "hypervisor": "xenhvm",
              "timezone": "UTC"
            },
            "os": {
              "name": "Amazon Linux AMI 2017.03",
              "vendor": "amzn",
              "version": "2017.03",
              "architecture": "amd64"
            },
            "kernel": {
              "release": "4.9.43-17.38.amzn1.x86_64",
              "version": "#1 SMP Thu Aug 17 00:20:39 UTC 2017",
              "architecture": "x86_64"
            },
            "product": {},
            "board": {},
            "chassis": {},
            "bios": {},
            "cpu": {
              "vendor": "GenuineIntel",
              "model": "Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz",
              "cache": 25600,
              "threads": 2
            },
            "memory": {}
          },
          "time": "2017-09-16T17:07:34Z"
        }
      
    • ๐Ÿ›  :bug: FIXED

      • There were more than a few
  • v0.13.2 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
    • :checkered_flag: CHANGES
      • Changed how Lambda FunctionName values are defined so that function name uniqueness is preserved for free, imported free, and struct-defined functions
    • ๐Ÿ›  :bug: FIXED
  • v0.13.1 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
    • :checkered_flag: CHANGES
      • Changed how Lambda FunctionName values are defined so that same-named functions provisioned across multiple stacks remain unique. This is done by prefixing the function name with the CloudFormation StackName.
      • Cleaned up S3 upload log statements to prefer relative paths iff applicable
    • ๐Ÿ›  :bug: FIXED
  • v0.13.0 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
      • Removed sparta.NewNamedLambda. Stable, user-defined function names can be supplied via the SpartaOptions.Name field.
    • :checkered_flag: CHANGES

      • CloudWatch Dashboard Support!
      • You can provision a CloudWatch dashboard that provides a single overview and link portal for your Lambda-based service. Use the new sparta.DashboardDecorator function to automatically create a dashboard. This leverages the existing WorkflowHooks functionality.
      • Example:
      // Setup the DashboardDecorator lambda hook
      workflowHooks := &sparta.WorkflowHooks{
        ServiceDecorator: sparta.DashboardDecorator(lambdaFunctions, 60),
      }
      
      • Where the 60 value is the CloudWatch time series period.
      • The CloudWatch Dashboard URL will be included in your stack's Outputs as in:
      INFO[0064] Stack output                                  Description="CloudWatch Dashboard URL" Key=CloudWatchDashboardURL Value="https://us-west-2.console.aws.amazon.com/cloudwatch/home?region=us-west-2#dashboards:name=SpartaXRay-mweagle"
      
      • Example:
      • For more info, see the AWS Blog Post
      • The SpartaXRay sample application has additional code samples.
      • XRay support added
      • added LambdaFunctionOptions.TracingConfig field to LambdaFunctionOptions
      • added XRay IAM privileges to default IAM role settings:
        • xray:PutTraceSegments
        • xray:PutTelemetryRecords
      • See AWS blog for more information
      • added LambdaFunctionOptions.Tags to support tagging AWS Lambda functions
      • added SpartaGitHash output to both CLI and CloudWatch Dashboard output. This is in addition to the SpartaVersion value (which I occasionally have failed to update).
    • ๐Ÿ›  :bug: FIXED

      • Fixed latent issue where SpartaOptions.Name field wasn't consistently used for function names.
  • v0.12.1 Changes

    • ๐Ÿ’ฅ :warning: BREAKING
    • :checkered_flag: CHANGES
      • added Sparta/aws/cloudformation.UserScopedStackName() to generate username-suffixed CloudFormation StackNames
    • ๐Ÿ›  :bug: FIXED
  • v0.12.0 Changes