【问题标题】:Not able to do neptune bulkload from aws s3无法从 aws s3 进行海王星批量加载
【发布时间】:2023-02-16 07:31:18
【问题描述】:

我无法使用 curl 命令从 AWS S3 批量加载 Neptune?

这是我得到的错误:

{"code":"AccessDeniedException","requestId":"f6243cd3-2a4f-48a2-9d91-13803c199ef1","detailedMessage":"Missing Authentication Token"}

示例查询:

curl -X POST \
    -H 'Content-Type: application/json' \
    https://*******.cluster-c4brigvg3m9m.us-east-2.neptune.amazonaws.com:8182/loader -d'
    { 
      "source" : "s3://******/Unsaved/2022/12/13/4a873928-9910-47b0-85ca-de593ace4f4a.csv", 
      "format" : "csv",  
      "iamRoleArn" : "arn:aws:iam::959061167427:role/NeptuneLoadFroms3", 
      "region" : "us-east-2", 
      "failOnError" : "FALSE",
    }'

【问题讨论】:

  • 您的集群是否启用了 IAM 身份验证?如果是,则需要签署该请求。为此,您可以使用 AWSCurl 或 Jupyter graph-notebook 笔记本等工具。
  • 是的,我的集群启用了 IAM 身份验证。您能否分享我的请求将如何签名的步骤?

标签: amazon-s3 amazon-neptune


【解决方案1】:

curl 实用程序无法传递 IAM 凭证。您收到的错误消息是因为您使用的是启用了 IAM 身份验证的 Neptune 集群。要解决此问题,您可以使用 awscurl [1],该实用程序将使用您直接作为参数传递的 IAM 凭据、您已存储为环境变量的凭据或您已作为配置文件存储在AWS CLI。

awscurl -X POST --service neptune-db -H 'Content-Type: application/json' --region us-east-2 
https://**.cluster-c4brigvg3m9m.us-east-2.neptune.amazonaws.com:8182/loader -d' 
    {
        "source" : "s3://*/Unsaved/2022/12/13/4a873928-9910-47b0-85ca-de593ace4f4a.csv", 
        "format" : "csv", 
        "iamRoleArn" : "arn:aws:iam::123456789012:role/NeptuneLoadFroms3", 
        "region" : "us-east-2", 
        "failOnError" : "FALSE"
}'

1]https://github.com/okigan/awscurl

【讨论】:

  • 谢谢。我做了同样的事情,海王星批量加载的状态是 200。但是现在,当使用海王星端点(neptune-remote.yaml 文件)从 ec2 实例导航到 gremlin 控制台时,会显示此错误。错误:“‘连接’期间出错 - 没有此类属性:类的 conf/neptune-remote.yaml:groovy.lang.Binding”
  • 这听起来像是一个不同的问题看起来您正在尝试使用 Gremlin 控制台进行连接。我建议您为此打开一个单独的问题,因为这与批量加载数据无关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-28
  • 1970-01-01
相关资源
最近更新 更多