in pubsub/src/main.go [41:78]
func publish(g Groups) {
rdb := redis.NewClient(&redis.Options{
Addr: os.Getenv("REDIS_URL") + ":" + port,
//Password: password,
})
sess := session.Must(session.NewSession(&aws.Config{Region: aws.String(os.Getenv("AWS_REGION"))}))
svc := gamelift.New(sess)
result, err := rdb.Ping().Result()
if err != nil {
log.Fatal("Could not establish a connection to Redis:", err)
}
log.Println("Established connection to Redis:", result)
for {
for _, gs := range g.GameServerGroups {
params := &gamelift.DescribeGameServerInstancesInput{
GameServerGroupName: &gs,
}
log.Println("Game server group", gs, "instance status")
pageNum := 0
err = svc.DescribeGameServerInstancesPages(params,
func(page *gamelift.DescribeGameServerInstancesOutput, lastPage bool) bool {
pageNum++
for _, obj := range page.GameServerInstances {
b, _ := json.Marshal(obj)
log.Println(*obj.InstanceId, string(b))
err := rdb.Publish(*obj.InstanceId, string(b)).Err()
if err != nil {
log.Println("An error occurred publishing data to Redis:", err)
}
}
return pageNum <= len(page.GameServerInstances)
},
)
}
time.Sleep(time.Second * 60)
}
}