サーバーレスで作ろう! Azure Cosmos DB と Azure Functions... / CosmosDB and Functions

サーバーレスで作ろう! Azure Cosmos DB と Azure Functions... / CosmosDB and Functions

de:code 2019 で発表したスライドです。

スケーラブルで高速なバックエンドの仕組みを実現するには、サーバーレスなデータ ストアとジョブ実行環境の組み合わせが近道です。

このセッションでは、Azure Cosmos DB と Azure Functions の組み合わせで実現できるクラウド ネイティブなバックエンドの作り方について、OSS 技術を使ったモダンな開発環境を使ったデモを中心に解説します。

Ff7f1f76468f46a1c5c84b9238a4b162?s=128

miyake

May 29, 2019
Tweet

Transcript

  1. None
  2. None
  3. None
  4. None
  5. None
  6. None
  7. None
  8. None
  9. None
  10. None
  11. None
  12. None
  13. Logic App

  14. Cosmos DB

  15. Azure Functions (Node.js) import { AzureFunction, Context } from '@azure/functions';

    const cosmosDBTrigger: AzureFunction = async function( context: Context, documents: Tweet[] ): Promise<void> { if (!!documents && documents.length > 0) { context.log('Document: ', documents[0].tweetText); } context.bindings.signalRMessages = [ { target: 'newMessage', arguments: [documents] } ]; };
  16. Azure Functions (.NET) public class Startup : FunctionsStartup { public

    override void Configure(IFunctionsHostBuilder builder) { builder.Services.AddDbContext<AppDbContext>((provider, options) => { var configuration = provider.GetRequiredService<IConfiguration>(); options.UseSqlServer(configuration.GetConnectionString("SqlConnection")); }); } } public Function1(AppDbContext context) { _context = context; }
  17. SQL Database Serverless

  18. Vue.js signalr.js created: async function(): Promise<void> { console.log("VUE_APP_HOST: ", process.env.VUE_APP_HOST);

    // SignalR const connection = new HubConnectionBuilder() .withUrl(this.baseUrl) .configureLogging(LogLevel.Information) .build(); console.log("connecting..."); // SignalR Service connection .start() .then(() => console.log("connected!")) .catch(console.error); // SignalR connection.on("newMessage", (tweets: Tweet[]) => this.displayTweet(tweets)); // connection.onclose(() => console.log("disconnected")); }
  19. None
  20. None
  21. INFO

  22. INFO

  23. None