æè¡4課ã®PowerShellãããããã¨ãéç°ã§ãã社å ã§PowerShellãå®è£ ã§ãã人ãå¢ãã¦ããã®ã§ãã¡ãã£ã¨ç¦ããæãã¤ã¤ã
å ã®ããã°ã§ãLambdaãPowerShellã§å®è£ ããããã¤ã¾ã§ã解説ãã¾ããã ãã£ããLambdaãPowerShellã§å®è£ ã§ããæºåãããã®ã§ãSlackã®Botãå®è£ ãã¦ã¿ããã¨ã«ãã¾ããã
PowerShellãSlackã«æç¨¿ããããã®æºå
Slackã«å¯¾ãã¦PowerShellãæç¨¿ããããã«ã¯ãSlackå´ã§Incoming WebHooksã®URLã®ç¨æãå¿ è¦ã§ãã
Slackã®WorkSpacesåãã¯ãªãã¯ããã¡ãã¥ã¼ãããCustomize Slackããã¯ãªãã¯ã
å·¦ã®ã¡ãã¥ã¼ãããConfigure appsããã¯ãªãã¯ã
å·¦ã®ã¡ãã¥ã¼ãããCustom Ontegraionsããã¯ãªãã¯ããIncomming WebHooksããã¯ãªãã¯ã
ãAdd Configurationããã¯ãªãã¯ã
ãã¹ããããã£ã³ãã«ãèãããã®ã§ããã£ã³ãã«ãé¸ã³ã¾ãããããã£ã³ãã«ãé¸ãã ãããAdd Incoming WebHooks integrationããã¯ãªãã¯
Webhookç¨ã®URLãçæããã¾ããWebhook URLãã³ãã¼ãã¦ãå¾ã»ã©ã®ã³ã¼ãã«åãè¾¼ã¿ã¾ãã
ããã¾ã§åºæ¥ãããæºåå®äºã§ãã
å®éã«å®è£ ãã¦ã¿ã
ããã宿ã ãã帰ããªãã®ï¼ãã¨éç¥ãã¦ãããBotã®ã³ã¼ãã¯ãããªæãã§ãã
function convert_text($before_text) { $enc = [System.Text.Encoding]::GetEncoding('ISO-8859-1') $utf8Bytes = [System.Text.Encoding]::UTF8.GetBytes($before_text) return $enc.GetString($utf8Bytes) } $slack_hook_url = "å ç¨åå¾ããIncoming WebHooksã®URL" $payload_array = @{ text = convert_text("ãã宿ã ãã帰ããªãã®ï¼"); username = convert_text("宿ãç¥ãããã"); channel = "æç¨¿ãããSlackãã£ã³ãã«" } Invoke-WebRequest -Method Post -Uri $slack_hook_url -Body (ConvertTo-Json $payload_array)
IncommingWebHookã«å¯¾ãã¦Jsonã§ãã©ã¡ã¿ã渡ãã¾ãããæ¸¡ããã©ã¡ã¿ãé åã§ä½ã£ã¦ãPowerShellããInvokeã§URLããªã¯ã¨ã¹ãããæã«ãConvertoTo-Jsonã§Jsonã«å¤æãããã¦ãã¾ãã PowerShellã§ã¯ãã®ã¾ã¾æ¥æ¬èªãJSONã§éã£ã¦ã¯ã¨ã©ã¼ã«ãªãããã夿å¦çãæãã§ãã¾ãã å°ãå¦çãå¤ãããã¨ã§ãbotãæ¹å¤ã§ããã®ã§ãæç¨¿ããããã¹ããã¦ã¼ã¶ã¼åãªã©ã¯ãè²ã ã¨èª¿æ´ãã¦ã¿ã¦ãã ããï¼
å®éã«PowerShellãå®è¡ãã¦ã¿ã
Lambdaã§ãããã¤å¾ãå®éã«èµ·åãã¦ã¿ãã¨ã以ä¸ã®ããã«Slackã¸æç¨¿ããã¾ãã
æå¤ã¨ç°¡åã«ä½ãã¾ããã
çµããã«
SlackBotãPowerShellã§å®è£ ãããã®ããç´¹ä»ãã¾ããã PowerShellã§ããµã¼ãã¼ã¬ã¹ã§ãã¾ããèªä¿¡ããã£ã¦ããµã¼ãã¼ã¬ã¹ãã£ã¦ããã¨è¨ãã¾ãããã