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
AWS Step Functions上でエラーが発生した場合の効果的な通知方法を検討してみた
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
TakaakiKakei
October 05, 2021
Programming
8.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS Step Functions上でエラーが発生した場合の効果的な通知方法を検討してみた
Developers.IO 2021 Decade で発表した資料です
TakaakiKakei
October 05, 2021
More Decks by TakaakiKakei
See All by TakaakiKakei
Claudeから独自システムへ安全に接続する方法
takaakikakei
0
54
AI事業本部の働き方(2026年2月)
takaakikakei
0
71
re:Invent 2025 ふりかえり 生成AI版
takaakikakei
1
560
AI-DLC 体験報告
takaakikakei
0
160
現場で効くClaude Code ─ 最新動向と企業導入
takaakikakei
1
1.2k
企業が押さえるべきMCPの未来
takaakikakei
6
1.9k
5分で語るMCP
takaakikakei
0
69
生成AIの現在地点とこれからの可能性
takaakikakei
0
510
AIプロダクト開発から得られた知見 - 2025年1月版
takaakikakei
0
790
Other Decks in Programming
See All in Programming
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
310
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
5k
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
160
Turning Architecture into Unit Tests in the AI Era (NSSpain XIV)
steliosf
PRO
1
130
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.9k
JRuby: Past, Present, and Future
headius
0
220
ジョジョの世界をXRで再現する
mofurune
0
140
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
360
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
Workers Cache を知る
syumai
0
340
カツオ、ご期待ください
suneo3476
0
150
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2k
Featured
See All Featured
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Marketing to machines
jonoalderson
1
5.9k
How STYLIGHT went responsive
nonsquared
100
6.3k
How to make the Groovebox
asonas
2
2.5k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
58k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
My Coaching Mixtape
mlcsv
0
340
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
400
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Amusing Abliteration
ianozsvald
1
330
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
Transcript
AWS Step Functions上でエラーが発生した 場合の効果的な通知方法を検討してみた 2021-10-05 AWS事業本部 オペレーション部 サービスグロースチーム 筧 剛彰
どうもみなさん初めまして 筧 剛彰(かけい たかあき)と申します 2
エラー通知方法についてよく検討をされていますか? 私はサービスのメインロジックに焦点をあてがちで、 エラー通知方法について深く検討できていない状態でした 3
本セッションのゴール エラー通知方法を見直すきっかけとなり、 サービス品質向上につながれば幸いです! 4
5 おさらい • サーバレスオーケストレーションサービス • グラフィカルコンソールによる可視化 • 各コンポーネントの状態を記録 https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/welcome.html
6 通知先 • セクションでエラー通知先のチャンネルを簡単にまとめれて見やすい • スレッドでエラーについてコミュニケーションしやすい • AWSサービスと親和性が高い
7 デプロイツール • サーバレスアプリケーションのデプロイツール • 構築や管理が簡単になる https://www.serverless.com/
8 ステートマシンの構成 • 意図的にタイムアウトを発生する Lambda関数のステップ(TimeOut) • 必要情報をまとめて Slack通知するLambda関数のステップ(NotifyError) • 失敗で終わらせるための
Failタイプのステップ(FailState)
9 完成形がこちらです • 緊急度に応じて色とメンション有無変更 • 調査に必要な情報を分かりやすく表示 • タイトルリンクから対象のステートマシンの実 行ページにいける ※表示しているAWSアカウントIDはダミーです
各項目の取得方法は? 10 項目 取得元 ・Error(エラー名) ・Cause(エラー原因) 1.前のステップの出力 ・リージョン ・AWSアカウントID ・ステートマシン名
・From Time(実行開始時間) ・Input(実行入力) ・対象のステートマシンの実行ページ URL 2.Contextオブジェクト
11 1.前のステップの出力から取得 • TimeOutステップの出力にエラー内容が含まれる • NotifyErrorステップのParametersフィールドで、paramキーに渡す • Lambdaからは、event["param"]["Error"] などでアクセス https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/input-output-input
path-params.html#input-output-parameters state-machines.yml slack.py
12 2. Context オブジェクトから取得 https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/input-out put-contextobject.html • Context オブジェクトには、ステートマシンおよ び実行に関する情報
が含まれる • ワークフロー上で各ステップからアクセスが可 能 Context オブジェクトの形式
13 2. Context オブジェクトから取得 • Parametersフィールドで、Execution.$: $$Execution などで取得できる • Lambdaからは、event["Execution"]["Id"]
などでアクセス • Context オブジェクトの情報をパース処理 state-machines.yml slack.py
各項目の取得方法は? 14 項目 取得元 ・Error(エラー名) ・Cause(エラー原因) 1.前のステップの出力 ・リージョン ・AWSアカウントID ・ステートマシン名
・From Time(実行開始時間) ・Input(実行入力) ・対象のステップマシンの実行ページ URL 2.Contextオブジェクト
15 2. Context オブジェクトから取得 • 対象ステップへの実行 URLは以下の形式 https://{リージョン}.console.aws.amazon.com/states/home?region={リージョ ン}#/executions/details/{実行ARN} •
Context オブジェクトから取得した項目(リージョンと実行 ARN) を組み合わせて作成
Slackへの通知方法は? • エラー原因に応じて通知メッセージを変更 • 緊急度中:alert_middle関数 緊急度高:alert_high関数 • 翌日以降の対応でよいものは、 alert_middleで 通知されるようにチューニングする想定
17 通知内容の違い • メンション有無 • タイトルのアイコン • カラー
Slackへの通知方法は? • https://api.slack.com/reference/messaging/attachments
緊急度が低い通知はどうするの? • 管理するサービスが増えるほど、エラー通知数は増加しが ちです • 対応不要なエラーまで通知していると、エラー対応に追わ れてチームが疲弊します • 新しい開発や重要なエラー対応に注力するためにも 不要な通知はコード上で抑制することを検討しましょう
19
まとめ • AWS Step Funtionsのエラー通知には、前のステップ出力 やContextオブジェクトを活用 • 緊急度を表現するには、色やメンション有無を変える • チームが疲弊しない為に、不要な通知はコード上で抑制
20
None