Sha256: e039c9442b2e94ca5152fe5070ccebff560a784aa5113c0433558b3124636d5c

Contents?: true

Size: 1.16 KB

Versions: 2

Compression:

Stored size: 1.16 KB

Contents

module Jets::Resource::ApiGateway::BasePath
  class Function < Jets::Resource::Base
    include Jets::Resource::Function::Environment

    def definition
      {
        base_path_function: {
          type: "AWS::Lambda::Function",
          properties: {
            function_name: function_name,
            code: {
              s3_bucket: "!Ref S3Bucket",
              s3_key: code_s3_key,
            },
            role: "!GetAtt BasePathRole.Arn",
            handler: handler,
            runtime: "ruby2.5",
            timeout: 60,
            memory_size: 1536,
            environment: env_properties[:environment],
          }
        }
      }
    end

    def function_name
      method = "jets-base-path"
      # need to add the deployment timestamp because or else function name collides between deploys
      timestamp = Jets::Resource::ApiGateway::Deployment.timestamp
      "#{Jets.config.project_namespace}-#{method}-#{timestamp}"
    end

    def handler
      "handlers/functions/jets/base_path.lambda_handler"
    end

    def code_s3_key
      checksum = Jets::Builders::Md5.checksums["stage/code"]
      "jets/code/code-#{checksum}.zip" # s3_key
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
jets-1.2.1 lib/jets/resource/api_gateway/base_path/function.rb
jets-1.2.0 lib/jets/resource/api_gateway/base_path/function.rb