Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions .github/workflows/aws_go_forwarder.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Go Forwarder

on:
pull_request:
paths:
- "aws/logs_monitoring_go/**"

jobs:
lint:
runs-on: ubuntu-24.04-arm
defaults:
run:
working-directory: aws/logs_monitoring_go
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v5
with:
go-version-file: aws/logs_monitoring_go/go.mod
- name: golangci-lint
uses: golangci/golangci-lint-action@v9
with:
working-directory: aws/logs_monitoring_go

test:
runs-on: ubuntu-24.04-arm
defaults:
run:
working-directory: aws/logs_monitoring_go
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v5
with:
go-version-file: aws/logs_monitoring_go/go.mod
- name: Run tests
run: go test -race ./...

build:
runs-on: ubuntu-24.04-arm
defaults:
run:
working-directory: aws/logs_monitoring_go
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v5
with:
go-version-file: aws/logs_monitoring_go/go.mod
- name: Build binary
run: GOOS=linux GOARCH=arm64 go build -o bootstrap ./cmd/forwarder/
3 changes: 3 additions & 0 deletions aws/logs_monitoring_go/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.aws-sam
samconfig.toml
template.yaml
33 changes: 33 additions & 0 deletions aws/logs_monitoring_go/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
.PHONY: build package test lint clean sam-build sam-invoke sam-deploy build-ForwarderFunction

BINARY_NAME := bootstrap
ZIP_NAME := forwarder.zip

build:
GOOS=linux GOARCH=arm64 go build -o $(BINARY_NAME) ./cmd/forwarder/

# Used by `sam build`
build-ForwarderFunction:
GOOS=linux GOARCH=arm64 go build -o $(ARTIFACTS_DIR)/bootstrap ./cmd/forwarder/

package: build
zip $(ZIP_NAME) $(BINARY_NAME)

test:
go test -race ./...

lint:
golangci-lint run ./...

clean:
rm -f $(BINARY_NAME) $(ZIP_NAME)

sam-build:
sam build

EVENT ?= events/cloudwatch_logs.json
sam-invoke: sam-build
sam local invoke ForwarderFunction -e $(EVENT)

sam-deploy: sam-build
sam deploy
23 changes: 23 additions & 0 deletions aws/logs_monitoring_go/cmd/forwarder/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Unless explicitly stated otherwise all files in this repository are licensed
// under the Apache License Version 2.0.
// This product includes software developed at Datadog (https://www.datadoghq.com/).
// Copyright 2026-Present Datadog, Inc.

package main

import (
"context"
"encoding/json"
"log"

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

func handleRequest(ctx context.Context, event json.RawMessage) error {
log.Printf("Received event: %s", string(event))
return nil
}

func main() {
lambda.Start(handleRequest)
}
5 changes: 5 additions & 0 deletions aws/logs_monitoring_go/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module github.com/DataDog/datadog-serverless-functions/aws/logs_monitoring_go

go 1.26

require github.com/aws/aws-lambda-go v1.53.0
10 changes: 10 additions & 0 deletions aws/logs_monitoring_go/go.sum
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
github.com/aws/aws-lambda-go v1.53.0 h1:uAMv6W/vCP/L494BAUSxe+8KVBIPK+SGPyapFt3FuMk=
github.com/aws/aws-lambda-go v1.53.0/go.mod h1:dpMpZgvWx5vuQJfBt0zqBha60q7Dd7RfgJv23DymV8A=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/testify v1.7.2 h1:4jaiDzPyXQvSd7D0EjG45355tLlV3VOECpq10pLC+8s=
github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
Loading