diff --git a/pubsub/api/src/create_topic_with_azure_event_hubs_ingestion.php b/pubsub/api/src/create_topic_with_azure_event_hubs_ingestion.php new file mode 100644 index 0000000000..4f5874ff92 --- /dev/null +++ b/pubsub/api/src/create_topic_with_azure_event_hubs_ingestion.php @@ -0,0 +1,76 @@ + $projectId, + ]); + + $topic = $pubsub->createTopic($topicName, [ + 'ingestionDataSourceSettings' => [ + 'azure_event_hubs' => [ + 'resource_group' => $resourceGroup, + 'namespace' => $namespace, + 'event_hub' => $eventHub, + 'client_id' => $clientId, + 'tenant_id' => $tenantId, + 'subscription_id' => $subscriptionId, + 'gcp_service_account' => $gcpServiceAccount + ] + ] + ]); + + printf('Topic created: %s' . PHP_EOL, $topic->name()); +} +# [END pubsub_create_topic_with_azure_event_hubs_ingestion] +require_once __DIR__ . '/../../../testing/sample_helpers.php'; +\Google\Cloud\Samples\execute_sample(__FILE__, __NAMESPACE__, $argv); diff --git a/pubsub/api/test/pubsubTest.php b/pubsub/api/test/pubsubTest.php index 2057dd76ca..564a6a3415 100644 --- a/pubsub/api/test/pubsubTest.php +++ b/pubsub/api/test/pubsubTest.php @@ -698,4 +698,31 @@ public function testCreateTopicWithConfluentCloudIngestion() $this->assertMatchesRegularExpression('/Topic deleted:/', $output); $this->assertMatchesRegularExpression(sprintf('/%s/', $topic), $output); } + + public function testCreateTopicWithAzureEventHubsIngestion() + { + $this->requireEnv('PUBSUB_EMULATOR_HOST'); + + $topic = 'test-topic-' . rand(); + $output = $this->runFunctionSnippet('create_topic_with_azure_event_hubs_ingestion', [ + self::$projectId, + $topic, + 'fake-resource-group', + 'fake-namespace', + 'fake-event-hub', + '11111111-1111-1111-1111-11111111111', + '22222222-2222-2222-2222-222222222222', + '33333333-3333-3333-3333-333333333333', + self::$gcpServiceAccount + ]); + $this->assertMatchesRegularExpression('/Topic created:/', $output); + $this->assertMatchesRegularExpression(sprintf('/%s/', $topic), $output); + + $output = $this->runFunctionSnippet('delete_topic', [ + self::$projectId, + $topic, + ]); + $this->assertMatchesRegularExpression('/Topic deleted:/', $output); + $this->assertMatchesRegularExpression(sprintf('/%s/', $topic), $output); + } }