summaryrefslogtreecommitdiffstats
path: root/examples/boto3/topic_with_endpoint.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/boto3/topic_with_endpoint.py')
-rwxr-xr-xexamples/boto3/topic_with_endpoint.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/examples/boto3/topic_with_endpoint.py b/examples/boto3/topic_with_endpoint.py
new file mode 100755
index 000000000..3137cee7d
--- /dev/null
+++ b/examples/boto3/topic_with_endpoint.py
@@ -0,0 +1,41 @@
+#!/usr/bin/python
+
+import boto3
+import sys
+import urlparse
+from botocore.client import Config
+
+if len(sys.argv) == 3:
+ # topic name as first argument
+ topic_name = sys.argv[1]
+ # region name as second argument
+ region_name = sys.argv[2]
+elif len(sys.argv) == 2:
+ # topic name as first argument
+ topic_name = sys.argv[1]
+ region_name = ""
+else:
+ print('Usage: ' + sys.argv[0] + ' <topic name> [region name]')
+ sys.exit(1)
+
+# endpoint and keys from vstart
+endpoint = 'http://127.0.0.1:8000'
+access_key='0555b35654ad1656d804'
+secret_key='h7GhxuBLTrlhVUyxSPUKUV8r/2EI4ngqJxD7iBdBYLhwluN30JaT3Q=='
+
+client = boto3.client('sns',
+ endpoint_url=endpoint,
+ aws_access_key_id=access_key,
+ region_name=region_name,
+ aws_secret_access_key=secret_key,
+ config=Config(signature_version='s3'))
+
+# to see the list of available "regions" use:
+# radosgw-admin realm zonegroup list
+
+# this is standard AWS services call, using custom attributes to add AMQP endpoint information to the topic
+
+endpoint_args = 'push-endpoint=amqp://127.0.0.1:5672&amqp-exchange=ex1&amqp-ack-level=broker'
+attributes = {nvp[0] : nvp[1] for nvp in urlparse.parse_qsl(endpoint_args, keep_blank_values=True)}
+
+print(client.create_topic(Name=topic_name, Attributes=attributes))