Packages
ex_aws
0.4.4
2.7.0
2.6.1
2.6.0
2.5.11
2.5.10
2.5.9
2.5.8
2.5.7
2.5.6
2.5.5
2.5.4
2.5.3
2.5.2
2.5.1
2.5.0
2.4.4
2.4.3
2.4.2
2.4.1
2.4.0
2.3.4
2.3.3
2.3.2
2.3.1
2.3.0
2.2.10
2.2.9
2.2.8
2.2.7
2.2.6
2.2.5
2.2.4
2.2.3
2.2.2
2.2.1
2.2.0
2.1.9
2.1.8
2.1.7
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.2
2.0.1
2.0.0
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.0
1.0.0-rc.4
1.0.0-rc.3
1.0.0-rc.1
1.0.0-beta3
1.0.0-beta2
1.0.0-beta1
1.0.0-beta0
0.5.0
0.4.19
0.4.18
0.4.17
0.4.15
0.4.14
0.4.13
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.1
0.3.0
0.2.0
0.1.2
0.1.1
0.1.0
0.0.5
0.0.4
0.0.3
AWS client for Elixir. Currently supports Dynamo, DynamoStreams, EC2, Firehose, Kinesis, KMS, Lambda, RRDS, Route53, S3, SES, SNS, SQS, STS and others.
Current section
Files
Jump to
Current section
Files
lib/ex_aws/lambda/request.ex
defmodule ExAws.Lambda.Request do
@moduledoc false
# Lambda specific request logic.
def request(client, action, path, data, params \\ [], headers \\ []) do
{_, http_method} = ExAws.Lambda.Impl |> ExAws.Actions.get(action)
path = [path, params |> URI.encode_query] |> IO.iodata_to_binary
headers = [
{"content-type", "application/json"},
{"x-amz-content-sha256", ""} |
headers
]
ExAws.Request.request(http_method, client.config |> url(path), data, headers , client)
|> parse(client.config)
end
def parse({:error, result}, _), do: {:error, result}
def parse({:ok, %{body: body}}, config) do
{:ok, config[:json_codec].decode!(body)}
end
defp url(%{scheme: scheme, host: host}, path) do
[scheme, host, path]
|> IO.iodata_to_binary
end
end