Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Azure Functionsを使ってSlackに通知をしてみよう
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Shintaro Kanno
July 06, 2022
Programming
600
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Azure Functionsを使ってSlackに通知をしてみよう
7/6(水) 「Serverless LT初心者向け LT大会 #23 + 楽しいチーム開発の施策とは?」発表資料
Shintaro Kanno
July 06, 2022
More Decks by Shintaro Kanno
See All by Shintaro Kanno
アトミックデザイン入門
shintaro8
0
330
gRPCミドルウェアを作ってみよう
shintaro8
1
650
Goの並行処理に入門しよう
shintaro8
0
160
Other Decks in Programming
See All in Programming
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
120
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
490
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
1
150
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2k
Intent as Code
shoppingjaws
6
1k
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
200
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
4
3k
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
4
1.2k
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
4.6k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
120
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
110
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
4
690
Featured
See All Featured
Ruling the World: When Life Gets Gamed
codingconduct
0
330
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
67
58k
The SEO identity crisis: Don't let AI make you average
varn
0
560
The browser strikes back
jonoalderson
0
1.7k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Ethics towards AI in product and experience design
skipperchong
2
380
Build your cross-platform service in a week with App Engine
jlugia
234
19k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Transcript
Azure Functions を使ってSlack に通知をしてみよう
自己紹介 名前 官野 慎太朗 ( かんの しんたろう) 業務 都内IT 企業にてWeb
系の開発業務に従事。 技術経験 Golang, JavaScript/TypeScript, MySQL, PostgreSQL, docker/kubernetes, etc…
目次 1. Azure Functions とは 2. 今回使用する技術について 3. Slack Webhook
URL の取得 4. Function App の設定 5. ローカル上でのプログラム実装 6. Function App へのデプロイ
Azure Functions とは Azure(Microsoft 社) が提供するサービスの一種。 クラウド上にプログラムを実装することができる。 類似サービス:AWS Lambda, GCP
Cloud Function
今回使用する技術 Azure Functions Core Tools JavaScript Slack Webhook URL Weather
Forecast API (Open-Meteo 社)
Slack Webhook URL の取得 Slack 連携には Incoming Webhook URL の発行が必要
Slack app directory の Custom Integrations > Incoming WebHooks より任意のWorkspace の Webhook URL 発行可能。 Incoming WebHooks よりWeb hook URL を作成 ` ` ` ` ` `
Function App の設定 Azure Portal 上でFunction App を構築 今回の名称は azure-weather
環境変数にSlack Webhook URL を設定 ` `
ローカル上でのプログラム実装 ローカルに空の az-function というディレクトリを作成 az-function 内で func new を実行 runtime
は node 使用する言語は JavaScript template は TimerTrigger Function Name は weather 対話形式で関数を作成 ` ` ` ` ` ` ` ` ` ` ` ` ` `
初期ディレクトリ構成 今回手を加えるのは index.js と function.json ` ` ` ` |-
.vscode |- extention.json |- weather |- function.json ←★ |- index.js ←★ |- readme.md |- .gitignore |- host.json |- local.setting.json |- package-lock.json |- package.json
実装部分 axios と @slack/webhook を使用 func start でローカル実行 ` `
` ` ` ` const axios = require('axios'); const { IncomingWebhook } = require('@slack/webhook'); module.exports = async function (context, myTimer) { // ~~~~~~ 以下実装部分 ~~~~~~ const response = await axios.get('https://api.open-meteo.com/v1/forecast?latitude=35.6785&longitude=139.6823&hourly=te const webhook = new IncomingWebhook(process.env.WEBHOOK) await webhook.send({ text: ` 現在の気温は${response.data.current_weather.temperature} です。`, channel: "#demo", username: "Azure Functions", }) // ~~~~~~ 実装部分ここまで ~~~~~~ };
Function App へのデプロイ function.json を編集 実行間隔を5 分おきに設定 scriptFile を index.js
に指定 package.json をweather に移動 azure-weather に weather ディレクトリをデプロイ 実行コマンド: func azure functionapp publish azure-weather function.json 内部 weaher 内の最終的な構成 ` ` ` ` ` ` ` ` ` ` ` ` { "bindings": [ { "name": "myTimer", "type": "timerTrigger", "direction": "in", "schedule": "0 */5 * * * *" } ], |- weather |- function.json |- index.js |- readme.md |- package.json ← 上の階層から移動
デプロイ後のazure-weather Functions に weather が存在 5 分おきに現在の気温をSlack へ通知 デプロイされたweather Slack
への気温の通知 ` `