ex-aws / ex_aws

A flexible, easy to use set of clients AWS APIs for Elixir
https://hex.pm/packages/ex_aws
MIT License
1.28k stars 526 forks source link

Trouble Running/Writing Tests #501

Closed bundacia closed 6 years ago

bundacia commented 6 years ago

Hey, I'm working on a PR to support using role_arn and source_profile in the aws config fetch credentials automatically using an STS AssumeRole call. I'm having a little trouble running the test suite. It seems like it expects a bunch of services to be running in AWS and I'm getting a lot of connection errors, is there a list of what needs to be setup? I setup a user with the permissions outlined in the CONTRIBUTING doc.

Here's the output of the test run:

% mix test                                                                                                                                                    
.............................................................................................................................................

  1) test #list_streams (ExAws.KinesisIntegrationTest)
     test/lib/ex_aws/kinesis/integration_test.exs:9
     ** (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: "kinesis.us-east-1.amazonaws.com", http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 443, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000)
         ** (EXIT) an exception was raised:
             ** (RuntimeError) Instance Meta Error: {:error, %{reason: :connect_timeout}}

     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.

     Please check your key config and make sure they're configured correctly:

     For Example:
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: assert {:ok, %{"HasMoreStreams" => _, "StreamNames" => _}} = ExAws.Kinesis.list_streams |> ExAws.request
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   (ex_aws) lib/ex_aws.ex:29: ExAws.request/2
   test/lib/ex_aws/kinesis/integration_test.exs:10: (test)

2) test list_queues works (ExAws.SQSIntegrationTest) test/lib/ex_aws/sqs/integration_test.exs:4 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: {"$region", "sqs.$region.amazonaws.com"}, http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 443, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :connect_timeout}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: assert {:ok, %{body: %{queues: _}}} = ExAws.SQS.list_queues |> ExAws.request
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   (ex_aws) lib/ex_aws.ex:29: ExAws.request/2
   test/lib/ex_aws/sqs/integration_test.exs:5: (test)

3) test #list_hosted_zones (ExAws.Route53IntergrationTest) test/lib/ex_aws/route53/integration_test.exs:4 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: "route53.amazonaws.com", http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 443, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :connect_timeout}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: assert {:ok, %{body: body}} = ExAws.Route53.list_hosted_zones(max_items: 5) |> ExAws.request
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   (ex_aws) lib/ex_aws.ex:29: ExAws.request/2
   test/lib/ex_aws/route53/integration_test.exs:5: (test)

4) test #list_delivery_streams (ExAws.FirehoseIntegrationTest) test/lib/ex_aws/firehose/integration_test.exs:9 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: {"$region", "firehose.$region.amazonaws.com"}, http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 443, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :connect_timeout}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: assert {:ok, %{"HasMoreDeliveryStreams" => _, "DeliveryStreamNames" => _}} = ExAws.Firehose.list_delivery_streams |> ExAws.request
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   (ex_aws) lib/ex_aws.ex:29: ExAws.request/2
   test/lib/ex_aws/firehose/integration_test.exs:10: (test)

5) test #list_buckets (ExAws.S3IntegrationTest) test/lib/ex_aws/s3/integration_test.exs:4 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: "s3.amazonaws.com", http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :connect_timeout}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: assert {:ok, %{body: body}} = ExAws.S3.list_buckets |> ExAws.request
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   (ex_aws) lib/ex_aws.ex:29: ExAws.request/2
   test/lib/ex_aws/s3/integration_test.exs:5: (test)

6) test list_pipelines (ExAws.ElasticTranscoder.IntegrationTest) test/lib/ex_aws/elastic_transcoder/integration_test.exs:5 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: %{"ap-northeast-1" => "elastictranscoder.ap-northeast-1.amazonaws.com", "ap-south-1" => "elastictranscoder.ap-south-1.amazonaws.com", "ap-southeast-1" => "elastictranscoder.ap-southeast-1.amazonaws.com", "ap-southeast-2" => "elastictranscoder.ap-southeast-2.amazonaws.com", "eu-west-1" => "elastictranscoder.eu-west-1.amazonaws.com", "us-east-1" => "elastictranscoder.us-east-1.amazonaws.com", "us-west-1" => "elastictranscoder.us-west-1.amazonaws.com", "us-west-2" => "elastictranscoder.us-west-2.amazonaws.com"}, http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :connect_timeout}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: assert {:ok, %{"Pipelines" => _}} = ElasticTranscoder.list_pipelines() |> ExAws.request
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   (ex_aws) lib/ex_aws.ex:29: ExAws.request/2
   test/lib/ex_aws/elastic_transcoder/integration_test.exs:6: (test)

