当前位置: 首页 > news >正文

AWScurl笔记

摘要

        AWScurl是一款专为与AWS服务交互设计的命令行工具,它模拟了curl的功能并添加了AWS签名版本4的支持。这一特性使得用户能够安全有效地执行带有AWS签名的请求,极大地提升了与AWS服务交互时的安全性和有效性。
GitHub - okigan/awscurl: curl-like access to AWS resources with AWS Signature Version 4 request signing.curl-like access to AWS resources with AWS Signature Version 4 request signing. - okigan/awscurlhttps://github.com/okigan/awscurlhttps://github.com/okigan/awscurl

一、AWScurl入门与基础操作

1.1 AWScurl概述

        AWScurl是一款专为与AWS服务交互设计的命令行工具,它模拟了curl的功能并添加了AWS签名版本4的支持。这一特性使得用户能够安全有效地执行带有AWS签名的请求,极大地提升了与AWS服务交互时的安全性和有效性。AWScurl的设计初衷是为了简化开发者在使用AWS API时的操作流程,同时保证数据传输的安全性。它适用于各种场景,无论是开发测试还是生产环境下的自动化脚本编写,都能发挥重要作用。

1.2 工具安装与配置

安装步骤
  • Python环境准备:由于AWScurl基于Python开发,因此首先需要确保系统中已安装Python环境。推荐使用Python 3.x版本。
  • 安装AWScurl:可以通过pip命令直接安装AWScurl,命令如下:
    pip install awscurl
配置AWS凭证

为了使AWScurl能够正确地为请求生成签名,需要配置AWS访问密钥(Access Key ID)和秘密访问密钥(Secret Access Key)。可以通过以下几种方式之一来设置这些凭证:

  • 环境变量:设置AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY环境变量。
  • 配置文件:创建一个名为~/.aws/credentials的文件,并在其中添加如下内容:
    [default]aws_access_key_id = YOUR_ACCESS_KEYaws_secret_access_key = YOUR_SECRET_KEY
  • 命令行参数:在运行awscurl命令时直接传递访问密钥和秘密访问密钥作为参数。
其他可选配置
  • 区域:指定AWS服务所在的区域,可以通过--region参数设置。
  • 端点URL:如果需要连接到特定的端点URL,可以使用--endpoint-url参数指定。

1.3 基本命令使用说明

基础用法

AWScurl的基本使用方法类似于curl,但增加了AWS签名相关的选项。下面是一个简单的示例,用于向bedrock发送post请求:

awscurl -v -i \--request POST \--service bedrock https://bedrock-runtime.us-east-1.amazonaws.com/model/us.anthropic.claude-3-5-sonnet-20241022-v2:0/converse \--data '{"messages":[{"role":"user","content":[{"text":"Provide general steps to debug a BSOD on a Windows laptop."}]}],"system":[{"text":"You are a tech support expert who helps resolve technical issues. Signal SUCCESS if you can resolve the issue, otherwise FAILURE"}],"inferenceConfig":{"stopSequences":["SUCCESS","FAILURE"]},"additionalModelRequestFields":{"top_k":200}}'
常用选项
  • -v  输出debug信息
  • --service: 指定AWS服务类型,例如s3ec2等。
  • --region: 指定AWS服务所在的区域。
  • --request: 指定HTTP请求方法,默认为GET
  • --data: 发送POST请求时携带的数据。
  • --headers: 添加自定义HTTP头。

更详细参数请参考:

[root@localhost build]# awscurl -h
usage: awscurl [-h] [-v] [-i] [-X REQUEST] [-d DATA] [-H HEADER] [-k][--fail-with-body] [--data-binary] [--region REGION][--profile PROFILE] [--service SERVICE][--access_key ACCESS_KEY] [--secret_key SECRET_KEY][--security_token SECURITY_TOKEN][--session_token SESSION_TOKEN] [-L] [-o <file>]uriCurl AWS request signingpositional arguments:urioptional arguments:-h, --help            show this help message and exit-v, --verbose         verbose flag (default: False)-i, --include         include headers in the output (default: False)-X REQUEST, --request REQUESTSpecify request command to use (default: GET)-d DATA, --data DATA  HTTP POST data (default: )-H HEADER, --header HEADERHTTP header (default: None)-k, --insecure        Allow insecure server connections when using SSL(default: False)--fail-with-body      Fail on HTTP errors but save the body (default: False)--data-binary         Process HTTP POST data exactly as specified with noextra processing whatsoever. (default: False)--region REGION       AWS region [env var: AWS_DEFAULT_REGION] (default: us-east-1)--profile PROFILE     AWS profile [env var: AWS_PROFILE] (default: default)--service SERVICE     AWS service (default: execute-api)--access_key ACCESS_KEY[env var: AWS_ACCESS_KEY_ID] (default: None)--secret_key SECRET_KEY[env var: AWS_SECRET_ACCESS_KEY] (default: None)--security_token SECURITY_TOKEN[env var: AWS_SECURITY_TOKEN] (default: None)--session_token SESSION_TOKEN[env var: AWS_SESSION_TOKEN] (default: None)-L, --location        Follow redirects (default: False)-o <file>, --output <file>Write to file instead of stdout (default: )In general, command-line values override environment variables which override
defaults.

http://www.lryc.cn/news/528316.html

相关文章:

  • QT使用eigen
  • 揭示Baklib企业内容管理系统CMS的核心功能与应用价值
  • 如何跨互联网adb连接到远程手机-蓝牙电话集中维护
  • flume和kafka整合 flume和kafka为什么一起用?
  • java.util.Random类(详细案例拆解)(已完结)
  • Java后端之AOP
  • 【信息系统项目管理师-选择真题】2008上半年综合知识答案和详解
  • go到底是什么意思:对go的猜测或断言
  • 零刻SER7接口及配置跑分
  • 【Java基础-41.5】深入解析Java异常链:构建清晰的错误追踪体系
  • 【Python实现机器遗忘算法】复现2023年TNNLS期刊算法UNSIR
  • Object类(3)
  • Zookeeper(32) Zookeeper的版本号(version)是什么?
  • C# as 和 is 运算符区别和用法
  • 求解旅行商问题的三种精确性建模方法,性能差距巨大
  • SQL-leetcode—1193. 每月交易 I
  • 【MySQL — 数据库增删改查操作】深入解析MySQL的 Retrieve 检索操作
  • 项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(九)(完结篇)
  • 离散 VS 流程制造,制造业的 “双生花” 如何绽放
  • freeswtch目录下modules.conf各个模块的介绍【freeswitch版本1.6.8】
  • 循序渐进kubernetes-RBAC(Role-Based Access Control)
  • 第3章 基于三电平空间矢量的中点电位平衡策略
  • 基于SpringBoot的阳光幼儿园管理系统
  • Python 数据分析 - Matplotlib 绘图
  • uniapp版本升级
  • Django ORM解决Oracle表多主键的问题
  • 机器学习2 (笔记)(朴素贝叶斯,集成学习,KNN和matlab运用)
  • ubuntu解决普通用户无法进入root
  • Time Constant | RC、RL 和 RLC 电路中的时间常数
  • 数据结构测试题2