defmodule ClusterEC2 do use Tesla import SweetXml, only: [sigil_x: 2] @moduledoc File.read!("#{__DIR__}/../README.md") plug Tesla.Middleware.BaseUrl, "http://169.254.169.254/latest/meta-data" plug Tesla.Middleware.Tuples @doc """ Queries the local EC2 instance metadata API to determine the instance ID of the current instance. """ @spec local_instance_id() :: binary() def local_instance_id do case get("/instance-id/") do {:ok, %{status: 200, body: body}} -> body _ -> "" end end @doc """ Queries the local EC2 instance metadata API to determine the aws resource region of the current instance. """ @spec instance_region() :: binary() def instance_region do case get("/placement/availability-zone/") do {:ok, %{status: 200, body: body}} -> String.slice(body, 0..-2) _ -> "" end end end