Azure 函数 - 带有 CreateSubscriptionStream 的 GraphQLHttpClient
Posted
技术标签:
【中文标题】Azure 函数 - 带有 CreateSubscriptionStream 的 GraphQLHttpClient【英文标题】:Azure function - GraphQLHttpClient with CreateSubscriptionStream 【发布时间】:2021-10-18 13:17:28 【问题描述】:我有一个要求,比如我想使用 CreateSubscriptionStream 将 GraphQLHttpClient 订阅到函数应用中。
stream.Subscribe(
response =>
Console.WriteLine($"RaceUpdatesSubscription message: \"response.Data\" ");
SendMsgToTopic.SendMessageToTopicAsync(response.Data, _serviceBusConnectionString, _raceUpdatesTopicName).Wait();
,
exception => Console.WriteLine($"message RaceUpdatesSubscription stream failed: exception"),
() => Console.WriteLine($"message RaceUpdatesSubscription stream completed")
);
我怎样才能做到这一点就像有什么方法可以从 azure 函数中使用任何触发器或注册它以进行订阅(发生任何更改然后我需要听)
现在它可以在控制台应用程序中正常工作,但尝试使用函数应用程序。
【问题讨论】:
您可以查看Bindings
来创建自定义输入触发器绑定
【参考方案1】:
将 CreateSubscriptionStream 创建到函数应用中。以下是订阅详情
// To use NewtonsoftJsonSerializer, add a reference to NuGet package GraphQL.Client.Serializer.Newtonsoft
var graphQLClient = new GraphQLHttpClient("https://api.example.com/graphql", new NewtonsoftJsonSerializer());
下面是使用订阅的代码
public class UserJoinedSubscriptionResult
public ChatUser UserJoined get; set;
public class ChatUser
public string DisplayName get; set;
public string Id get; set;
下面是创建订阅的代码
var userJoinedRequest = new GraphQLRequest
Query = @"
subscription
userJoined
displayName
id
"
;
IObservable<GraphQLResponse<UserJoinedSubscriptionResult>> subscriptionStream
= client.CreateSubscriptionStream<UserJoinedSubscriptionResult>(userJoinedRequest);
var subscription = subscriptionStream.Subscribe(response =>
Console.WriteLine($"user 'response.Data.UserJoined.DisplayName' joined")
);
要获得有关 CreateSubscriptionStream 的完整信息,请参阅GraphQL
【讨论】:
我已经编写了此代码块,但问题是如何将此订阅与 azure 函数应用程序一起使用。我找到了解决方案,我使用 FunctionsStartup 的 azure configure 方法订阅 GraphQl 更改。谢谢 [assembly: FunctionsStartup(typeof(MyNamespace.Startup))] namespace MyNamespace public class Startup : FunctionsStartup public override void Configure(IFunctionsHostBuilder builder) // 在这里注册 grapgql 订阅 ''以上是关于Azure 函数 - 带有 CreateSubscriptionStream 的 GraphQLHttpClient的主要内容,如果未能解决你的问题,请参考以下文章
带有 blobtrigger 的 Azure 函数 - 更新元数据
带有 QueueTrigger 的 Azure 函数:是不是可以仅配置存储帐户 URL 并使用托管标识访问队列?
带有数据库的 Azure 函数连接字符串 使用实体框架的第一种方法
如何在 azure 函数 http 触发器中触发失败,并带有自定义错误响应