Using ExAws with ElasticMQ

I was wondering if there were any examples floating around for how to use ElasticMQ with Elixir’s ExAws and ExAws.SQS modules. There was one related post I found here: Use Broadway with ElasticMQ in docker but the usage was constrained to Broadway. Although I may end up using Broadway, I’d like to know how to manually insert and remove messages from queues in a local (i.e. Dockerized) instance of ElasticMQ.

Generally, I’d like to execute commands like this against the local ElasticMQ instance:

"123/my_q"
|> ExAws.SQS.create_queue()
|> ExAws.request()

This generates errors, however, depending on how I have my configuration set up, e.g.

03:03:50.385 erl_level=warning application=ex_aws domain=elixir file=lib/ex_aws/request.ex function=request_and_retry/7 line=80 mfa=ExAws.Request.request_and_retry/7 module=ExAws.Request pid=<0.487.0> [warning] ExAws: HTTP ERROR: :timeout for URL: "https:/" ATTEMPT: 1

or

You tried to access the AWS EC2 instance meta, but it could not be reached.
This happens most often when trying to access it from your local computer,
which happens when environment variables are not set correctly prompting
ExAws to fallback to the Instance Meta.

This is the configuration I have tried:

config :ex_aws,
  access_key_id: "x",
  security_token: "x",
  secret_access_key: "x",
  host: "localhost",
  port: "9324",
  scheme: "http://",
  region: "elasticmq"

I have not tried supplying a configuration file to the ElasticMQ instance.

If anyone has any pointers on how to access this service I would appreciate them!

To access the elasticmq instace, I used the following configuration:

config :ex_aws,
  access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role],
  secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role],
  region: "elasticmq"

config :ex_aws, :sqs,
  scheme: "http://",
  host: System.get_env("AWS_DOMAIN", "localhost"),
  port: 9324,
  region: "elasticmq"