Skip to content

Instantly share code, notes, and snippets.

View noriyukitakei's full-sized avatar

Noriyuki TAKEI noriyukitakei

View GitHub Profile
@noriyukitakei
noriyukitakei / index.js
Last active September 6, 2018 10:49
【多分わかりやすいサーバーレスアーキテクチャ入門 〜 「Azure Functions」を使って、クラウドネイティブなLINE風チャットアプリを作ろう!! 〜 】addMessage
module.exports = function (context, req) {
// Yahoo!から送られてくるIDに対応した名前を決めておく。チャットの画面に表示される。
const NAMES = {
LBHNLYCPWDV3UTO5HVVBFIXTMA:'たけい'
}
// API Managementから送られてくるYahoo!のIDをリクエストヘッダから取得します。
var uid = req.headers['x-yahoo-uid'];
var json = req.body;
@noriyukitakei
noriyukitakei / policy.xml
Created August 3, 2018 12:16
AzureのAPI Gateway(API Management)を用いてOpenID Connect Providerより発行されたJWTを検証
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized" require-expiration-time="true" require-scheme="Bearer" require-signed-tokens="true" clock-skew="0">
<openid-config url="https://auth.login.yahoo.co.jp/yconnect/v2/.well-known/openid-configuration" />
<issuer-signing-keys>
<!-- 先程のYahooの設定画面で取得したシークレットをBase64したもの -->
<key>XXXXXX</key>
</issuer-signing-keys>
<audiences>
<!-- 先程のYahooの設定画面で取得したClient ID -->
<audience>XXXXXX</audience>
</audiences>
@noriyukitakei
noriyukitakei / ApplicationManifest.xml
Created July 11, 2018 11:19
多分わかりやすいマイクロサービス入門 〜 マイクロサービスフレームワーク「Azure Service Fabric」でLINE風なチャットアプリを作ろう!! 〜
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<ApplicationManifest xmlns="http://schemas.microsoft.com/2011/01/fabric" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="ChatApplicationType" ApplicationTypeVersion="1.0.0">
<Description>Chat Application</Description>
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="ChatWebPkg" ServiceManifestVersion="1.0.0"/>
</ServiceManifestImport>
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="ChatDataPkg" ServiceManifestVersion="1.0.0"/>
</ServiceManifestImport>
<DefaultServices>
@noriyukitakei
noriyukitakei / build.gradle
Created July 11, 2018 08:50
多分わかりやすいマイクロサービス入門 〜 マイクロサービスフレームワーク「Azure Service Fabric」でLINE風なチャットアプリを作ろう!! 〜
apply plugin: 'java'
apply plugin: 'eclipse'
sourceSets {
main {
// ソースのディレクトリを指定します。
java.srcDirs = ['src']
// コンパイルしたクラスの出力先を指定します。
output.classesDir = 'out/classes'
resources {
@noriyukitakei
noriyukitakei / ChatData.java
Created July 11, 2018 08:43
多分わかりやすいマイクロサービス入門 〜 マイクロサービスフレームワーク「Azure Service Fabric」でLINE風なチャットアプリを作ろう!! 〜
package statefulservice;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;
import microsoft.servicefabric.data.ReliableStateManager;
@noriyukitakei
noriyukitakei / build.gradle
Last active July 11, 2018 05:47
多分わかりやすいマイクロサービス入門 〜 マイクロサービスフレームワーク「Azure Service Fabric」でLINE風なチャットアプリを作ろう!! 〜
apply plugin: 'java'
apply plugin: 'eclipse'
sourceSets {
main {
// ソースのディレクトリを指定します。
java.srcDirs = ['src']
// コンパイルしたクラスの出力先を指定します。
output.classesDir = 'out/classes'
resources {
@noriyukitakei
noriyukitakei / ChatRPC.java
Last active July 11, 2018 05:15
多分わかりやすいマイクロサービス入門 〜 マイクロサービスフレームワーク「Azure Service Fabric」でLINE風なチャットアプリを作ろう!! 〜
package rpcmethods;
import java.util.concurrent.CompletableFuture;
import java.util.HashMap;
import microsoft.servicefabric.services.remoting.Service;
// RPCで呼び出されるメソッドを定義したインターフェースです。
public interface ChatRPC extends Service {
// メッセージを発言する処理のインターフェースです。
@noriyukitakei
noriyukitakei / ChatMessage.java
Created July 11, 2018 05:10
多分わかりやすいマイクロサービス入門 〜 マイクロサービスフレームワーク「Azure Service Fabric」でLINE風なチャットアプリを作ろう!! 〜
package rpcmethods;
import java.io.Serializable;
// チャットのメッセージや、そのメッセージを
// 発言したユーザー名などを格納するJava Beanです。
public class ChatMessage implements Serializable{
private static final long serialVersionUID = 1L;
private String name; // メッセージを発言したユーザー名
@noriyukitakei
noriyukitakei / build.gradle
Created July 11, 2018 04:53
多分わかりやすいマイクロサービス入門 〜 マイクロサービスフレームワーク「Azure Service Fabric」でLINE風なチャットアプリを作ろう!! 〜
apply plugin: 'java'
apply plugin: 'eclipse'
sourceSets {
main {
// ソースのディレクトリを指定します。
java.srcDirs = ['src']
// コンパイルしたクラスの出力先を指定します。
output.classesDir = 'out/classes'
resources {
@noriyukitakei
noriyukitakei / ChatWeb.java
Created July 11, 2018 04:49
多分わかりやすいマイクロサービス入門 〜 マイクロサービスフレームワーク「Azure Service Fabric」でLINE風なチャットアプリを作ろう!! 〜
package statelessservice;
import java.util.concurrent.CompletableFuture;
import java.util.logging.Logger;
import java.util.ArrayList;
import java.util.List;
import system.fabric.CancellationToken;
import system.fabric.description.EndpointResourceDescription;
import microsoft.servicefabric.services.communication.runtime.ServiceInstanceListener;