python - AWS Sagemaker InvokeEndpoint:操作:找不到账户的终端节点
问题描述
我已经从我的笔记本实例成功部署了模型。我还可以通过调用predict()
方法来生成预测sagemaker.predictor
。
这就是我创建和部署模型的方式
class StringPredictor(Predictor):
def __init__(self, endpoint_name, sagemaker_session):
super(StringPredictor, self).__init__(endpoint_name, sagemaker_session, content_type='text/plain')
pytorch_model = PyTorchModel(model_data = inputs,
role=role,
entry_point ='inference.py',
source_dir = './code',
framework_version = '1.3.1',
py_version='py3',
predictor_cls=StringPredictor)
predictor = pytorch_model.deploy(instance_type='ml.m5.large', initial_instance_count=4)
从 SageMaker 仪表板中,我什至可以看到我的端点和状态是“服务中”
如果我运行,aws sagemaker list-endpoints
我可以看到我想要的端点也正确显示。我的问题是当我运行此代码(在 sagemaker 之外)时,出现错误:
import boto3
sm_runtime_client = boto3.client('sagemaker-runtime')
payload = "somestring that is used here"
response = sm_runtime_client.invoke_endpoint(EndpointName='pytorch-inference-xxxx',ContentType='text/plain',Body=payload)
这是抛出的错误
botocore.errorfactory.ValidationError: An error occurred (ValidationError) when calling the InvokeEndpoint operation: Endpoint pytorch-inference-xxxx of account xxxxxx not found.
这很奇怪,因为我可以从 sagemaker 笔记本中很好地查看和运行端点,而且我也可以运行该predict()
方法。
我已经验证了地区、端点名称和帐号。
解决方案
我遇到了完全相同的错误,我刚刚通过设置正确的区域来修复我的错误。
我已经验证了地区、端点名称和帐号。
我知道您已经表明您已经验证了该区域,但在我的情况下,远程计算机配置了另一个区域。所以我只是在我的远程计算机上运行了以下命令
aws configure
一旦我再次设置密钥 ID 和密钥,我设置了正确的区域,错误就消失了。
推荐阅读
- python - 为主教不工作生成对角线移动的位板
- c - 线程 1:EXC_BAD_ACCESS(代码=1,地址=0x7ffeefc00000)
- statistics - 组合2个相同分布的数组
- c# - 统一更改粒子系统开始颜色的范围
- css - 如何在 Bootstrap 中裁剪 GoogleAPI 二维码图像?
- r - ggplot 多边形 X 轴和 Y 轴缩放并更改组的颜色
- php - Codeigniter 中的 Ajax 文件上传
- java - 没有为 public com.phonepe.gandalf.models.authz.Permission 类型的参数找到注入源
- angular - 构建 Angular CLI 主题
- reactjs - 如何使用 bundle.js 文件渲染 react-router-dom 中的组件?