
å€ãã®å Žåãè€æ°ã®ç°çš®ã·ã¹ãã ããªã³ã¯ãããããããã®åæã確ä¿ããå¿
èŠããããŸãã ãã¡ãããã±ãŒã¹ã¯ç°ãªããŸãããç¬èªã®ãœãªã¥ãŒã·ã§ã³ãäœæããããšã¯ãéåžžãæéãšãªãœãŒã¹ã®äž¡æ¹ã§éåžžã«é«äŸ¡ã§ãã
æ·±å»ãªäŒæ¥ã®äžã§ããããããAmazonïŒSQSïŒãšMicrosoftïŒService BusïŒã®ã¯ã©ãŠããœãªã¥ãŒã·ã§ã³ãåºå¥ã§ããŸãã ãã ãããããªãã¯ã¯ã©ãŠãã¯æ¥éã«çºå±ããŠããŸããããã®ãããªãœãªã¥ãŒã·ã§ã³ã¯åžžã«ãªã³ãã¬ãã¹ãšåŒã°ãããã®ã§ã¯ãããŸããã èšãæããã°ããã®ãããªãœãªã¥ãŒã·ã§ã³ãå¿
èŠã§ãããç§ãã¡èªèº«ã®éããé åã«ãããŸãã ããã«é¢ããŠãMicrosoftã¯Service Busããã©ã€ããŒãã¯ã©ãŠãã§ããŸãã¯å°ãªããšãWindows 7以éãã€ã³ã¹ããŒã«ããã1å°ã®ãã·ã³ã§å©çšã§ããããã«ããããšã«ãããæèœãªäžæ©ãèžã¿åºããŸããã Service Bus 1.0ã§ã¯ãPowerShellã«ãã管çãå©çšå¯èœã§ãããããªãªãŒã¹1.1ã§ã¯ãAzure Packã³ã³ãœãŒã«ã«çµ±åã§ããããã«ãªããŸããã
ãã®èšäºã§ã¯ãWindows Serverã®Service Busãæ§æããããã»ã¹ã«ã€ããŠãå¯èœãªéã詳现ã«åçã§èª¬æããŸãã ç°ãªããœãŒã¹ã®éšåãæ°åèªãããããããã»ã¹å
šäœãäžåºŠèŠãæ¹ãè¯ãããã§ãã
泚æãã©ãã£ãã¯ïŒ ã«ããã®äžã«ããããã®åçã
ãããã£ãŠã
Azure Service Busã¯ã¯ã©ãŠãããŒã¹ã®ãŠãããŒãµã«ã¡ãã»ãŒãžã³ã°ã·ã¹ãã ã§ãã
ã©ããªæ©èœãæã£ãŠããããçè§£ããããã«ãã«ããŽãª
Messagingããããã€ãã®ãã¿ãŒã³ãæãåºã
ãŸã ã
ç§ã®äž»èгçãªæèŠã§ã¯ããã®äž»é¡ã«é¢ããæé«ã®æ¬ã®1ã€ã¯ã
ãšã³ã¿ãŒãã©ã€ãºçµ±åãã¿ãŒã³ã§ããã¡ãã»ãŒãžã³ã°ãœãªã¥ãŒã·ã§ã³ã®èšèšãæ§ç¯ãããã³å±é ïŒç¿»èš³ïŒ
ãšã³ã¿ãŒãã©ã€ãºã¢ããªã±ãŒã·ã§ã³çµ±åãã³ãã¬ãŒã ïŒã¯ã次ã®ãã¿ãŒã³ããããããŸãã
ãã€ã³ãããŒãã€ã³ããã£ãã«
ãã€ã³ãããŒãã€ã³ããã£ãã«ã«ãããåã
ã®ã¡ãã»ãŒãžã1人ã®åä¿¡è
ã®ã¿ã«ãã£ãŠæ¶è²»ãããããšãä¿èšŒãããŸãã ãã£ãã«ã§ã¯ã倿°ã®åä¿¡è
ãåæã«ã¡ãã»ãŒãžãåŠçã§ããŸãããç¹å®ã®ã¡ãã»ãŒãžãåä¿¡ã§ããã®ã¯ãã®ãã¡ã®1人ã ãã§ãã è€æ°ã®åä¿¡è
ãåæã«ã¡ãã»ãŒãžãæ¶è²»ããããšãããšããã£ãã«ã¯ãã®ãã¡ã®1人ã ããæåããããã«æ³šæããŸãã åä¿¡è
ã¯ã¢ã¯ã·ã§ã³ã調æŽããå¿
èŠã¯ãããŸããã
ãã€ã³ãããŒãã€ã³ããã£ãã«ã«åä¿¡è
ã 1人ãã
ããªãå Žåãã¡ãã»ãŒãžã¯1åã ãæ¶è²»ãããŸãã ãã£ãã«ãè€æ°ã®åä¿¡è
ã«ãã£ãŠãªãã¹ã³ãããŠããå Žåããããã¯
ç«¶åããã³ã³ã·ã¥ãŒãã«ãªãããã£ãã«ã¯ãã®ãã¡ã®1人ã®ã¿ãã¡ãã»ãŒãžãåä¿¡ããããã«ããŸãã ãã£ãã«ããšã®ã¯ãŒã¯ããŒãã¯ãè€æ°ã®ã³ã³ãã¥ãŒã¿ãŒäžã®è€æ°ã®ã¢ããªã±ãŒã·ã§ã³å
ã§å®è¡ãããè€æ°ã®ã³ã³ã·ã¥ãŒããŒã«åæ£ã§ããããããã®ã¡ãã»ãŒãžæ¶è²»ãšåŠçã®ãã¿ãŒã³ã¯å®å
šã«ã¹ã±ãŒãªã³ã°ãããŸãã
ã¡ãã»ãŒãžãåä¿¡ããã®ã§ã¯ãªãããã£ãã«ãèŽããŠãããã¹ãŠã®åä¿¡è
ãã¡ãã»ãŒãžãåä¿¡ããå¿
èŠãããå Žåã¯
ããããªãã·ã¥/ãµãã¹ã¯ã©ã€ããã£ãã«ã䜿çš
ããŸã ã

