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

如何在SageMaker端点中获取区域名称

SageMaker自定义容器获取区域名称的解决方法

以下是几种可行的解决办法:

  • 通过EC2元数据服务获取
    SageMaker容器可以访问EC2元数据服务,直接拉取实例所在区域的信息。Python实现示例:

    import requests
    
    def get_instance_region():
        try:
            # 获取元数据访问令牌(推荐,避免请求被限制)
            token_resp = requests.put(
                "http://169.254.169.254/latest/api/token",
                headers={"X-aws-ec2-metadata-token-ttl-seconds": "300"}
            )
            token = token_resp.text
            # 请求实例身份文档获取区域
            metadata_resp = requests.get(
                "http://169.254.169.254/latest/dynamic/instance-identity/document",
                headers={"X-aws-ec2-metadata-token": token}
            )
            return metadata_resp.json()["region"]
        except Exception as e:
            print(f"获取区域失败: {str(e)}")
            return None
    
  • 读取SAGEMAKER_REGION环境变量
    多数SageMaker容器部署场景会自动注入SAGEMAKER_REGION环境变量,直接读取即可:

    import os
    
    region = os.getenv("SAGEMAKER_REGION")
    if region:
        print(f"当前区域: {region}")
    
  • 通过STS API推断区域
    如果容器拥有IAM角色权限,调用STS的get_caller_identity接口,从返回的ARN中提取区域:

    import boto3
    
    def get_region_from_sts():
        try:
            sts_client = boto3.client("sts")
            identity = sts_client.get_caller_identity()
            # ARN格式为arn:aws:service:region:account-id:resource,第4段是区域
            return identity["Arn"].split(":")[3]
        except Exception as e:
            print(f"通过STS获取区域失败: {str(e)}")
            return None
    
  • 部署时手动传入区域环境变量
    在创建SageMaker模型时,手动将当前区域作为自定义环境变量传入容器:

    from sagemaker.model import Model
    import boto3
    
    current_region = boto3.session.Session().region_name
    model = Model(
        image_uri="your-custom-container-image-uri",
        role="your-sagemaker-execution-role",
        env={"APP_REGION": current_region}
    )
    # 后续部署模型到端点的代码...
    

    容器内通过os.getenv("APP_REGION")即可获取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 03:52:45