使用sagemaker api调用终结点时出错

2024-10-01 11:21:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我在sagemaker中部署了一个端点,并试图通过python程序调用它。我用邮递员做了测试,效果非常好。然后我编写了如下调用代码

import boto3
import pandas as pd
import io
import numpy as np

def np2csv(arr):
    csv = io.BytesIO()
    np.savetxt(csv, arr, delimiter=',', fmt='%g')
    return csv.getvalue().decode().rstrip()


runtime= boto3.client('runtime.sagemaker')
payload = np2csv(test_X)

runtime.invoke_endpoint(
    EndpointName='<my-endpoint-name>',
    Body=payload,
    ContentType='text/csv',
    Accept='Accept'
)

我现在运行此验证时出错

^{pr2}$

在使用postman时,我已经给出了我的访问密钥和密钥,但是我不确定在使用sagemaker api时如何传递它。我在文档中也找不到。在

所以我的问题是,如何从本地计算机使用sagemaker api来调用端点?在


Tags: csvioimportasnp密钥boto3端点
2条回答

我也有这个问题,结果证明我的region是错的。在

愚蠢但值得检查!在

当您使用任何AWS SDK(包括Amazon SageMaker的SDK)时,您需要在用于运行代码的计算机上配置AWS帐户的凭据。如果您使用的是本地计算机,则可以使用awscli流。您可以在pythonsdk页面上找到详细的说明:https://aws.amazon.com/developers/getting-started/python/

请注意,当您将代码部署到另一台计算机上时,您必须确保为EC2、ECS、Lambda或任何其他目标分配一个允许调用此特定端点的角色。在本地计算机中,可以授予您管理权限或其他许可权限,但在部署到远程实例时,应尽可能限制权限。在

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "sagemaker:InvokeEndpoint",
            "Resource": "arn:aws:sagemaker:*:1234567890:endpoint/<my-endpoint-name>"
        }
    ]
}

相关问题 更多 >