2017-10-17 09:58:04.867 [error] GenServer ExAws.Config.AuthCache terminating ** (RuntimeError) Instance Meta Error: {:error, %{reason: :connect_timeout}}

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.

Please check your key config and make sure they're configured correctly:

For Example:

ExAws.Config.new(:s3)
ExAws.Config.new(:dynamodb)
(ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
(ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
(ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
(ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
(ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
(stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
(stdlib) gen_server.erl:665: :gen_server.handle_msg/6
(stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3

Last message (from #PID<0.280.0>): {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: {"$region", "monitoring.$region.amazonaws.com"}, http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 443, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}} 2017-10-17 09:58:04.868 [error] GenServer ExAws.Config.AuthCache terminating ** (RuntimeError) Instance Meta Error: {:error, %{reason: :ehostdown}}

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.

Please check your key config and make sure they're configured correctly:

For Example:

ExAws.Config.new(:s3)
ExAws.Config.new(:dynamodb)
(ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
(ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
(ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
(ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
(ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
(stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
(stdlib) gen_server.erl:665: :gen_server.handle_msg/6
(stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3

Last message (from #PID<0.733.0>): {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: "s3.amazonaws.com", http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}} 2017-10-17 09:58:04.868 [error] GenServer ExAws.Config.AuthCache terminating ** (RuntimeError) Instance Meta Error: {:error, %{reason: :ehostdown}}

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.

Please check your key config and make sure they're configured correctly:

For Example:

ExAws.Config.new(:s3)
ExAws.Config.new(:dynamodb)
(ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
(ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
(ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
(ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
(ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
(stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
(stdlib) gen_server.erl:665: :gen_server.handle_msg/6
(stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3

Last message (from #PID<0.857.0>): {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: {"$region", "cloudformation.$region.amazonaws.com"}, http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 443, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}} 2017-10-17 09:58:04.869 [error] GenServer ExAws.Config.AuthCache terminating ** (RuntimeError) Instance Meta Error: {:error, %{reason: :ehostdown}}

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.

Please check your key config and make sure they're configured correctly:

For Example:

ExAws.Config.new(:s3)
ExAws.Config.new(:dynamodb)
(ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
(ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
(ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
(ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
(ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
(stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
(stdlib) gen_server.erl:665: :gen_server.handle_msg/6
(stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3

Last message (from #PID<0.1056.0>): {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: "s3.amazonaws.com", http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}

7) test it should handle parsing an error (ExAws.Cloudformation.ParserTest) test/lib/ex_aws/cloudformation/parser_test.exs:347 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: {"$region", "cloudformation.$region.amazonaws.com"}, http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 443, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :connect_timeout}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: {:error, {:http_error, 403, err}} = Parsers.parse(rsp, :list_stacks, config())
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   test/lib/ex_aws/cloudformation/parser_test.exs:362: (test)

8) test #presigned_url respects port configuration (ExAws.S3Test) /Users/trevor/decisiv/ex_aws/test/lib/ex_aws/s3_test.exs:199 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: "s3.amazonaws.com", http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 1234, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :connect_timeout}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   test/lib/ex_aws/s3_test.exs:200: (test)

9) test check describe_alarams is successful (ExAws.Cloudwatch.IntegrationTest) test/lib/ex_aws/cloudwatch/integration_test.exs:4 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: {"$region", "monitoring.$region.amazonaws.com"}, http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 443, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :connect_timeout}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: {:ok, %{body: %{alarms: alarms}}} = ExAws.Cloudwatch.describe_alarms() |> ExAws.request
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   (ex_aws) lib/ex_aws.ex:29: ExAws.request/2
   test/lib/ex_aws/cloudwatch/integration_test.exs:5: (test)

10) test #describe_instances (ExAws.EC2.IntegrationTest) test/lib/ex_aws/ec2/integration_test.exs:4 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: {"$region", "ec2.$region.amazonaws.com"}, http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 443, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :connect_timeout}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: assert {:ok, %{body: body}} = ExAws.EC2.describe_instances |> ExAws.request
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   (ex_aws) lib/ex_aws.ex:29: ExAws.request/2
   test/lib/ex_aws/ec2/integration_test.exs:5: (test)

11) test #list_functions (ExAws.LambdaTest) test/lib/ex_aws/lambda_test.exs:4 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: "lambda.us-east-1.amazonaws.com", http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 443, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :connect_timeout}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: assert {:ok, %{"Functions" => _}} = ExAws.Lambda.list_functions |> ExAws.request
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   (ex_aws) lib/ex_aws.ex:29: ExAws.request/2
   test/lib/ex_aws/lambda_test.exs:5: (test)

12) test describe_stacks works (ExAws.CloudformationIntegrationTest) test/lib/ex_aws/cloudformation/integration_test.exs:8 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: {"$region", "cloudformation.$region.amazonaws.com"}, http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 443, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :connect_timeout}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: assert {:ok, %{body: %{stacks: _}}} = ExAws.Cloudformation.describe_stacks(nil) |> ExAws.request
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   (ex_aws) lib/ex_aws.ex:29: ExAws.request/2
   test/lib/ex_aws/cloudformation/integration_test.exs:9: (test)

13) test basic sanity check (ExAws.SNS.IntegrationTest) test/lib/ex_aws/sns/integration_test.exs:4 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: {"$region", "sns.$region.amazonaws.com"}, http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 443, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :connect_timeout}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: assert {:error, {:http_error, 400, _}} = ExAws.SNS.list_topics(next_token: "foo") |> ExAws.request
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   (ex_aws) lib/ex_aws.ex:29: ExAws.request/2
   test/lib/ex_aws/sns/integration_test.exs:5: (test)

14) test security_token is configured properly (ExAws.ConfigTest) test/lib/ex_aws/config_test.exs:12 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: "security_token", host: "s3.amazonaws.com", http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role], security_token: {:system, "AWS_SECURITY_TOKEN"}}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :connect_timeout}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: |> ExAws.Config.new([access_key_id: {:system, "AWS_SECURITY_TOKEN"}, security_token: {:system, "AWS_SECURITY_TOKEN"}])
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   test/lib/ex_aws/config_test.exs:16: (test)

????????...??

19) ExAws.DynamoStreamsIntegrationTest: failure on setup_all callback, test invalidated (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: "localhost", http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 8000, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "http://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :connect_timeout}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   (ex_aws) lib/ex_aws.ex:29: ExAws.request/2
   test/lib/ex_aws/dynamo_streams/integration_test.exs:16: ExAws.DynamoStreamsIntegrationTest.__ex_unit_setup_all_0/1
   test/lib/ex_aws/dynamo_streams/integration_test.exs:1: ExAws.DynamoStreamsIntegrationTest.__ex_unit__/2

....?...

25) ExAws.DynamoIntegrationTest: failure on setup_all callback, test invalidated (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: "localhost", http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 8000, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "http://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :connect_timeout}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   (ex_aws) lib/ex_aws.ex:29: ExAws.request/2
   test/lib/ex_aws/dynamo/integration_test.exs:15: ExAws.DynamoIntegrationTest.__ex_unit_setup_all_0/1
   test/lib/ex_aws/dynamo/integration_test.exs:1: ExAws.DynamoIntegrationTest.__ex_unit__/2

..................................................................................

26) test #presigned_url raises exception on bad expires_in option (ExAws.S3Test) test/lib/ex_aws/s3_test.exs:193 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: "s3.amazonaws.com", http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :ehostdown}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: {:error, reason} = S3.presigned_url(config(), :get, "bucket", "foo.txt", opts)
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   test/lib/ex_aws/s3_test.exs:195: (test)

27) test list_stacks works (ExAws.CloudformationIntegrationTest) test/lib/ex_aws/cloudformation/integration_test.exs:4 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: {"$region", "cloudformation.$region.amazonaws.com"}, http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 443, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :ehostdown}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: assert {:ok, %{body: %{stacks: _}}} = ExAws.Cloudformation.list_stacks(stack_status_filters: [:update_complete, :create_complete]) |> ExAws.request
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   (ex_aws) lib/ex_aws.ex:29: ExAws.request/2
   test/lib/ex_aws/cloudformation/integration_test.exs:5: (test)

.

28) test parsing a describe_stacks response (ExAws.Cloudformation.ParserTest) test/lib/ex_aws/cloudformation/parser_test.exs:296 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: {"$region", "cloudformation.$region.amazonaws.com"}, http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 443, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :ehostdown}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: {:ok, %{body: parsed_doc}} = Parsers.parse(rsp, :describe_stacks, config())
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   test/lib/ex_aws/cloudformation/parser_test.exs:327: (test)

.......................................................................................................................................................................................................

29) test #presigned_url passing virtual_host=false option (ExAws.S3Test) test/lib/ex_aws/s3_test.exs:149 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: "s3.amazonaws.com", http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :ehostdown}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: {:ok, url} = S3.presigned_url(config(), :get, "bucket", "foo.txt", [virtual_host: false])
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   test/lib/ex_aws/s3_test.exs:150: (test)

30) test parsing a describe_stack_resource response (ExAws.Cloudformation.ParserTest) test/lib/ex_aws/cloudformation/parser_test.exs:67 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: {"$region", "cloudformation.$region.amazonaws.com"}, http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 443, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :ehostdown}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: {:ok, %{body: parsed_doc}} = Parsers.parse(rsp, :describe_stack_resource, config())
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   test/lib/ex_aws/cloudformation/parser_test.exs:89: (test)

.

31) test #verify_email_identity request (ExAws.SESTest) test/lib/ex_aws/ses_test.exs:14 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: {"$region", "email.$region.amazonaws.com"}, http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 443, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :ehostdown}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: resp = SES.verify_email_identity("success@simulator.amazonses.com") |> ExAws.request
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   (ex_aws) lib/ex_aws.ex:29: ExAws.request/2
   test/lib/ex_aws/ses_test.exs:15: (test)

...................................................................................

32) test verify_message/1 fails with tampered message (ExAws.SNSTest) test/lib/ex_aws/sns_test.exs:274 (exit) exited in: GenServer.call(ExAws.SNS.PublicKeyCache, {:get_public_key, "https://sns.eu-west-1.amazonaws.com/SimpleNotificationService-b95095beb82e8f6a046b3aafc7f4149a.pem"}, 5000) (EXIT) shutdown code: assert {:error, _message} = SNS.verify_message(message |> Map.put("Message", "message")) stacktrace: (elixir) lib/gen_server.ex:774: GenServer.call/3 (ex_aws) lib/ex_aws/sns.ex:334: ExAws.SNS.verify_message/1 test/lib/ex_aws/sns_test.exs:275: (test)

33) test parsing a describe_stack_resources response (ExAws.Cloudformation.ParserTest) test/lib/ex_aws/cloudformation/parser_test.exs:100 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: {"$region", "cloudformation.$region.amazonaws.com"}, http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, port: 443, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :ehostdown}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: {:ok, %{body: parsed_doc}} = Parsers.parse(rsp, :describe_stack_resources, config())
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   test/lib/ex_aws/cloudformation/parser_test.exs:132: (test)

.

34) test #presigned_url passing expires_in option (ExAws.S3Test) test/lib/ex_aws/s3_test.exs:144 (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: "s3.amazonaws.com", http_client: ExAws.Request.Hackney, json_codec: Test.JSONCodec, region: "us-east-1", retries: [max_attempts: 10, base_backoff_in_ms: 10, max_backoff_in_ms: 10000], scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]}}, 30000) (EXIT) an exception was raised: ** (RuntimeError) Instance Meta Error: {:error, %{reason: :ehostdown}}

 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.

 Please check your key config and make sure they're configured correctly:

 For Example:
 ```
 ExAws.Config.new(:s3)
 ExAws.Config.new(:dynamodb)
 ```

             (ex_aws) lib/ex_aws/instance_meta.ex:26: ExAws.InstanceMeta.request/2
             (ex_aws) lib/ex_aws/instance_meta.ex:58: ExAws.InstanceMeta.instance_role_credentials/1
             (ex_aws) lib/ex_aws/instance_meta.ex:64: ExAws.InstanceMeta.security_credentials/1
             (ex_aws) lib/ex_aws/config/auth_cache.ex:58: ExAws.Config.AuthCache.refresh_config/2
             (ex_aws) lib/ex_aws/config/auth_cache.ex:33: ExAws.Config.AuthCache.handle_call/3
             (stdlib) gen_server.erl:636: :gen_server.try_handle_call/4
             (stdlib) gen_server.erl:665: :gen_server.handle_msg/6
             (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
 code: {:ok, url} = S3.presigned_url(config(), :get, "bucket", "foo.txt", [expires_in: 100])
 stacktrace:
   (elixir) lib/gen_server.ex:774: GenServer.call/3
   (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2
   (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2
   (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3
   (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4
   (elixir) lib/enum.ex:904: Enum.find/3
   (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1
   (stdlib) lists.erl:1263: :lists.foldl/3
   (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2
   test/lib/ex_aws/s3_test.exs:145: (test)

................................................................................

35) test #presigned_url passing virtual_host=true option (ExAws.S3Test) test/lib/ex_aws/s3_test.exs:154 ** (ArgumentError) argument error code: {:ok, url} = S3.presigned_url(config(), :get, "bucket", "foo.txt", [virtual_host: true]) stacktrace: (stdlib) :ets.lookup(ExAws.Config.AuthCache, :aws_instance_auth) (ex_aws) lib/ex_aws/config/auth_cache.ex:13: ExAws.Config.AuthCache.get/1 (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2 (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2 (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3 (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4 (elixir) lib/enum.ex:904: Enum.find/3 (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1 (stdlib) lists.erl:1263: :lists.foldl/3 (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2 test/lib/ex_aws/s3_test.exs:155: (test)

36) test verify_message/1 validate a pristine message from SNS (ExAws.SNSTest) test/lib/ex_aws/sns_test.exs:270 ** (ArgumentError) argument error code: assert :ok == SNS.verify_message(message) stacktrace: (stdlib) :ets.lookup(ExAws.SNS.PublicKeyCache, "https://sns.eu-west-1.amazonaws.com/SimpleNotificationService-b95095beb82e8f6a046b3aafc7f4149a.pem") (ex_aws) lib/ex_aws/sns/public_key_cache.ex:9: ExAws.SNS.PublicKeyCache.get/1 (ex_aws) lib/ex_aws/sns.ex:334: ExAws.SNS.verify_message/1 test/lib/ex_aws/sns_test.exs:271: (test)

37) test parsing a list_stack_resources response (ExAws.Cloudformation.ParserTest) test/lib/ex_aws/cloudformation/parser_test.exs:257 ** (ArgumentError) argument error code: {:ok, %{body: parsed_doc}} = Parsers.parse(rsp, :list_stack_resources, config()) stacktrace: (stdlib) :ets.lookup(ExAws.Config.AuthCache, :aws_instance_auth) (ex_aws) lib/ex_aws/config/auth_cache.ex:13: ExAws.Config.AuthCache.get/1 (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2 (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2 (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3 (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4 (elixir) lib/enum.ex:904: Enum.find/3 (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1 (stdlib) lists.erl:1263: :lists.foldl/3 (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2 test/lib/ex_aws/cloudformation/parser_test.exs:285: (test)

38) test basic actual hit on the service (ExAws.STSTest) test/lib/ex_aws/sts_test.exs:5 ** (ArgumentError) argument error code: result = ExAws.STS.get_caller_identity |> ExAws.request stacktrace: (stdlib) :ets.lookup(ExAws.Config.AuthCache, :aws_instance_auth) (ex_aws) lib/ex_aws/config/auth_cache.ex:13: ExAws.Config.AuthCache.get/1 (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2 (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2 (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3 (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4 (elixir) lib/enum.ex:904: Enum.find/3 (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1 (stdlib) lists.erl:1263: :lists.foldl/3 (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2 (ex_aws) lib/ex_aws.ex:29: ExAws.request/2 test/lib/ex_aws/sts_test.exs:6: (test)

....

39) test #presigned_url file is key with query params (ExAws.S3Test) test/lib/ex_aws/s3_test.exs:188 ** (ArgumentError) argument error code: {:ok, url} = S3.presigned_url(config(), :get, "bucket", "/foo/bar.txt?d=400") stacktrace: (stdlib) :ets.lookup(ExAws.Config.AuthCache, :aws_instance_auth) (ex_aws) lib/ex_aws/config/auth_cache.ex:13: ExAws.Config.AuthCache.get/1 (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2 (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2 (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3 (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4 (elixir) lib/enum.ex:904: Enum.find/3 (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1 (stdlib) lists.erl:1263: :lists.foldl/3 (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2 test/lib/ex_aws/s3_test.exs:189: (test)

.

40) test #presigned_url passing both expires_in and virtual_host options (ExAws.S3Test) test/lib/ex_aws/s3_test.exs:159 ** (ArgumentError) argument error code: {:ok, url} = S3.presigned_url(config(), :get, "bucket", "foo.txt", opts) stacktrace: (stdlib) :ets.lookup(ExAws.Config.AuthCache, :aws_instance_auth) (ex_aws) lib/ex_aws/config/auth_cache.ex:13: ExAws.Config.AuthCache.get/1 (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2 (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2 (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3 (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4 (elixir) lib/enum.ex:904: Enum.find/3 (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1 (stdlib) lists.erl:1263: :lists.foldl/3 (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2 test/lib/ex_aws/s3_test.exs:161: (test)

41) test #presigned_url passing query_params option (ExAws.S3Test) test/lib/ex_aws/s3_test.exs:165 ** (ArgumentError) argument error code: {:ok, url} = S3.presigned_url(config(), :get, "bucket", "foo.txt", [query_params: query_params]) stacktrace: (stdlib) :ets.lookup(ExAws.Config.AuthCache, :aws_instance_auth) (ex_aws) lib/ex_aws/config/auth_cache.ex:13: ExAws.Config.AuthCache.get/1 (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2 (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2 (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3 (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4 (elixir) lib/enum.ex:904: Enum.find/3 (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1 (stdlib) lists.erl:1263: :lists.foldl/3 (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2 test/lib/ex_aws/s3_test.exs:170: (test)

..

42) test #presigned_url file is path with slash (ExAws.S3Test) test/lib/ex_aws/s3_test.exs:183 ** (ArgumentError) argument error code: {:ok, url} = S3.presigned_url(config(), :get, "bucket", "/foo/bar.txt") stacktrace: (stdlib) :ets.lookup(ExAws.Config.AuthCache, :aws_instance_auth) (ex_aws) lib/ex_aws/config/auth_cache.ex:13: ExAws.Config.AuthCache.get/1 (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2 (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2 (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3 (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4 (elixir) lib/enum.ex:904: Enum.find/3 (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1 (stdlib) lists.erl:1263: :lists.foldl/3 (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2 test/lib/ex_aws/s3_test.exs:184: (test)

.

43) test #presigned_url no opts (ExAws.S3Test) test/lib/ex_aws/s3_test.exs:139 ** (ArgumentError) argument error code: {:ok, url} = S3.presigned_url(config(), :get, "bucket", "foo.txt") stacktrace: (stdlib) :ets.lookup(ExAws.Config.AuthCache, :aws_instance_auth) (ex_aws) lib/ex_aws/config/auth_cache.ex:13: ExAws.Config.AuthCache.get/1 (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2 (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2 (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3 (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4 (elixir) lib/enum.ex:904: Enum.find/3 (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1 (stdlib) lists.erl:1263: :lists.foldl/3 (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2 test/lib/ex_aws/s3_test.exs:140: (test)

.

44) test parsing a list_stacks response (ExAws.Cloudformation.ParserTest) test/lib/ex_aws/cloudformation/parser_test.exs:211 ** (ArgumentError) argument error code: {:ok, %{body: parsed_doc}} = Parsers.parse(rsp, :list_stacks, config()) stacktrace: (stdlib) :ets.lookup(ExAws.Config.AuthCache, :aws_instance_auth) (ex_aws) lib/ex_aws/config/auth_cache.ex:13: ExAws.Config.AuthCache.get/1 (ex_aws) lib/ex_aws/config.ex:66: ExAws.Config.retrieve_runtime_value/2 (elixir) lib/stream.ex:516: anonymous fn/4 in Stream.map/2 (elixir) lib/enum.ex:3176: Enumerable.List.reduce/3 (elixir) lib/stream.ex:1433: Enumerable.Stream.do_each/4 (elixir) lib/enum.ex:904: Enum.find/3 (ex_aws) lib/ex_aws/config.ex:54: anonymous fn/2 in ExAws.Config.retrieve_runtime_config/1 (stdlib) lists.erl:1263: :lists.foldl/3 (ex_aws) lib/ex_aws/config.ex:30: ExAws.Config.new/2 test/lib/ex_aws/cloudformation/parser_test.exs:244: (test)

..

Finished in 8.1 seconds 664 tests, 44 failures, 11 invalid

bundacia commented 6 years ago

oops, wasn't setting my env vars correctly. disregard =(