ãããªãã·ã¥/ãµãã¹ã¯ã©ã€ããã£ãã«
ãããªã±ãŒã·ã§ã³-ãµãã¹ã¯ãªãã·ã§ã³ãã£ãã«ã¯æ¬¡ã®ããã«åäœããŸãã1ã€ã®å
¥åãã£ãã«ããããåãµãã¹ã¯ã©ã€ãã«1ã€ãã€ãè€æ°ã®åºåãã£ãã«ã«åå²ãããŠããŸãã ã¡ãã»ãŒãžããã£ãã«ã§å
¬éããããšããããªãã·ã¥/ãµãã¹ã¯ã©ã€ããã£ãã«ã¯ã¡ãã»ãŒãžã®ã³ããŒãååºåãã£ãã«ã«é
ä¿¡ããŸãã ãã£ãã«ã®åãåºåãã«ã¯ãã¡ãã»ãŒãžã1åã ãæ¶è²»ã§ãããµãã¹ã¯ã©ã€ããŒã1人ã ãããŸãã ãã®ãããåãµãã¹ã¯ã©ã€ããŒã¯ã¡ãã»ãŒãžã1åã ãåä¿¡ããŸãããã®åŸãæ¶è²»ãããã¡ãã»ãŒãžã®ã³ããŒã¯å¯Ÿå¿ããåºåãã£ãã«ããæ¶ããŸãã

ç¡å¹ãªã¡ãã»ãŒãžãã£ãã«
誀ã£ã圢åŒã®ã¡ãã»ãŒãžããŸãã¯ãã®ãã£ãã«ã«å¿
èŠãªãã£ãŒã«ããå«ãŸããŠããªãã¡ãã»ãŒãžã¯ãæ£ããåŠçã§ããŸããããæ£åŒã«ã¯é
ä¿¡ãããŸãã ãã®å Žåãåä¿¡è
ã¯ãããã®ã¡ãã»ãŒãžã
ç¡å¹ãªã¡ãã»ãŒãžã®
ãã£ãã«ã«ç§»åããŠããã®åŸã®åé¡ã®èšºæã«
䜿çšã§ããŸã ã
ç¡å¹ãªã¡ãã»ãŒãžãåŠçããææ®µããªãå ŽåïŒ
ç¡å¹ãªã¡ãã»ãŒãžã®ãã£ãã«ãããå Žå ïŒ

å€ãã®ã¡ãã»ãŒãžã³ã°ã·ã¹ãã ã¯ã
dead-letter channelãšåŒã°ããåæ§ã®æŠå¿µãå®è£
ããŠã
ãŸã ã æ£åžžã«é
ä¿¡ããã³åä¿¡ããããåŠçãããªãã£ãã¡ãã»ãŒãž
ãå«ã
ç¡å¹ãªã¡ãã»ãŒãžãã£ãã«ãšã¯ç°ãªãã
ãããã¬ã¿ãŒãã£ãã«ã¯ãã¡ãã»ãŒãžã³ã°ã·ã¹ãã ã«ãã£ãŠé
ä¿¡ã§ããªãã£ãã¡ãã»ãŒãžçšã§ãã
ãããã¬ã¿ãŒãã£ã³ãã«
ã¡ãã»ãŒãžã³ã°ã·ã¹ãã ã¯ãã¡ãã»ãŒãžãé
ä¿¡ã§ããªããšå€æããããã¡ãã»ãŒãžã®åŠçæ¹æ³ã決å®ããå¿
èŠããããŸãã
ã¡ãã»ãŒãžãåé€ããã
ããããã¬ã¿ãŒãã£ãã«ã«ãªãã€ã¬ã¯ãã§ããŸãã

