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

Python字符串嵌入变量报错:调用STS assume_role时语法错误

解决Python调用AWS STS assume_role接口的语法错误问题

错误原因

你代码里的语法错误来自RoleArn=(f"arn:aws:iam::{AccountID[account]}:role/Cloudbees_Jenkins")这部分——给f-string额外套了一层括号,导致Python无法正确解析函数参数。

修正后的代码

import boto3

# 初始化STS客户端
sts = boto3.client('sts')

AccountID = ["1234567","5678912"]
for account_id in AccountID:
    # 构造RoleArn字符串
    role_arn = f"arn:aws:iam::{account_id}:role/Cloudbees_Jenkins"
    # 打印你期望的ARN输出
    print(role_arn)
    # 调用assume_role接口
    response = sts.assume_role(
        RoleArn=role_arn,
        RoleSessionName="learnaws-test-session"
    )
    # 打印STS响应结果
    print(response)

关键修正点

  • 移除RoleArn参数值外层的多余括号,直接将f-string作为参数传入即可
  • 优化循环写法:直接遍历AccountID列表的元素,替代range(len(AccountID))的写法,代码更简洁易读
  • 补充STS客户端的初始化代码(如果原代码已有这部分可忽略),否则会出现sts未定义的错误

注意事项

如果仅需要输出构造后的ARN字符串,单独执行print(role_arn)即可;调用assume_role会返回AWS STS的完整响应对象,包含临时凭证等信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:45:24