Google cloud platform 无法使用CDAP RESTAPI上载数据融合插件json文件

Google cloud platform 无法使用CDAP RESTAPI上载数据融合插件json文件,google-cloud-platform,google-cloud-data-fusion,cdap,Google Cloud Platform,Google Cloud Data Fusion,Cdap,我正在尝试使用CDAP RESTAPI引用将我的自定义插件上载到datafusion。我按照文档中的步骤进行了操作,但仍然没有找到使用RESTAPI添加插件JSON文件的方法 curl-X POST-H“Authorization:Bearer$(gcloud auth print access token)”“${CDAP_ENDPOINT}/api/v3/namespace/vega_demo/artifacts/example”-H“Artifact extensed:system:CDA

我正在尝试使用CDAP RESTAPI引用将我的自定义插件上载到datafusion。我按照文档中的步骤进行了操作,但仍然没有找到使用RESTAPI添加插件JSON文件的方法

curl-X POST-H“Authorization:Bearer$(gcloud auth print access token)”“${CDAP_ENDPOINT}/api/v3/namespace/vega_demo/artifacts/example”-H“Artifact extensed:system:CDAP数据管道[6.0.0,10.0.0-SNAPSHOT)/system:CDAP数据流[6.0.0,10.0-SNAPSHOT”--数据二进制@/path/to/example-1.0.0-SNAPSHOT.jar@/path/to/example-1.0.0-SNAPSHOT.json

已成功添加项目URL:(6)无法解析主机:


插件已加载,但配置json文件未加载,导致插件中出现错误。根据使用的命令,我建议验证是否正确设置了端点

export INSTANCE_ID=your-instance-id
export CDAP_ENDPOINT=$(gcloud beta data-fusion instances describe \
--location=us-central1 \
--format="value(apiEndpoint)" \
${INSTANCE_ID})
根据官方CDAP,端点似乎不应包括api之前的v3部分

此外,如果您的实例属于,则名称空间是默认的;否则,在使用Enterpise edition时,您可以创建名称空间

当使用curl方法时,似乎需要在该方法中添加配置信息,因为该方法不包括json加载

另一方面,如果您在使用curl时遇到问题,我建议您使用UI

将插件mysql-connector-java-5.1.35.jar上传到带有curl的数据融合,配置文件如下:

{
  "parents": [ "system:cdap-data-pipeline[6.1.1,6.1.1]", "system:cdap-data-streams[6.1.1,6.1.1]" ],
  "plugins": [
    {
      "name": "mysql",
      "type": "jdbc",
      "className": "com.mysql.jdbc.Driver"
    }
  ]
}
由于使用curl,您只能上载jar文件,要包含配置文件中的信息,您应该使用HTTP头包含以下信息:

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"${CDAP_ENDPOINT}/v3/namespaces/default/artifacts/example" \
-H 'Artifact-Plugins: [ { "name": "mysql", "type": "jdbc", "className": "com.mysql.jdbc.Driver" } ]' \
-H "Artifact-Version: 5.1.35" \
-H "Artifact-Extends: system:cdap-data-pipeline[6.1.1, 6.1.1]/system:cdap-data-streams[6.1.1, 6.1.1]" \
--data-binary @mysql-connector-java-5.1.35.jar

你能分享使用的JSON文件吗?另外,你有没有尝试过使用接口上传插件?@ebeltran,实际上根据文档,语法只是用来上传JAR,比如--data binary@/path/to/example-1.0.0-SNAPSHOT.JAR。你能帮我介绍一下如何在上面的CURL命令中传递JSON文件的语法吗不过,在curl命令中,似乎不需要指定json文件。要加载json,请使用cdap命令@ebeltran,然后如何使用REST?上载json文件。我无法使用cdap CLI,因为我使用的是datafusion。在发布此问题之前,我只遵循了上述步骤。我甚至向curl和st添加了标题我将面临同样的错误。您能提供一个使用JAR和JSON的CURL的工作示例吗?为了澄清问题,这必须分两步完成。1.上载工件(JAR)。2.工件上载后,您可以使用工件属性端点更新工件的属性(JSON文件).1.API用于上载工件()2.API用于更新工件()的属性