é
éä¿èšŒ
é
ä¿¡ä¿èšŒãšã¯ãéåæã¢ãŒãã§åä¿¡è
ã«ã¡ãã»ãŒãžãéä¿¡ããåä¿¡ã®æåãŸãã¯é
ä¿¡äžèœã®æ£ããéç¥ã®ã¿ãä¿èšŒããæ©èœãæå³ãããšçè§£ãããŠããŸãã

ã¡ãã»ãŒãžãã¹
ã¡ãã»ãŒãžãã¹ã¯ãæšæºçãªããŒã¿ã¢ãã«ãã³ãã³ãã®æšæºã»ãããããã³ç°ãªãã·ã¹ãã ãå
±éã®ã€ã³ã¿ãŒãã§ã€ã¹ã»ãããä»ããŠçžäºã«éä¿¡ã§ããã¡ãã»ãŒãžã³ã°ã€ã³ãã©ã¹ãã©ã¯ãã£ã®çµã¿åããã§ãã

Azure Service Busã¯ãäžèšã®ãã¹ãŠã®ãã¿ãŒã³ãå®è£
ããŸãã
ä»ãç§ãã¡ã¯è©±ããŠããããšãçè§£ããŠããŸãã è«ççãªè³ªåã¯ããç§ã¯åãããšãããããšãã§ã
ãŸãããç§ã®é åã®
æºã§ïŒã

ã¯ããã§ããŸããå®å
šã«ç¡æã§ãã Service Busãéå§ããã«ã¯ãWindows 7以éãšMS SQL Server 2012 Expressã®ã¿ãå¿
èŠã§ãã
Azure Packã®äœ¿ããããã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠService Busã管çããå Žåã¯ãWindows Server 2012+ãå¿
èŠã§ãã
Microsoft Web Platform Installerãã
Windows Server 1.1çšã®Service BusãããŠã³ããŒãã§ããŸãã
Azure Pack㯠ããã ïŒWindows Azure Packã®ã€ã³ã¹ããŒã«ïŒããŒã¿ã«ãšAPI ExpressïŒããããŸãã¯
çŽæ¥ãªã³ã¯ ããããŠã³ããŒãã§ããŸãã
ã©ã®ããã«æ©èœããŸããïŒService Busã¯ãããŒã¿ããŒã¹ã䜿çšããŠã€ã³ãã©ã¹ãã©ã¯ãã£ããŒã¿ãšã¡ãã»ãŒãžã³ã³ãããä¿åããŸãïŒã¡ãã»ãŒãžã¯ãããã®éã§åçã«åæ£ãããŸãïŒã ããŒã¿ããŒã¹ãµãŒããŒãšService Bus
㯠ãç°ãªããã·ã³ã«é
眮
ã§ããŸã ã
Azure Packã䜿çšããŠãWebã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠService Busã管çã§ããŸãã Azure Pack
ã¯å¥ã®ãã·ã³ã«é
眮ããããšãã§ããŸãããä»äºã®ããã«ã¯ãŠãŒã¶ãŒã«é¢ããããŒã¿ãªã©ãä¿åããããŒã¿ããŒã¹ãå¿
èŠã§ãã
ãã®äŸã§ã¯ãã€ã³ã¿ãŒãããã§ãã³ã°ãã3ã€ã®ä»®æ³ãã·ã³ããããã€ããŸãã
- æåã«ã Service Busãã¡ãã»ãŒãžãä¿åããããŒã¿ããŒã¹ãå±éããŸãã
- 2çªç®ã®ãµãŒãã¹ãã¹ã
- 3çªç®ã® Azureããã¯ãšãã®DBã
ãã¹ãŠåã
ãã®ã1å°ã®ãã·ã³ã«å±éã§ããŸãã
æŽæ°ããã管çããŒã¿ã«ã䜿çšããŠãMicrosoft Azureã«ä»®æ³ãã·ã³ãäœæããŸãã
Service BusãšAzure Packã®èšå®ã«ã€ããŠèªã¿å§ããåã«ãå
¬åŒãªãœãŒã¹ã®çšèªãçè§£ããããšã匷ããå§ãããŸãã
ããŒã¿ããŒã¹ã䜿çšããä»®æ³ãã·ã³ã®ã»ããã¢ããããŒã¿ããŒã¹ã䜿çšããä»®æ³ãã·ã³ã®ã»ããã¢ãããã¹ãåãšç®¡çè
ã¢ã«ãŠã³ãæ
å ±ãå
¥åããŠãã ãã

