【问题标题】:Determine aws region inside a aws glue job确定 aws 粘合作业内的 aws 区域
【发布时间】:2023-03-28 16:50:01
【问题描述】:

您好,我需要一些帮助来确定胶水作业中的 aws 区域。 我正在尝试使用 boto3 客户端 kms,当我执行以下操作时出现错误 NoRegionError: You must specify a region. kms = boto3.client('kms') 显然,它要求我在创建客户端时设置 region_name,但我不希望对区域进行硬编码

在运行胶水作业时,我确实在日志中看到一行写着Detected region us-east-2,但我不确定如何获取该值?

【问题讨论】:

  • 你试过this回答了吗?大多数 AWS 服务都会适当地设置环境,以确保其正常工作。
  • 谢谢莫里斯!是的,我尝试了上面的链接,但没有返回。

标签: aws-glue aws-regions


【解决方案1】:

如果您正在运行 Pyspark / Python shell Glue 作业,请尝试以下操作:

import requests

r = requests.get("http://169.254.169.254/latest/dynamic/instance-identity/document")
response_json = r.json()
region = response_json.get('region')

print region

【讨论】:

【解决方案2】:

AWS Glue 并非在所有区域都可用。你可以参考这个link

这就是您需要对区域进行硬编码的原因。

来到“检测到的区域 us-east-2”,这可能是因为您的 aws CLI 配置

【讨论】:

  • 抱歉,我没有遵循 aws CLI 配置部分。我在 AWS Glue 中将上述代码作为 Spark JOB 运行,而不是在本地运行。
  • 在创建Job的时候,你肯定已经选择了地区..我认为不需要在程序中专门设置地区
  • 如果作业在执行时创建了一个 AWS 客户端来访问其他资源,则需要指定区域。
猜你喜欢
  • 2022-07-08
  • 1970-01-01
  • 1970-01-01
  • 2021-07-26
  • 2023-03-25
  • 1970-01-01
  • 2019-02-06
  • 2020-05-26
  • 2018-10-31
相关资源
最近更新 更多