因为我想在许多服务器上自动启用Anypoint Runtime Manager。 我的计划是使用REST来获取用于将服务器注册到AMC的正确注册令牌。页面上有方向:
要注册服务器,您必须首先针对Anypoint Platform Authentication Manager进行身份验证并获取身份验证令牌,使用此令牌您需要获取用于将服务器注册到AMC的注册令牌。
我理解第一部分并且可以获得身份验证令牌,但我找不到如何获取注册令牌的参考。
我如何获得此令牌? 谢谢!
答案 0 :(得分:2)
您是否在文档中看到了Obtain the Server Registration Token部分?
如果要通过调用REST API获取注册令牌,请查看here。有一个名为/servers/registrationToken
答案 1 :(得分:1)
您还可以使用新的anypoint-cli v2.x获取注册令牌。这将为您组合几个REST API调用。命令是:
runtime-mgr server token
您可以在交互式shell中键入此内容,或将其添加到您喜欢的脚本环境的独立调用的末尾。例如,如果您使用ANYPOINT_USERNAME,ANYPOINT_PASSWORD,ANYPOINT_ORG和ANYPOINT_ENV创建了一个配置文件,则可以调用:
anypoint-cli runtime-mgr server token
您可以在此处找到文档和安装说明:docs.mulesoft.com/runtime-manager/anypoint-platform-cli#runtime-mgr-server-token。
如果您想直接使用REST API执行此操作,则必须进行多次调用:
从中发布核心服务access_token anypoint.mulesoft.com/accounts/login 使用BODY中的用户名和密码作为JSON对象。
卷曲-X POST \ anypoint.mulesoft.com/accounts/login \ -H'内容类型:application / json'\ -d'{ “用户名”:“yourUserName” “密码”:“你的密码” }“
将响应存储为变量(我们称之为{{access_token}}。
在每个其他API调用的标头中复制此access_token:密钥:授权,值:bearer {{access_token}}
获取或存储要注册服务器的组织ID。有几种方法可以做到这一点。该值可通过GET请求
获得anypoint.mulesoft.com/accounts/api/me
卷曲-X GET \ anypoint.mulesoft.com/accounts/api/me \ -H'授权:持票人aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
您可能希望使用JQ库来解析此JSON响应中的organizationID。
获取要在GET请求中注册Mule运行时(服务器)的环境的环境ID:
anypoint.mulesoft.com/accounts/api/organizations / {{organizationId}} /环境
卷曲-X GET \ https://anypoint.mulesoft.com/accounts/api/organizations/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/environments \ -H'授权:持票人aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa' -H'content-type:application / json'
向GET发出请求 anypoint.mulesoft.com/hybrid/api/v1/servers/registrationToken
设置标题X-ANYPNT-ORG-ID和X-ANYPNT-ENV-ID设置:
curl -X GET \
anypoint.mulesoft.com/hybrid/api/v1/servers/registrationToken \
-H 'authorization: bearer aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa' \
-H 'x-anypnt-env-id: cccccccc-cccc-cccc-cccc-cccccccccccc' \
-H 'x-anypnt-org-id: bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb'
这将返回注册令牌。
然后将此注册令牌与amc_setup -H命令一起使用
amc_setup -H {{registration_token}} 服务器名称