æéãšèªåæŽæ°ãèšå®ãã

ä»®æ³ãããã¯ãŒã¯ãäœæããŸãïŒhello-habr-db

å€éšIPã¢ãã¬ã¹ãäºçŽããŸãïŒhello-habr-db

ããŒã¿ããŒã¹ãå€éšã§åäœããããã«ããŒããéããŸããã

ãã·ã¢ã«è¿ãå°ççäœçœ®ã瀺ããŸã

Azureãä»®æ³ãã·ã³ãäœæããŠããéããã°ããåŸ
ã¡ãŸãããã ãã®åŸãè©³çŽ°ãªæ
å ±ãåãåããŸãã

ããã§ãå¿
èŠãªãœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«ãéå§ã§ããŸãã
1ïŒMicrosoft SQL Server 2014 Express
è±èªïŒïŒïŒ ïŒãšããã§ãæ¢ã«10 GBãæäŸããŠããŸãïŒ
2ïŒManagement Studio 2014
ãããè¡ãåã«ã次ãå®è¡ããŸãã
1ïŒ.NET Framework 3.5ãã€ã³ã¹ããŒã«ããŸã

2ïŒãã¡ã€ã¢ãŠã©ãŒã«ããªãã«ããŸãïŒå®éšãå®äºããããã«
ãããèªåã§ç¹°ãè¿ããªãã§ãã ãã ïŒ

MS SQL Serverãã€ã³ã¹ããŒã«ãããšãã
æ··åèªèšŒã¢ãŒããéžæããå¿
èŠããã
ãŸã ïŒããã¯éèŠã§ãïŒ

ã€ã³ã¹ããŒã«åŸãå€éšã§åäœããããã«MS SQL Serverãæ§æããŸã


ãã®ä»®æ³ãã·ã³ã¯æºåãã§ããŠããŸãã åèµ·åããããšãå¿ããªãã§ãã ããã
Windows Serverã®Service Busã䜿çšããŠä»®æ³ãã·ã³ãæ§æããWindows Serverã®Service Busã䜿çšããŠä»®æ³ãã·ã³ãæ§æãããã¹ãåãšç®¡çè
ã¢ã«ãŠã³ãæ
å ±ãå
¥åããŠãã ãã

ä»®æ³ãããã¯ãŒã¯ãäœæããŸãïŒhello-habr-
s b

å€éšIPã¢ãã¬ã¹ãäºçŽããŸãïŒhello-habr-
s b

å¥ã®ã¹ãã¬ãŒãžã¢ã«ãŠã³ããäœæããŸãããïŒããã¯éèŠã§ã¯ãããŸãããïŒïŒhellohabr
s b

Service Busã®æ©èœãšãAzure Packãžã®ã¢ã¯ã»ã¹çšã®å°è±¡çãªããŒãã®ãªã¹ããéããŸã

ä»®æ³ãã·ã³ãååŸãã

ãã¡ã€ã¢ãŠã©ãŒã«ããªãã«ããŸãïŒå®éšãå®äºããããã«
ãããèªåã§ç¹°ãè¿ããªãã§ãã ãã ïŒ

Microsoft Webãã©ãããã©ãŒã ã®ã€ã³ã¹ããŒã©ãŒãå®è¡ããæ€çŽ¢ã§Service Bus 1.1ãèŠã€ããŸã

2ã€ã®ãã€ã³ããéžæããŠãã€ã³ã¹ããŒã«ãã¯ãªãã¯ããŸã

次ã«ãã³ãã³ãã©ã€ã³çµç±ã§makecert.exeãŠãŒãã£ãªãã£ã䜿çšããŠãïŒã€ã³ã¿ãŒãããäžã®å¥ã®ãã·ã³äžã®ã¯ã©ã€ã¢ã³ãããïŒWindows Serverã®Service Busãžã®ã¢ã¯ã»ã¹èšŒææžãçæããŸãã Windows 8.1ã§ã¯ãéåžžãæ¬¡ã®ãã£ã¬ã¯ããªã«ãããŸãã
CïŒ\ Program FilesïŒx86ïŒ\ Microsoft SDKs \ Windows \ v7.1A \ Bin
makecert.exe -r -pe -n "CN=hello-habr-sb.cloudapp.net, CN=hello-habr-sb" -e 11/11/2022 -eku 1.3.6.1.5.5.7.3.2 -ss My -sr "LocalMachine" -sky Exchange -a sha256 -sy 24 -len 2048 "hello-habr-sb.cloudapp.net.cer"
ãã¡ã€ã«
hello-habr-sb.cloudapp.net.cerã
ååŸããŸãã
ãµãŒããŒããã³
ã¯ã©ã€ã¢ã³ãã®Service Busã®èšŒææž-ããŒã«ã«ã³ã³ãã¥ãŒã¿ãŒïŒä¿¡é Œãããã«ãŒãCAïŒã«ã€ã³ã¹ããŒã«ã
ãŸã ã


