View Source AlibabaCloudKit.RPC (alibaba_cloud_kit v0.6.0)

A kit for RPC style API.

APIs in the RPC style include:

  • Elastic Compute Service (ECS)
  • Content Delivery Network (CDN)
  • ApsaraDB RDS
  • ...

Read more at:

Examples

Build and sign a GET request

request = HTTPSpec.Request.new!(
  method: :get,
  scheme: :https,
  host: "ecs-us-west-1.aliyuncs.com",
  port: 443,
  path: "/",
  query: URI.encode_query(%{"RegionId" => "us-west-1"}, :www_form),
  headers: [
    {"x-acs-version", "2014-05-26"},
    {"x-acs-action", "DescribeInstanceStatus"}
  ]
)

opts = [
  access_key_id: "...",
  access_key_secret: "..."
]

AlibabaCloudKit.RPC.sign_request!(request, opts)

Build and sign a POST request

request = HTTPSpec.Request.new!(
  method: :post,
  scheme: :https,
  host: "ecs-us-west-1.aliyuncs.com",
  port: 443,
  path: "/",
  headers: [
    {"content-type", "application/x-www-form-urlencoded"},
    {"x-acs-version", "2014-05-26"},
    {"x-acs-action", "DescribeInstanceStatus"}
  ],
  body: URI.encode_query(%{"RegionId" => "us-west-1"}, :www_form)
)

opts = [
  access_key_id: "...",
  access_key_secret: "..."
]

AlibabaCloudKit.RPC.sign_request!(request, opts)

Summary

Functions

Signs a request with ACS3 signature.

Types

@type access_key_id() :: String.t()
@type access_key_secret() :: String.t()
@type at() :: DateTime.t() | nil
@type sign_opt() ::
  {:access_key_id, access_key_id()}
  | {:access_key_secret, access_key_secret()}
  | {:at, at()}
@type sign_opts() :: [sign_opt()]

Functions

Link to this function

sign_request!(request, opts)

View Source

Signs a request with ACS3 signature.