如何在java中以编程方式创建azure事件中心主题?

时间:2017-06-28 10:42:19

标签: java azure azure-eventhub

我想知道用于在java中创建azure eventhub主题的代码/类。

我搜索并发现我们可以使用.Net创建,如下所示。

var manager = new Microsoft.ServiceBus.NamespaceManager("mynamespace.servicebus.windows.net");
var description = manager.CreateEventHub("MyEventHub");

我想要同样的java ..它可能吗?

1 个答案:

答案 0 :(得分:1)

根据我的经验,您需要执行两个步骤来为Java中的Azure事件中心创建命名空间和实体,如下所示。

创建命名空间:

  1. 使用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();
    
  2. 通过Java中的事件中心命名空间的REST API Create Or Update创建EventHub命名空间。

  3. 创建实体:

    1. 通过Java中的事件中心的REST API Create Or Update
    2. 通过Java中的实体管理REST的REST API Create Event Hub
    3. 只需在Azure门户上创建实体,如下图所示。 enter image description here
    4. 否则,您可以尝试按照文档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();
      

      希望它有所帮助。