そのチュートリアルのコードは正しく機能しません。ユーザー定義のカスタム プロパティ "MessageNumber" の値を実際にフィルター処理する 2 つのサブスクリプション (LowMessages と HighMessages) を作成するために使用した Java コードを次に示します。これが機能することがわかりました。ruleInfo に明示的に名前 (「RULENAME」) を付ける必要があり、サブスクリプションのデフォルトの「AllMatch」ルールも明示的に削除する必要があることに注意してください (そうしないと、フィルタリングが行われません)。
SubscriptionInfo subInfo = new SubscriptionInfo("LowMessages");
CreateSubscriptionResult result = service.createSubscription("TestTopic", subInfo);
RuleInfo ruleInfo = new RuleInfo("RULENAME");
ruleInfo = ruleInfo.withSqlExpressionFilter("MessageNumber <= 3");
CreateRuleResult ruleResult = service.createRule("TestTopic", "LowMessages", ruleInfo);
service.deleteRule("TestTopic", "LowMessages", "$Default");
SubscriptionInfo subInfo2 = new SubscriptionInfo("HighMessages");
CreateSubscriptionResult result2 = service.createSubscription("TestTopic", subInfo2);
RuleInfo ruleInfo2 = new RuleInfo("RULENAME2");
ruleInfo2 = ruleInfo2.withSqlExpressionFilter("MessageNumber > 3");
CreateRuleResult ruleResult2 = service.createRule("TestTopic", "HighMessages", ruleInfo2);
service.deleteRule("TestTopic", "HighMessages", "$Default");