At least one of the required tools: snctl, pulsarctl, pulsar-admin , or the Terraform module. For a quickstart of setting up pulsarctl and pulsar-admin, see set up client tools.
Before creating a connector, it’s highly recommended to do the following:
Check connector availability to ensure the version number of the connector you want to create is supported on StreamNative Cloud.
Go to StreamNative Hub and find the connector-specific docs of your version for configuration reference.
The following example shows how to create a data generator source connector named test on StreamNative Cloud using different tools.
The builtin:// is followed by the name of the built-in connector, such as builtin://data-generator.
snctl
pulsarctl
pulsar-admin
Terraform
Rest API
To create a data generator source connector named test, run the following command.
Replace $SERVICE_ACCOUNT with the StreamNative Cloud service account that the connector uses as its runtime identity. To select the runtime service account interactively, use --use-sn-service-account.
Only Pulsar 4.0.x clusters running version 4.0.10.6 or later, or Pulsar 4.2.x clusters running version 4.2.1.4 or later, support the --sn-service-account flag.You can use --as-service-account instead of --sn-service-account if you are using other versions of Pulsar clusters.
You should see the following output:
Created test successfully
If you want to verify whether the data generator source connector has been created successfully, run the following command:
snctl pulsar admin sources list
You should see the following output:
+---------------------+| PULSAR SOURCES NAME |+---------------------+| test |+---------------------+
If you want to create a sink connector, use the snctl pulsar admin sinks create command.
To create a data generator source connector named test, run the following command.
If you want to list the submitted connector for a double check, run the following command:
./bin/pulsar-admin sources list
You should see the following output:
[ "test"]
To reduce the complexity of your command, you can add the above parameters with values into the conf/client.conf file under the downloaded Pulsar release. Once it’s configured, you can run a simple command instead:
Call the following commands in your Terraform file directory:
terraform init# outputTerraform has been successfully initialized!
terraform apply# outputTerraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + createTerraform will perform the following actions: # pulsar_source.test will be created + resource "pulsar_source" "test" { + archive = "builtin://data-generator" + classname = (known after apply) + configs = jsonencode( { + sleepBetweenMessages = "60" } ) + cpu = 1 + destination_topic_name = "public/default/dg-test" + disk_mb = 10240 + id = (known after apply) + name = "dg-test-tf" + namespace = "default" + parallelism = 1 + processing_guarantees = "ATMOST_ONCE" + ram_mb = 1024 + tenant = "public" }Plan: 1 to add, 0 to change, 0 to destroy.Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yespulsar_source.test: Creating...pulsar_source.test: Creation complete after 1s [id=public/default/dg-test-tf]Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
You can use snctl, pulsarctl or pulsar-admin to list the source connector submitted using Terraform.
To create a data generator source connector named test, run the following command.
Some connectors require sensitive information, such as passwords, token, to be passed to the connector. And you may not want to expose these sensitive information in the connector configuration.
To solve this problem, you can use the following methods to pass sensitive information to the connector:
Create a secretFor example, the AWS lambda sink connector requires the AWS access key and secret key to be passed to the connector.
You can create a secret in the console UI and pass the secret name to the connector configuration.
The location should be the same as the region of your Pulsar cluster.The awsAccessKey and awsSecretKey is the field name, and the lambda-sink-secret can be any unique name you want to give to the secret.
Only “sensitive” fields are able to load from secrets. You can get the list of sensitive fields from the connector configuration reference.
E.g. AWS lambda sink configurations
Pass secrets to the connector configurationThe following example shows how to create an AWS lambda sink connector named test on StreamNative Cloud using different tools.
The builtin:// is followed by the name of the built-in connector, such as builtin://data-generator.
snctl
pulsarctl
pulsar-admin
Terraform
Rest API
To create an AWS lambda sink connector named test, run the following command.
If you want to list the submitted connector for a double check, run the following command:
./bin/pulsar-admin sinks list
You should see the following output:
[ "test"]
The awsAccessKey and awsSecretKey is the field name, and the lambda-sink-secret is the secret name you created in UI.
To reduce the complexity of your command, you can add the above parameters with values into the conf/client.conf file under the downloaded Pulsar release. Once it’s configured, you can run a simple command instead:
Before creating a connector, it’s highly recommended to do the following:
Check connector availability to ensure the version number of the connector you want to create is supported on StreamNative Cloud.
Go to StreamNative Hub and find the connector-specific docs of your version for configuration reference.
To create a custom Pulsar Connector, you need to upload the connector jar/nar file to the StreamNative Cloud Package service first. Below are the steps: