Skip to content

Commit

Permalink
feat: implement scheduled event for fetching available cars
Browse files Browse the repository at this point in the history
- Add BUILD.bazel file for the `fetchAvailableCars` job
- Add main.go file for the `fetchAvailableCars` job
- Update serverless.yml to include `fetchAvailableCars` function with scheduled event

Signed-off-by: Sean Zheng <blackhorseya@gmail.com>
  • Loading branch information
blackhorseya committed Mar 30, 2024
1 parent 5a6457b commit 2e8d890
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 0 deletions.
18 changes: 18 additions & 0 deletions adapter/jobs/fetchAvailableCars/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
load("@rules_go//go:def.bzl", "go_binary", "go_library")

go_library(
name = "fetchAvailableCars_lib",
srcs = ["main.go"],
importpath = "github.com/blackhorseya/sion/adapter/jobs/fetchAvailableCars",
visibility = ["//visibility:private"],
deps = [
"@com_github_aws_aws_lambda_go//events",
"@com_github_aws_aws_lambda_go//lambda",
],
)

go_binary(
name = "fetchAvailableCars",
embed = [":fetchAvailableCars_lib"],
visibility = ["//visibility:public"],
)
20 changes: 20 additions & 0 deletions adapter/jobs/fetchAvailableCars/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package main

import (
"context"
"net/http"

"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-lambda-go/lambda"
)

// Handler is our lambda handler invoked by the `lambda.Start` function call.
func Handler(ctx context.Context, req events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
return events.APIGatewayProxyResponse{
StatusCode: http.StatusOK,
}, nil
}

func main() {
lambda.Start(Handler)
}
7 changes: 7 additions & 0 deletions serverless.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,10 @@ functions:
- http: ANY /{proxy+}
environment: ${file(./deployments/${opt:stage, 'prod'}/.env.yaml)}

fetchAvailableCars:
handler: ./adapter/jobs/fetchAvailableCars/
name: ${sls:stage}-${self:service}-fetchAvailableCars
events:
- schedule: rate(1 minute)
environment: ${file(./deployments/${opt:stage, 'prod'}/.env.yaml)}

0 comments on commit 2e8d890

Please sign in to comment.