You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过角色认证使用JMeter/LoadRunner向AWS SQS推送消息?

无需Access Key向AWS SQS推送消息的解决方案(JMeter/LoadRunner)

基于IAM角色的认证完全可行,不需要硬编码长期Access Key,核心是利用AWS的默认凭证链自动获取临时权限,以下分工具给出具体实现方式:

JMeter 实现方式

方式1:在AWS资源内运行JMeter(推荐)

如果JMeter部署在EC2、ECS容器或EKS Pod中,直接给对应资源附加具备SQS发送权限的IAM角色:

  1. 创建IAM角色,附加包含sqs:SendMessage权限的政策(指定目标SQS队列ARN)
  2. 将该角色关联到EC2实例、ECS任务定义或EKS服务账户
  3. 在JMeter中使用JSR223 Sampler(Java语言),通过AWS SDK自动获取角色凭证发送消息:
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.SendMessageRequest;

// 自动从环境获取角色凭证
SqsClient sqsClient = SqsClient.create();

SendMessageRequest request = SendMessageRequest.builder()
    .queueUrl("你的SQS队列URL")
    .messageBody("测试消息内容")
    .build();

sqsClient.sendMessage(request);
sqsClient.close();

方式2:本地运行JMeter

通过AWS CLI切换角色获取临时凭证,让JMeter读取这些临时凭证:

  1. 用AWS CLI执行角色切换命令,生成临时凭证(需提前配置信任关系):
aws sts assume-role --role-arn "你的IAM角色ARN" --role-session-name "jmeter-sqs-session"
  1. 将返回的AccessKeyId、SecretAccessKey、SessionToken设置为系统环境变量:
    • AWS_ACCESS_KEY_ID
    • AWS_SECRET_ACCESS_KEY
    • AWS_SESSION_TOKEN
  2. 同方式1,用JSR223 Sampler编写AWS SDK代码,SDK会自动读取环境变量中的临时凭证。

LoadRunner 实现方式

方式1:在AWS资源内运行LoadRunner

和JMeter逻辑一致,给LoadRunner Generator/Controller所在的AWS资源附加具备SQS权限的IAM角色:

  • 若用Java Vuser脚本,直接调用AWS SDK,利用默认凭证链获取角色权限,代码逻辑同JMeter的Java示例
  • 若用C Vuser脚本,使用AWS C SDK,通过默认凭证提供者自动获取角色凭证发送消息

方式2:本地运行LoadRunner

同样通过AWS CLI获取临时凭证,设置环境变量后,脚本中的AWS SDK会自动读取:

  1. 执行aws sts assume-role获取临时凭证
  2. 设置系统环境变量(Windows可通过高级系统设置,Linux/macOS用export命令)
  3. 在LoadRunner脚本中调用AWS SDK发送消息,无需手动配置密钥

关键权限配置

确保IAM角色的政策包含以下权限(替换为你的队列ARN):

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sqs:SendMessage",
            "Resource": "arn:aws:sqs:你的区域:账户ID:队列名称"
        }
    ]
}

内容的提问来源于stack exchange,提问作者vaibhavnayan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 10:20:26