我的目标(背景信息)
我想开发一个关于积雨性的java微服务。它应该能够执行以下操作:
我将向microservice发送“112233”,如下所示:
https://myTenant.cumulocity.com/service/my-application-name/decode?data=112233
然后,微服务应将第一次测量的数据分为“11”,第二次测量的数据分为“22”,等等。这些测量结果将发布到积云度。
我的问题
我现在被困在
Hello, microservice tutorial
工作。我无法将microservice(zip文件)部署到cumulocity。
"error":"security/Forbidden","info":"https://www.cumulocity.com/guides/reference-guide/#error_reporting","message":"Access is denied"}
(我是管理员用户。)
我还尝试通过网站上传zip文件,这创建了一个
HOSTED
应用程序而不是
MICROSERVICE
.通过POST请求将我的zip上载到
托管
这个应用程序实际上可以工作(我显然不需要)。
我怀疑我收到了“拒绝访问”错误,因为积雨性认为我上载了
托管
应用于
微服务
。
到目前为止我所做的
代码端
我下载了
hello-world-microservice example
来自积雨学bitbucket开发分支。(此代码在默认分支上不可用)。
我将积云度版本更改为
9.3.0
,似乎只有此版本存在。
HelloWorldMain。java未经编辑
这是我的
积雨性。json
清单文件:(角色没有区别)
{
"apiVersion":"1",
"type":"MICROSERVICE",
"version":"@project.version@",
"availability":"PRIVATE",
"provider":{
"name":"Cumulocity GmbH"
},
"isolation":"MULTI_TENANT",
"requiredRoles":[
"ROLE_APPLICATION_MANAGEMENT_ADMIN",
"ROLE_MEASUREMENT_ADMIN",
"ROLE_INVENTORY_ADMIN"
],
"roles":[
"ROLE_APPLICATION_MANAGEMENT_ADMIN",
"ROLE_MEASUREMENT_ADMIN",
"ROLE_INVENTORY_ADMIN"
],
"livenessProbe":{
"httpGet":{
"path":"/health",
"port":80
},
"initialDelaySeconds":15,
"periodSeconds":10
},
"readinessProbe":{
"httpGet":{
"path":"/health",
"port":80
}
}
}
这是我的
应用属性
文件
application.name=my-application-name
server.port=80
C8Y.baseURL=https://myTenant.cumulocity.com
C8Y.bootstrap.tenant=myTenant
C8Y.bootstrap.user=servicebootstrap_my-application-name
C8Y.bootstrap.password={SECRET_BOOTSTRAP_PASSW}
C8Y.user={MY_USERNAME}
C8Y.password={SECRET_PASSW}
C8Y.bootstrap.register=true
C8Y.microservice.isolation=MULTI_TENANT
C8Y.bootstrap.initialDelay=10000
积雨性侧
我成功了
已创建
微服务应用程序,
收到
https://myTenant.cumulocity.com/application/applications/5886
返回值:
{
"availability":"PRIVATE",
"id":"5886",
"key":"my-application-key",
"manifest":{
"imports":[
],
"noAppSwitcher":true
},
"name":"my-application-name",
"owner":{
"self":"https://myTenant.cumulocity.com/tenant/tenants/myTenant",
"tenant":{
"id":"myTenant"
}
},
"requiredRoles":[
"ROLE_APPLICATION_MANAGEMENT_ADMIN",
"ROLE_MEASUREMENT_ADMIN",
"ROLE_INVENTORY_ADMIN"
],
"roles":[
"ROLE_APPLICATION_MANAGEMENT_ADMIN",
"ROLE_MEASUREMENT_ADMIN",
"ROLE_INVENTORY_ADMIN"
],
"self":"https://myTenant.cumulocity.com/application/applications/5886",
"type":"MICROSERVICE"
}
我也成功了
已订阅
此应用程序。
当我尝试将zip文件上载到cumulocity时,出现以下错误:
“错误”:“安全/禁止”,“信息”:https://www.cumulocity.com/guides/reference-guide/#error_reporting“,”message“:“拒绝访问”}
(正在上载到
托管
类型应用程序工作正常,但我不希望这样。)
笔记
:我还尝试使用
microservice deploy script
,这与手动执行所有操作的结果相同。
正在尝试在本地运行
由于我无法在积雨城市平台上运行它,我尝试通过docker在本地运行它。我使用以下命令运行它:
docker run -e "C8Y_MICROSERVICE_ISOLATION=MULTI_TENANT" 10aa0b73ddb3
笔记
:我必须添加“C8Y\u MICROSERVICE\u ISOLATION=多租户”
environment variable
。如果我不添加此项,我会遇到凭据/权限问题。这对我来说似乎很奇怪,因为所有其他信息都是从
应用属性
除此之外的文件。
在本地docker上运行此映像时,我没有错误。
根据
您好,microservice教程
,我应该可以请求
curl -H "Authorization: {AUTHORIZATION}" https://myTenant.cumulocity.com/service/my-application-name/hello?who=me
这将返回:
{"error":"microservice/Not Found","info":"https://www.cumulocity.com/guides/reference-guide/#error_reporting","message":"Microservice my-application-name not found."}
回到问题上来
还有谁在积雨学上建立微服务有困难吗?
有什么是我完全监督的吗?