ããã§ãService Busãæ§æããæºåããã¹ãŠæŽããŸããã
Service Bus Configurationãèµ·åã
ãŸã ã
ã«ã¹ã¿ã èšå®ã«èå³ããããŸã

ããŒã¿ããŒã¹ã§
hello-habr-db.cloudapp.netã䜿çšããŠä»®æ³ãã·ã³ã®DNSåãæå®ããŸãã æ¥ç¶ã確èªããŠãã ããã

ã¡ãã»ãŒãžãåŠçããã³ã³ããã®æ°ãèšå®ãããã¹ã¯ãŒããå
¥åããŸã

èšŒææžãšããŠã以åã«çæãããhello-habr-sb.cloudapp.net.cerãéžæããŸã

ããŒãã9000ãã10000ã«å€æŽããŸã


Azure PackããŒã¿ã«ãä»ããŠãã®ãã¡ãŒã ã管çããããã¯ã¹ããªã³ã«ããŸãã 管çè
ããŒã¿ã«ãšããã³ãããŒã¿ã«ã®ãã¹ã¯ãŒããæå®ãã

ãã¹ãŠã®ã¢ã¯ã·ã§ã³ãæ£ããè¡ãããå Žåããã¹ãŠãæ£åžžã§ãããšéç¥ãããŸã

次ã«ãService Bus FarmïŒSBFarmïŒã®DNSåã倿Žããå¿
èŠããããŸãïŒããã¯ãã¯ã©ã€ã¢ã³ããå¥ã®ãã·ã³ããã€ã³ã¿ãŒãããã«ã¢ã¯ã»ã¹ã§ããããã«ããããã«å¿
èŠã§ãïŒã ããã¯ã
Service Bus PowerShellã䜿çšããŠïŒç®¡çè
ç¹æš©ã§ïŒå®è¡ã§ããŸãã ã³ãã³ãã®ã·ãŒã±ã³ã¹ãå®è¡ããŸãã
Get-SBFarm Stop-SBFarm âVerbose Set-SBFarm -FarmDns 'hello-habr-sb.cloudapp.net' Update-SBHost âVerbose Start-SBFarm âVerbose
ïŒ
Start-SBFarmã«ã¯éåžžã«é·ãæéãããããŸããã
ããã§åé¡ãããŸãã ïŒ
.NETã¯ã©ã€ã¢ã³ããä»ãããã®åŸã®ãã«ã¹ãã§ãã¯ã§ã¯ã以åã«äœæããServiceBusDefaultNamespaceã«SASããŒãå²ãåœãŠãŸãã
New-SBAuthorizationRule -NamespaceName ServiceBusDefaultNamespace -Name MainRule -Rights Manage, Send, Listen
å¿çãšããŠã次ã®ãã®ãååŸããŸãã
KeyName : MainRule PrimaryKey : ylF6GWmH6rlZg1ekQMQrLQnht4kwVFWHAfyB8HkrZvM= SecondaryKey : ZYBpdiCYgZNfwOC37x6DEDLxhv+qan6CJZT0vG3GvTk= Rights : {Manage, Send, Listen} CreatedTime : 3/22/2015 12:53:23 AM ModifiedTime : 3/22/2015 12:53:23 AM ConnectionString : Endpoint=sb://hello-habr-sb.cloudapp.net/ServiceBusDefaultNamespace; StsEndpoint=https://hello-habr-sb.cloudapp.net:10355/ServiceBusDefaultNamespace; RuntimePort=10354; ManagementPort=10355; SharedAccessKeyName=MainRule; SharedAccessKey=ylF6GWmH6rlZg1ekQMQrLQnht4kwVFWHAfyB8HkrZvM=
ãã®ãã·ã³ã§ã®æåŸã®ã¢ã¯ã·ã§ã³ïŒ
ãã¹ããã¡ã€ã«ã«ãšã³ããªã远å
ããŸãïŒCïŒ\ Windows \ System32 \ãã©ã€ããŒ\ãªã©ïŒ
127.0.0.1 hello-habr-sb.cloudapp.net
ã§ã¯ã3çªç®ã®ãã·ã³ã§Azure Packãã»ããã¢ããããŠã¿ãŸãããã
Azure Packã䜿çšããŠä»®æ³ãã·ã³ãæ§æããAzure Packã䜿çšããŠä»®æ³ãã·ã³ãæ§æãããã¹ãåãšç®¡çè
ã¢ã«ãŠã³ãæ
å ±ãå
¥åããŠãã ãã

