Skip to content

Commit

Permalink
The module ec2imds moved to feature/ec2/imds path (aws/aws-sdk-go-v2#984
Browse files Browse the repository at this point in the history
)
  • Loading branch information
shogo82148 committed Dec 27, 2020
1 parent d49e113 commit 44e2813
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 35 deletions.
31 changes: 17 additions & 14 deletions cmd/cloudwatch-logs-agent-lite/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,14 @@ import (
"time"

"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/ec2imds"
"github.com/aws/aws-sdk-go-v2/feature/ec2/imds"
agent "github.com/shogo82148/cloudwatch-logs-agent-lite"
)

func main() {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()

var groupName, streamName string
var interval time.Duration
var version bool
Expand All @@ -37,10 +40,10 @@ func main() {
log.Fatal("-log-group-name is required.")
}
if streamName == "" {
streamName = generateStreamName()
streamName = generateStreamName(ctx)
}

cfg, err := config.LoadDefaultConfig()
cfg, err := config.LoadDefaultConfig(ctx)
if err != nil {
log.Fatal("fail to load aws config: ", err)
}
Expand Down Expand Up @@ -99,9 +102,9 @@ func main() {
}
}

func generateStreamName() string {
func generateStreamName(ctx context.Context) string {
// default: AWS EC2 Instance ID
if name := getAWSInstanceID(); name != "" {
if name := getAWSInstanceID(ctx); name != "" {
return name
}
// fall back to hostname
Expand All @@ -117,20 +120,20 @@ func generateStreamName() string {
return fmt.Sprintf("%09d", time.Now().Nanosecond())
}

func getAWSInstanceID() string {
cfg, err := config.LoadDefaultConfig()
if err != nil {
return ""
}

func getAWSInstanceID(ctx context.Context) string {
// use a shorter timeout than default because the metadata
// service is local if it is running, and to fail faster
// if not running on an ec2 instance.
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
ctx, cancel := context.WithTimeout(ctx, time.Second)
defer cancel()

svc := ec2imds.NewFromConfig(cfg)
out, err := svc.GetMetadata(ctx, &ec2imds.GetMetadataInput{Path: "instance-id"})
cfg, err := config.LoadDefaultConfig(ctx)
if err != nil {
return ""
}

svc := imds.NewFromConfig(cfg)
out, err := svc.GetMetadata(ctx, &imds.GetMetadataInput{Path: "instance-id"})
if err != nil {
return ""
}
Expand Down
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ go 1.15
require (
github.com/aws/aws-sdk-go-v2 v0.31.0
github.com/aws/aws-sdk-go-v2/config v0.4.0
github.com/aws/aws-sdk-go-v2/ec2imds v0.1.5
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v0.1.0
github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v0.31.0
github.com/fsnotify/fsnotify v1.4.9 // indirect
github.com/shogo82148/go-tail v0.0.3
golang.org/x/sys v0.0.0-20200929083018-4d22bbb62b3c // indirect
golang.org/x/sys v0.0.0-20201223074533-0d417f636930 // indirect
)
17 changes: 3 additions & 14 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
github.com/aws/aws-sdk-go-v2 v0.30.0 h1:/CjXUnWXnvdgOqHa65UIs2TODa5D5lm3ty7O0wWuYHY=
github.com/aws/aws-sdk-go-v2 v0.30.0/go.mod h1:vEDjzdktTH+FoEOV6BWgYLEzvPti13Onp5/qQrSiLPg=
github.com/aws/aws-sdk-go-v2 v0.31.0 h1:TNTDsz+Xq80nYzZPUFS4a2Oyjz9jKHKcTuNAXtcW8b8=
github.com/aws/aws-sdk-go-v2 v0.31.0/go.mod h1:IQw4KL7QIoaNDT3WoEBV1fDlVRhp/WTRteoaplV3SHo=
github.com/aws/aws-sdk-go-v2/config v0.4.0 h1:16lwnZRhleaPbDesZgEJbHxuOv4wy12A372mkhmiktc=
github.com/aws/aws-sdk-go-v2/config v0.4.0/go.mod h1:5uxQPUBCF+TwwWYo2xau4N+rSOS47ZH+QvLbae1Cckc=
github.com/aws/aws-sdk-go-v2/credentials v0.2.0 h1:YDv/0/8BzaZtpS4jfptcyIPh5zlhmIhbM2RtNscn/bo=
github.com/aws/aws-sdk-go-v2/credentials v0.2.0/go.mod h1:U81m6Xb5IpJ66ZnotiG7/6JJFuwrc8q8rWpXQxYP0hI=
github.com/aws/aws-sdk-go-v2/ec2imds v0.1.5 h1:9vrHx+lXUiFAFHq8n6W/p7XEJ3gGPjFI+CIu243PXbE=
github.com/aws/aws-sdk-go-v2/ec2imds v0.1.5/go.mod h1:DPESW4tlbYYOFLmRThVEKSWsux39VKDIG+5DMKCyoII=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v0.1.0 h1:zwhJDxNht/+a0QGy3RCveUFf6REXcmaQIHcYS11m5KY=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v0.1.0/go.mod h1:d3o/QBgbYw2OYmbv/EGYs0zFH47qsCKCTDbaOgdQGH8=
github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v0.31.0 h1:own7MF26XAyY/Kvmga2xhLIbWqUNrZU36oGMPUt3yB4=
Expand All @@ -16,33 +12,26 @@ github.com/aws/aws-sdk-go-v2/service/sts v0.31.0 h1:iJwlIyswoW4VM8RUmhC3397jdGa6
github.com/aws/aws-sdk-go-v2/service/sts v0.31.0/go.mod h1:gliVu4/DZsKINvBoEcMIlxMIQft/yPYQhnSLxwiWqFM=
github.com/aws/smithy-go v0.5.0 h1:ArsdWUrb1n6/V/REXhuwq2TZv+kuqOBpMlGBd2EkDYM=
github.com/aws/smithy-go v0.5.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw=
github.com/awslabs/smithy-go v0.4.0 h1:El0KyKn4zdM3pLuWJlgoeitQuu/mjwUPssr7L3xu3vs=
github.com/awslabs/smithy-go v0.4.0/go.mod h1:hPOQwnmBLHsUphH13tVSjQhTAFma0/0XoZGbBcOuABI=
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/google/go-cmp v0.4.1 h1:/exdXoGamhu5ONeUJH0deniYLWYvQwW66yvlfiiKTu0=
github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M=
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
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/shogo82148/go-tail v0.0.3 h1:3bQHYMNdkvy4S0GMjpABoW5/aRN68IKt+f4FVCqL6WE=
github.com/shogo82148/go-tail v0.0.3/go.mod h1:y96I6vs80xyEur05XIx1T73Sd52du6palkY+bl7trrQ=
github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9 h1:L2auWcuQIvxz9xSEqzESnV/QN/gNRXNApHi3fYwl2w0=
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191029155521-f43be2a4598c h1:S/FtSvpNLtFBgjTqcKsRpsa6aVsI6iztaz1bQd9BJwE=
golang.org/x/sys v0.0.0-20191029155521-f43be2a4598c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200929083018-4d22bbb62b3c h1:/h0vtH0PyU0xAoZJVcRw1k0Ng+U0JAy3QDiFmppIlIE=
golang.org/x/sys v0.0.0-20200929083018-4d22bbb62b3c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201223074533-0d417f636930 h1:vRgIt+nup/B/BwIS0g2oC0haq0iqbV3ZA+u6+0TlNCo=
golang.org/x/sys v0.0.0-20201223074533-0d417f636930/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
6 changes: 3 additions & 3 deletions writer.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ type Writer struct {
logs cloudwatchlogsiface.Interface
nextSequenceToken *string
remain string
events []*types.InputLogEvent
events []types.InputLogEvent
currentByteLength int
}

Expand Down Expand Up @@ -135,7 +135,7 @@ func (w *Writer) WriteEvent(now time.Time, message string) (int, error) {
}
}

w.events = append(w.events, &types.InputLogEvent{
w.events = append(w.events, types.InputLogEvent{
Message: aws.String(message),
Timestamp: aws.Int64(now.Unix()*1000 + int64(now.Nanosecond()/1000000)),
})
Expand Down Expand Up @@ -183,7 +183,7 @@ func (w *Writer) Flush() error {
return nil
}

func (w *Writer) putEvents(ctx context.Context, events []*types.InputLogEvent) error {
func (w *Writer) putEvents(ctx context.Context, events []types.InputLogEvent) error {
logs := w.logsClient()
resp, err := logs.PutLogEvents(ctx, &cloudwatchlogs.PutLogEventsInput{
LogEvents: events,
Expand Down
4 changes: 2 additions & 2 deletions writer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const (
)

func TestWriter_WriteEvent(t *testing.T) {
var events []*types.InputLogEvent
var events []types.InputLogEvent
mockCloudWatch := &cloudwatchlogsiface.Mock{
PutLogEventsFunc: func(ctx context.Context, params *cloudwatchlogs.PutLogEventsInput, optFns ...func(*cloudwatchlogs.Options)) (*cloudwatchlogs.PutLogEventsOutput, error) {
events = append(events, params.LogEvents...)
Expand Down Expand Up @@ -58,7 +58,7 @@ func TestWriter_WriteEvent(t *testing.T) {
}

func TestWriter_createGroup(t *testing.T) {
var events []*types.InputLogEvent
var events []types.InputLogEvent
var logGroupName, logStreamName string
mockCloudWatch := &cloudwatchlogsiface.Mock{
PutLogEventsFunc: func(ctx context.Context, params *cloudwatchlogs.PutLogEventsInput, optFns ...func(*cloudwatchlogs.Options)) (*cloudwatchlogs.PutLogEventsOutput, error) {
Expand Down

0 comments on commit 44e2813

Please sign in to comment.