@@ -5,7 +5,7 @@ function finish {
55 echo " "
66 # Delete the cluster (if available)
77 echo " (Cleanup) Deleting Kafka cluster."
8- awslocal kafka delete-cluster --cluster-arn " arn:aws:kafka:us-east-1:000000000000:cluster/unicorn-ride-cluster " 2> /dev/null || true
8+ awslocal kafka delete-cluster --cluster-arn $cluster_arn 2> /dev/null || true
99 # Delete the schema registry
1010 echo " (Cleanup) Deleting registry."
1111 awslocal glue delete-registry --registry-id RegistryName=unicorn-ride-request-registry 2> /dev/null || true
3333fi
3434
3535step " Start with creating a Kafka cluster..."
36- (set -x; awslocal kafka create-cluster \
36+ cluster_arn= $ ( set -x; awslocal kafka create-cluster \
3737 --cluster-name " unicorn-ride-cluster" \
3838 --kafka-version " 2.2.1" \
3939 --number-of-broker-nodes 1 \
40- --broker-node-group-info " {\" ClientSubnets\" : [], \" InstanceType\" :\" kafka.m5.xlarge\" }" )
40+ --broker-node-group-info " {\" ClientSubnets\" : [], \" InstanceType\" :\" kafka.m5.xlarge\" }" | jq -r .ClusterArn )
4141
42- state=$( set -x; awslocal kafka describe-cluster --cluster-arn " arn:aws:kafka:us-east-1:000000000000:cluster/unicorn-ride-cluster " | jq -r .ClusterInfo.State)
42+ state=$( set -x; awslocal kafka describe-cluster --cluster-arn $cluster_arn | jq -r .ClusterInfo.State)
4343while [ " $state " != ACTIVE ]; do
4444 echo " Waiting for Kafka cluster to become ACTIVE (current status: $state )..."
4545 sleep 4
46- state=$( awslocal kafka describe-cluster --cluster-arn " arn:aws:kafka:us-east-1:000000000000:cluster/unicorn-ride-cluster " | jq -r .ClusterInfo.State)
46+ state=$( awslocal kafka describe-cluster --cluster-arn $cluster_arn | jq -r .ClusterInfo.State)
4747done
4848
49- bootstrap_broker=$( set -x; awslocal kafka get-bootstrap-brokers --cluster-arn " arn:aws:kafka:us-east-1:000000000000:cluster/unicorn-ride-cluster " | jq -r .BootstrapBrokerString)
49+ bootstrap_broker=$( set -x; awslocal kafka get-bootstrap-brokers --cluster-arn $cluster_arn | jq -r .BootstrapBrokerString)
5050echo " Kafka Bootstrap Broker: $bootstrap_broker "
5151
5252step " The Kafka cluster is ready. Let's create a Glue Schema Registry..."
5353(set -x; awslocal glue create-registry --registry-name unicorn-ride-request-registry)
5454
5555step " Create the AVRO schema in the new registry (with compatibility BACKWARD)..."
56- (set -x; awslocal glue create-schema \
56+ schema_arn= $ ( set -x; awslocal glue create-schema \
5757 --registry-id RegistryName=" unicorn-ride-request-registry" \
5858 --schema-name unicorn-ride-request-schema-avro \
5959 --compatibility BACKWARD \
6060 --data-format AVRO \
61- --schema-definition " file://producer/src/main/resources/avro/unicorn_ride_request_v1.avsc" )
61+ --schema-definition " file://producer/src/main/resources/avro/unicorn_ride_request_v1.avsc" | jq -r .SchemaArn )
6262
6363step " Check if the schema has been created successfully..."
6464(set -x; awslocal glue get-schema \
65- --schema-id SchemaArn=" arn:aws:glue:us-east-1:000000000000:schema/unicorn-ride-request-registry/unicorn-ride-request-schema-avro " )
65+ --schema-id SchemaArn=$schema_arn )
6666
6767step " Check if the schema version has been created correctly..."
6868(set -x; awslocal glue get-schema-version \
69- --schema-id SchemaArn=" arn:aws:glue:us-east-1:000000000000:schema/unicorn-ride-request-registry/unicorn-ride-request-schema-avro " \
69+ --schema-id SchemaArn=$schema_arn \
7070 --schema-version-number LatestVersion=True)
7171
7272step " Prepare the Java clients (clean modules, generate AVRO model classes, compile the modules)..."
@@ -83,22 +83,22 @@ step "Run a new producer (automatically registers a new schema which removes a r
8383
8484step " Get a diff between the initial version and the version registered by the new producer..."
8585(set -x; awslocal glue get-schema-versions-diff \
86- --schema-id SchemaArn=" arn:aws:glue:us-east-1:000000000000:schema/unicorn-ride-request-registry/unicorn-ride-request-schema-avro " \
86+ --schema-id SchemaArn=$schema_arn \
8787 --schema-diff-type SYNTAX_DIFF \
8888 --first-schema-version-number VersionNumber=1 \
8989 --second-schema-version-number LatestVersion=True | jq -r)
9090
91- step " Expected failure: Execute an incompatible (outdated) consumer..."
92- (set -x; mvn -pl consumer exec:java -Dexec.args=" --bootstrap-servers $bootstrap_broker " )
93-
9491step " Expected failure: Execute a producer which tries to register an incompatible schema..."
9592(set -x; mvn -pl producer-3 exec:java -Dexec.args=" --bootstrap-servers $bootstrap_broker " )
9693
9794step " Check that the newly registered schema is in state 'FAILED'..."
9895awslocal glue get-schema-version \
99- --schema-id SchemaArn=" arn:aws:glue:us-east-1:000000000000:schema/unicorn-ride-request-registry/unicorn-ride-request-schema-avro " \
96+ --schema-id SchemaArn=$schema_arn \
10097 --schema-version-number VersionNumber=3
10198
99+ step " Expected failure: Execute an incompatible (outdated) consumer..."
100+ (set -x; mvn -pl consumer exec:java -Dexec.args=" --bootstrap-servers $bootstrap_broker " )
101+
102102step " Execute a compatible (updated) consumer..."
103103(set -x; mvn -pl consumer-2 exec:java -Dexec.args=" --bootstrap-servers $bootstrap_broker " )
104104
0 commit comments