ä»®æ³ãããã¯ãŒã¯ãäœæããŸãïŒhello-habr-
wap
å€éšIPã¢ãã¬ã¹ãäºçŽããŸãïŒhello-habr-
wap
å¥ã®ã¹ãã¬ãŒãžã¢ã«ãŠã³ããäœæããŸãïŒããã¯éèŠã§ã¯ãããŸãããïŒïŒhellohabr
wap
Azure Pack管çããŒã¿ã«ã«ã¢ã¯ã»ã¹ããããã®ããŒããéããŸããã

ä»®æ³ãã·ã³ãååŸãã

ãŸããAzure Packã¯ããŒã¿ãããŒã¿ããŒã¹ã«æ ŒçŽããŸãããã®ããžãã¯ãService Busããžãã¯ããåé¢ããããã«ãå¥ã®ããŒã¿ããŒã¹ãµãŒããŒãäœæããŸãããæ¢ã«ãã®ãã·ã³äžã«ãããŸãã ãããè¡ãã«ã¯ãåã³æ¬¡ã®ãã®ãå¿
èŠã§ãã
1ïŒMicrosoft SQL Server 2014 Express
è±èªïŒïŒïŒ2ïŒManagement Studio 2014
ã€ã³ã¹ããŒã«ãéå§ããåã«ãæ¬¡ã®æé ãå®è¡ããŸãã
1ïŒ.NET Framework 3.5ãã€ã³ã¹ããŒã«ããŸã

2ïŒãã¡ã€ã¢ãŠã©ãŒã«ããªãã«ããŸãïŒå®éšãå®äºããããã«
ãããèªåã§ç¹°ãè¿ããªãã§ãã ãã ïŒ

MS SQL Serverãã€ã³ã¹ããŒã«ãããšãã
æ··åèªèšŒã¢ãŒããéžæããå¿
èŠããã
ãŸã ïŒããã¯éèŠã§ãïŒ

ãã®åŸãAzure Pack管çããŒã¿ã«ãæ©èœããããã«IISãäžããå¿
èŠããããŸãã

IISã®ç®¡çãšã»ãã¥ãªãã£ã«é¢é£ããããã€ãã®ã³ã³ããŒãã³ããã€ã³ã¹ããŒã«ããŸãã





次ã«ãããã©ã«ãèšå®ã§
Azure Packãã€ã³ã¹ããŒã«ããŸãã
ã€ã³ã¹ããŒã«çŽåŸã«ãæ§æããŒã¿ã«ãéããŸãã
httpsïŒ// localhostïŒ30101 /
ç¶è¡ãã¯ãªãã¯ããŸãã

Azure PackããŒã¿ãä¿åãããããŒã¿ããŒã¹ãæå®ããŸã

IISãšããŒã¿ããŒã¹ããã¹ãŠæ£åžžã§ããã°ãå®è£
ã®æåã«ã€ããŠéç¥ãããŸãã

次ã«ãããªãã¿ã®ãŠãŒãã£ãªãã£
makecert.exeãš
pvk2pfx.exeã䜿çšããŠãAzure Packãµã€ããžã®ã¢ã¯ã»ã¹èšŒææžãçæããå¿
èŠããããŸãïŒãã®ãããèšŒææžãæã£ãŠãã人ã®ã¿ããµã€ãã«ã¢ã¯ã»ã¹ã§ããŸãïŒ
CïŒ\ Program FilesïŒx86ïŒ\ Microsoft SDKs \ Windows \ v7.1A \ BinãµãŒããŒã®å ŽåïŒ
makecert -r -pe -n "CN=WAP Portals" -ss CA -a sha1 -sky signature -cy authority -sv WAPPortals.pvk WAPPortals.cer makecert -pe -n "CN=hello-habr-wap.cloudapp.net" -a sha1 -sky exchange -eku 1.3.6.1.5.5.7.3.1 -ic WAPPortals.cer -iv WAPPortals.pvk -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 -sv WAPLocalServer.pvk WAPLocalServer.cer pvk2pfx -pvk WAPLocalServer.pvk -spc WAPLocalServer.cer -pfx WAPLocalServer.pfx
顧客ã®å ŽåïŒ
makecert -pe -n "CN=WAPMainDeveloper" -a sha1 -sky exchange -eku 1.3.6.1.5.5.7.3.2 -ic WAPPortals.cer -iv WAPPortals.pvk -sv WAPClient.pvk WAPClient.cer pvk2pfx -pvk WAPClient.pvk -spc WAPClient.cer -pfx WAPClient.pfx -po HelloHabr2015
ãµãŒããŒäžã®èšŒææž-ããŒã«ã«ã³ã³ãã¥ãŒã¿ãŒïŒä¿¡é Œãããã«ãŒãCAïŒã«
WAPPortals.cerãã€ã³ããŒãããŸãã

