帮酷LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:Elixir  Clients  FLEX  SET  aws  API  
A flexible, easy to use set of clients AWS APIs for Elixir

  • 源代码名称:ex_aws
  • 源代码网址:http://www.github.com/ex-aws/ex_aws
  • ex_aws源代码文档
  • ex_aws源代码下载
  • Git URL:
    git://www.github.com/ex-aws/ex_aws.git
  • Git Clone代码到本地:
    git clone http://www.github.com/ex-aws/ex_aws
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/ex-aws/ex_aws
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
  • ExAws

    Hex.pmBuild DocsBuild Status

    灵活易用的AWS api集。

    可用服务:https://github.com/ex-aws?q=service&type=&language=

    正在启动

    ExAws v2.0将所有服务分解为自己的包。 使用S3服务,你既需要核心 :ex_aws 包,也需要 :ex_aws_s3 包。

    所有ExAws服务一样,需要兼容的HTTP客户端( 默认为 :hackney ) 以及你希望使用的服务所需的JSON或者XML编码解码器。 有关每个服务需要的详细信息,请参考各个服务文档。

    defpdepsdo [
     {:ex_aws, "~> 2.0"},
     {:ex_aws_s3, "~> 2.0"},
     {:hackney, "~> 1.9"},
     {:sweet_xml, "~> 0.6"},
     ]end

    使用这些 ExAws,你可以像以前一样精确地使用:

    
    # make a request (with the default region)
    
    
    ExAws.S3.list_objects("my-bucket") |> ExAws.request
    
    
    # or specify the region
    
    
    ExAws.S3.list_objects("my-bucket") |> ExAws.request(region:"us-west-1")
    
    
    
    # some operations support streaming
    
    
    ExAws.S3.list_objects("my-bucket") |> ExAws.stream! |> Enum.to_list
    
    
    
    

    AWS密钥配置

    ExAws需要有效的AWS密钥才能正常工作。 默认情况下,ExAws执行以下操作:

    config :ex_aws,
     access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role],
     secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :instance_role]

    这意味着它将尝试解析凭据

    • 查找AWS标准 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 环境变量
    • 使用IAM解析凭据

    支持 AWS CLI配置文件,但需要额外的依赖项:

    {:configparser_ex, "~> 2.0"}

    然后可以将 {:awscli,"profile_name", timeout} 添加到 上面 配置中,它将从 ~/.aws/config~/.aws/credentials 中提取信息

    config :ex_aws,
     access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, {:awscli, "default", 30}, :instance_role],
     secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, {:awscli, "default", 30}, :instance_role],

    Hackney配置

    默认情况下,ExAws使用 hackney插件将HTTP请求发送到 AWS API。 你可以修改这些选项,如下所示:

    config :ex_aws, :hackney_opts,
     follow_redirect:true,
     recv_timeout:30_000

    AWS区域配置。

    你可以设置请求默认使用的区域。

    config :ex_aws,
     region:"us-west-2",

    直接使用

    ExAws也可以直接使用,无需任何特定的服务模块。

    --TODO---

    突出显示的特征

    • 轻松配置。
    • 最小依赖项。选择你喜欢的JSON编解码器和HTTP客户端。
    • 自动获取分页资源的tcm流。
    • Elixir协议可以方便地定制发电机编码/解码。
    • mix aws.kinesis.tail your-stream-name 用于轻松观察kinesis流流内容的任务。
    • ExAws旨在为 AWS api提供一个清晰而一致的elixir包装,而不是完全抽象它们。 对于给定 AWS API中的每个操作,在适当的MODULE 中都有相应的函数。 前面的流类似,更高层的抽象是另外的,而不是基本的API调用。

    就是这样!

    重试

    ExAws将使用 https://www.awsarchitectureblog.com/2015/03/backoff.html 描述的"完全抖动"公式,重试失败的AWS API请求。

    算法使用三个值,这些值是可以配置的:

    # default values shown belowconfig :ex_aws, :retries,
     max_attempts:10,
     base_backoff_in_ms:10,
     max_backoff_in_ms:10_000
    • max_attempts 是在每个进程之间使用backoffs的最大可能尝试数
    • base_backoff_in_ms 对应于博客文章中描述的base
    • max_backoff_in_ms 对应于博客文章中描述的cap

    许可证

    麻省理工学院许可证( MIT )

    版权所有( c ) 2014 CargoSense。

    若要在取得该软件副本时免费授予任何人,如有下列条件的软件,请免费授予该软件的副本,并与相关的文档文件("软件") 进行许可,包括不受限制的权利,包括以下条件:

    上述版权声明和本许可声明须包括在所有的副本或实质性部分的软件。

    软件是"是",没有任何保证,表示或者隐含,包括但不限于销售,适合特定用途和 NONINFRINGEMENT。 作者或者版权持有人在合同。侵权或者它的他与软件或者它的他用户交易的行为。



    文章标签:API  SET  FLEX  aws  Elixir  Clients  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语