Here is an example sending and receiving messages. The first commands sends two messages. The next receive command receives both messages (but it could have just gotten one of them) and deletes them. The next receive command doesn't get any because there aren't any left in the queue.
The queue name ("test" in my case) and AWS region is hard-coded in this example. I set the queue up manually in AWS beforehand.
http://godoc.org/github.com/crowdmob/goamz/sqs
> go run connect.go send.go -access_key="MY_ACCESS_KEY" -secret_key="MY_SECRET_KEY"