ãµãŒããŒäžã®IISã«
WAPLocalServer.pfxãã€ã³ããŒãããŸãã

ç§ã®å Žåããã¹ã¯ãŒããèšå®ããŸããã§ããã

ãµãŒããŒãšã¯ã©ã€ã¢ã³ãã®èšŒææž-ããŒã«ã«ã³ã³ãã¥ãŒã¿ãŒãšçŸåšã®ãŠãŒã¶ãŒïŒå人ïŒã«
WAPClient.pfxãã€ã³ã¹ããŒã«ããŸãã
hostsãã¡ã€ã«ã«ãšã³ããªã远å
ããŸãïŒCïŒ\ Windows \ System32 \ãã©ã€ããŒ\ãªã©ïŒ
127.0.0.1 hello-habr-wap.cloudapp.net
PowerShellïŒç®¡çè
æš©éïŒã䜿çšããŠãAzure Pack管çãµã€ãã®FQDNåã倿Žã§ããŸãïŒã€ã³ã¿ãŒããããããµã€ãã«ã¢ã¯ã»ã¹ããããã«å¿
èŠã§ãïŒã
TenantSiteã®å Žå Import-Module -Name MgmtSvcConfig Set-MgmtSvcFqdn -Namespace "TenantSite" -FullyQualifiedDomainName "hello-habr-wap.cloudapp.net" -Port 30081 -Server "hello-habr-wap\SQLEXPRESS" Set-MgmtSvcFqdn -Namespace "AuthSite" -FullyQualifiedDomainName "hello-habr-wap.cloudapp.net" -Port 30071 -Server "hello-habr-wap\SQLEXPRESS" Set-MgmtSvcRelyingPartySettings -Target Tenant -MetadataEndpoint "https://hello-habr-wap.cloudapp.net:30071/FederationMetadata/2007-06/FederationMetadata.xml" -ConnectionString "Data Source=hello-habr-wap\SQLEXPRESS;User ID=sa;Password=HelloHabr2015" âDisableCertificateValidation Set-MgmtSvcIdentityProviderSettings -Target Membership -MetadataEndpoint "https://hello-habr-wap.cloudapp.net:30081/FederationMetadata/2007-06/FederationMetadata.xml" -ConnectionString "Data Source=hello-habr-wap\SQLEXPRESS;User ID=sa;Password=HelloHabr2015" âDisableCertificateValidation
adminminã®å Žå Import-Module -Name MgmtSvcConfig Set-MgmtSvcFqdn -Namespace "AdminSite" -FullyQualifiedDomainName "hello-habr-wap.cloudapp.net" -Port 30091 -Server "hello-habr-wap\SQLEXPRESS" Set-MgmtSvcFqdn -Namespace "WindowsAuthSite" -FullyQualifiedDomainName "hello-habr-wap.cloudapp.net" -Port 30072 -Server "hello-habr-wap\SQLEXPRESS" Set-MgmtSvcRelyingPartySettings -Target Admin -MetadataEndpoint "https://hello-habr-wap.cloudapp.net:30072/FederationMetadata/2007-06/FederationMetadata.xml" -ConnectionString "Data Source=hello-habr-wap\SQLEXPRESS;User ID=sa;Password=HelloHabr2015" âDisableCertificateValidation Set-MgmtSvcIdentityProviderSettings -Target Windows -MetadataEndpoint "https://hello-habr-wap.cloudapp.net:30091/FederationMetadata/2007-06/FederationMetadata.xml" -ConnectionString "Data Source=hello-habr-wap\SQLEXPRESS;User ID=sa;Password=HelloHabr2015" âDisableCertificateValidation
IISã®Azure Packãµã€ãã®èšå®ã§ããã€ã³ãã倿ŽããŸã

èšŒææžãšããŠã
hello-habr-wap.cloudapp.netãéžæããŸã
-WAPããŒã¿ã«

ãµã€ãã®SSLèšå®ã§-ã€ã³ã¹ããŒã«
SSLãå¿
èŠ

