【问题标题】:Access the AWS RDS describe db snapshot API访问 AWS RDS 描述数据库快照 API
【发布时间】:2020-07-27 14:39:48
【问题描述】:

我正在尝试访问 aws rds api 来描述数据库快照。我计划对其进行解析,以便我可以使用 groovy 按 id 列出所有可用的 aws 快照。然而,我遇到的最大问题是首先获得 api。我查看了 AWS 关于此主题的参考资料,但我似乎无法弄清楚如何使用凭证生成请求的预签名部分。我不确定为什么那部分甚至是必要的。为什么用户不能使用访问密钥 ID 和秘密访问密钥组合进行身份验证?

参考: https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshots.html

有问题的部分:

https://rds.us-west-2.amazonaws.com/
   ?Action=DescribeDBSnapshots
   &IncludePublic=false
   &IncludeShared=true
   &MaxRecords=100
   &SignatureMethod=HmacSHA256
   &SignatureVersion=4
   &Version=2014-09-01
   &X-Amz-Algorithm=AWS4-HMAC-SHA256
   &X-Amz-Credential=AKIADQKE4SARGYLE/20140421/us-west-2/rds/aws4_request
   &X-Amz-Date=20140421T194732Z
   &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
   &X-Amz-Signature=4aa31bdcf7b5e00dadffbd6dc8448a31871e283ffe270e77890e15487354bcca

【问题讨论】:

    标签: amazon-web-services api amazon-rds jenkins-groovy


    【解决方案1】:

    如果 groovy 是一项硬性要求,我会研究类似https://grails.org/plugin/aws-sdk

    如果您熟悉 Java,我会说使用官方 AWS-SDK

    如果您正在编写脚本,您还可以使用官方 AWS cli 工具并执行类似的操作

    aws rds describe-db-snapshots [OPTIONS]

    从那里您可以使用jq 之类的工具来归零并解析出您的特定 ID。您可以找到更多文档here

    您使用 SDK 授权的方式是通过环境变量(首选方法)或可能硬编码您的 KEY 和 SECRET(大不,不)

    【讨论】:

    • 我将此 api 调用用作 Jenkins 管道参数的一部分。我不确定我有多少选择。我将 aws api 用于管道的各个阶段。我将不得不按照您的建议研究 aws sdk 作为替代方案。
    • 如果您对 Jenkins plugins.jenkins.io/aws-java-sdk 具有管理员访问权限,则实际上有一个 Jenkins 插件,如果没有,您可以随时安装它,但这可能会为您的管道增加一些时间。不要尝试直接调用 REST,v4 签名很麻烦。
    【解决方案2】:

    我认为,与其尝试直接与 API 直接通信,不如使用 AWS 提供的内置包装器。

    如果您使用受支持的编程语言访问它,请查看AWS SDKs。目前官方支持以下库:

    • C++
    • Java
    • JavaScript
    • .NET
    • NodeJS
    • PHP
    • Python
    • 红宝石

    如果未涵盖您选择的语言,则可能已经有第三方解决方案。或者查看AWS CLI 来解决您的问题。

    对于您的特定操作describe-db-snapshots,您可以通过运行以下命令获取所有 ID 的列表,然后解析为 JSON。

    aws rds describe-db-snapshots --query 'DBSnapshots[*].DBSnapshotIdentifier' --format json
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-19
      • 1970-01-01
      • 2016-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多