Amazon web services 访问AWS RDS描述数据库快照API

Amazon web services 访问AWS RDS描述数据库快照API,amazon-web-services,api,amazon-rds,jenkins-groovy,Amazon Web Services,Api,Amazon Rds,Jenkins Groovy,我试图访问aws rds api来描述db快照。我计划对其进行解析,以便使用groovy按id列出所有可用的aws快照。然而,我面临的最大问题是首先要获得api。我查看了AWS在这个主题上的参考资料,但似乎不知道如何使用凭据生成请求的预签名部分。我甚至不知道为什么这一部分是必要的。为什么用户不能使用访问密钥ID和秘密访问密钥组合进行身份验证 参考资料: 有关问题的章节: https://rds.us-west-2.amazonaws.com/ ?Action=DescribeDBSnap

我试图访问aws rds api来描述db快照。我计划对其进行解析,以便使用groovy按id列出所有可用的aws快照。然而,我面临的最大问题是首先要获得api。我查看了AWS在这个主题上的参考资料,但似乎不知道如何使用凭据生成请求的预签名部分。我甚至不知道为什么这一部分是必要的。为什么用户不能使用访问密钥ID和秘密访问密钥组合进行身份验证

参考资料:

有关问题的章节:

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

如果groovy是一个很难满足的需求,那么我会研究类似这样的东西

如果您对Java感到满意,我建议您使用官方的AWS-SDK

如果要编写脚本,还可以使用官方的AWS cli工具执行以下操作

aws rds描述数据库快照[选项]

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


您使用SDK进行授权的方式可以是通过环境变量(首选方法),也可以是硬编码您的密钥和密码(大不可以)

如果groovy是一个硬需求,我会研究类似的内容

如果您对Java感到满意,我建议您使用官方的AWS-SDK

如果要编写脚本,还可以使用官方的AWS cli工具执行以下操作

aws rds描述数据库快照[选项]

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


使用SDK进行授权的方式可以是通过环境变量(首选方法)或者可能是硬编码密钥和机密(大不可以)

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

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

  • C++
  • 爪哇
  • JavaScript
  • .NET
  • NodeJS
  • PHP
  • 蟒蛇
  • 红宝石
如果您选择的语言未涵盖,则可能已经有第三方解决方案。或者,看看解决问题的方法

对于您的特定操作,您可以通过运行以下命令获得所有ID的列表,然后将其解析为JSON

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

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

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

  • C++
  • 爪哇
  • JavaScript
  • .NET
  • NodeJS
  • PHP
  • 蟒蛇
  • 红宝石
如果您选择的语言未涵盖,则可能已经有第三方解决方案。或者,看看解决问题的方法

对于您的特定操作,您可以通过运行以下命令获得所有ID的列表,然后将其解析为JSON

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

我将此api调用用作Jenkins管道参数的一部分。我不知道我有多少选择。我在管道的各个阶段使用aws api。我将不得不像你建议的那样研究aws sdk作为替代方案。如果你有Jenkins的管理员权限,那么实际上有一个Jenkins插件。如果没有,你可以随时安装它,但这可能会给你的管道增加一些时间。不要尝试直接调用REST,v4签名是个麻烦。我将此api调用用作Jenkins管道参数的一部分。我不知道我有多少选择。我在管道的各个阶段使用aws api。我将不得不像你建议的那样研究aws sdk作为替代方案。如果你有Jenkins的管理员权限,那么实际上有一个Jenkins插件。如果没有,你可以随时安装它,但这可能会给你的管道增加一些时间。不要尝试直接调用REST,v4签名是个麻烦。