Current section

Files

Jump to
ex_aws lib ex_aws instance_meta.ex
Raw

lib/ex_aws/instance_meta.ex

defmodule ExAws.InstanceMeta do
@meta_path_root "http://169.254.169.254/latest/meta-data/"
def request(%{config: config}, path) do
case config.http_client.request(:get, @meta_path_root <> path) do
{:ok, %{body: body}} -> body
end
end
def role(client) do
ExAws.InstanceMeta.request(client, "/iam/security-credentials/")
end
def security_credentials(%{config: config} = client) do
result = ExAws.InstanceMeta.request(client, "/iam/security-credentials/#{role(client)}")
|> config.json_codec.decode!
%{
access_key_id: result["AccessKeyId"],
secret_access_key: result["SecretAccessKey"],
security_token: result["Token"],
expiration: result["Expiration"]
}
end
end