我想知道用于在java中创建azure eventhub主题的代码/类。
我搜索并发现我们可以使用.Net创建,如下所示。
var manager = new Microsoft.ServiceBus.NamespaceManager("mynamespace.servicebus.windows.net");
var description = manager.CreateEventHub("MyEventHub");
我想要同样的java ..它可能吗?
答案 0 :(得分:1)
根据我的经验,您需要执行两个步骤来为Java中的Azure事件中心创建命名空间和实体,如下所示。
创建命名空间:
使用Azure SDK for Java创建EventHub命名空间。
首先,在Maven项目的pom.xml
文件中添加依赖项。
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure</artifactId>
<version>1.1.0</version>
</dependency>
以下是使用应用程序令牌凭据的示例代码。
String clientId = "<your client id regiested on AAD>";
String domain = "<your talnet id or domain name>";
String secret = "<your client key>";
String subscription = "<your subscription id>";
AzureTokenCredentials cred = new ApplicationTokenCredentials(clientId, domain, secret, AzureEnvironment.AZURE);
Azure azure = Azure.configure().authenticate(cred).withSubscription(subscription);
String name = "<your eventhub namespace name>";
String region = "<your eventhub region like 'East Asia'>";
String resourceGroupName = "<your resource group name>";
String resourceType = "namespaces";
String providerNamespace = "Microsoft.EventHub";
azure.genericResources().define(name).withRegion(region)
.withExistingResourceGroup(resourceGroupName).withResourceType(resourceType)
.withProviderNamespace(providerNamespace).withoutPlan()
.create();
通过Java中的事件中心命名空间的REST API Create Or Update
创建EventHub命名空间。
创建实体:
Create Or Update
。Create Event Hub
。否则,您可以尝试按照文档Create an EventHubs namespace, Event Hub, and consumer group
通过ARM SDK中的ARM模板创建它。
azure.deployments().define("<deployment-name>").withExistingResourceGroup("<resource-group-name>").withTemplate("<template-uri>").withParameters("<parameters required in the template>").withMode(DeploymentMode.COMPLETE).create();
希望它有所帮助。