ãµã€ãã«å¯ŸããŠãã®æé ãç¹°ãè¿ããŸãã
-ããã³ããµã€ã
-AuthSite
-管çè
-WindowsAuthSite
èšäºã§èª¬æãããŠããæ¹æ³ïŒ
1ã2ãããã³
3ïŒã䜿çšããŠã䜿ããããDNSåãäœæã§ããŸãã
çŽ æŽãããããã£ããã·ã¥ã©ã€ã³ã«å°éããŸããã æ¬¡ã«ã
hello-habr-sb.cloudapp.netã«ããService Busãžã®ã¢ã¯ã»ã¹ãæ§æããå¿
èŠããããŸãã

AdminSiteã«è¡ããŸãããïŒ
https://hello-habr-wap.cloudapp.net {0091
Service Busã䜿çšããŠä»®æ³ãã·ã³ã«æ¥ç¶ãã

èšç»ãäœæãã



æåŸã«ããŠãŒã¶ãŒãäœæããŸã


ãµãŒãã¹ãã¹ã®ç¢ºèªãµãŒãã¹ãã¹ã®ç¢ºèªTenantSiteã«ç§»åããäœæããããŠãŒã¶ãŒã®è³æ Œæ
å ±ãå
¥åããŸã
httpsïŒ//hello-habr-wap.cloudapp.nethaps0081/

åå空éãäœæãã

ãããã¯ãäœæ




ãµãã¹ã¯ãªãã·ã§ã³ãäœæãã



ãããã¯ã®å
±æã¢ã¯ã»ã¹ããªã·ãŒãäœæãã

ã¢ã¯ã»ã¹çšã®ããŒãååŸãã

ããã§ãã¹ãŠã®æ€èšŒã®æºåãã§ããŸãã
ç°¡åãªã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ãäœæããŸãããã ããã«ã¯Visual Studio 2013ã䜿çšããŸãã

NuGet Package Managerã³ã³ãœãŒã«ã䜿çšããŠå¿
èŠãªåç
§ã远å ããŸã
Install-Package ServiceBus.v1_1
ãããŠãå°ãæ€èšŒã³ãŒããæžããŸã
using Microsoft.ServiceBus; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.ServiceBus.Messaging; namespace TestHelloHabrServiceBus { class Program { static string ServerFQDN; static int HttpPort = 10355; static int TcpPort = 10354; static string ServiceNamespace = "HelloHabrNamespace"; static void Main(string[] args) { ServerFQDN = "hello-habr-sb.cloudapp.net"; ServiceBusConnectionStringBuilder connBuilder = new ServiceBusConnectionStringBuilder(); connBuilder.ManagementPort = HttpPort; connBuilder.RuntimePort = TcpPort; connBuilder.Endpoints.Add(new UriBuilder() { Scheme = "sb", Host = ServerFQDN, Path = ServiceNamespace }.Uri); connBuilder.StsEndpoints.Add(new UriBuilder() { Scheme = "https", Host = ServerFQDN, Port = HttpPort, Path = ServiceNamespace }.Uri); connBuilder.SharedAccessKeyName = "HelloHabrSAS"; connBuilder.SharedAccessKey = "CLoUUuoBgwzJ4502NWGNB4cUIn7IcBOpuB47q53K2So="; NamespaceManager namespaceManager = NamespaceManager.CreateFromConnectionString(connBuilder.ToString()); TopicClient topicClient = TopicClient.CreateFromConnectionString(connBuilder.ToString(), "HelloHabrTopic"); SubscriptionClient subscriptionClient = SubscriptionClient.CreateFromConnectionString( connBuilder.ToString(), "HelloHabrTopic", "HelloHabrSubscription", ReceiveMode.PeekLock); BrokeredMessage message = new BrokeredMessage("My Message"); // try { topicClient.Send(new BrokeredMessage("My Message")); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.WriteLine(" "); // message = subscriptionClient.Receive(TimeSpan.FromSeconds(10)); if (message != null) { Console.WriteLine("Body: " + message.GetBody<string>()); Console.WriteLine("MessageId: " + message.MessageId); message.Complete(); Console.WriteLine("The end of the message."); } Console.WriteLine("===================================="); Console.WriteLine("Program ends."); Console.ReadLine(); } } }
å®è¡ããŠãã¡ãã»ãŒãžãéä¿¡ããã³é
ä¿¡ãããããšã確èªããŸãã

ãããã®ãœãªã¥ãŒã·ã§ã³ã®æ§æã«ãããç§ã®çµéšã圹ã«ç«ã¡ãå°ãæéãç¯çŽã§ããããšãé¡ã£ãŠããŸãã