Submit Search
Upload
StackStorm Workflowの設計
•
Download as PPTX, PDF
•
2 likes
•
1,202 views
Shu Sugimoto
Follow
StackStorm Workflowの設計
Read less
Read more
Software
Report
Share
Report
Share
1 of 20
Download now
Recommended
StackStormを活用した運用自動化の実践
StackStormを活用した運用自動化の実践
Shu Sugimoto
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
Yahoo!デベロッパーネットワーク
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
akira6592
Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)
akira6592
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
VirtualTech Japan Inc.
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
Kohei Kadowaki
Plan 9のお話
Plan 9のお話
Ryousei Takano
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
Recommended
StackStormを活用した運用自動化の実践
StackStormを活用した運用自動化の実践
Shu Sugimoto
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
Yahoo!デベロッパーネットワーク
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
akira6592
Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)
akira6592
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
VirtualTech Japan Inc.
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
Kohei Kadowaki
Plan 9のお話
Plan 9のお話
Ryousei Takano
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
Takanori Suzuki
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)
Tetsuyuki Kobayashi
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015
Norito Agetsuma
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
akira6592
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
ssh-agentのすすめ
ssh-agentのすすめ
Masahiro NAKAYAMA
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
Ransui Iso
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
Unity Technologies Japan K.K.
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
NTT Communications Technology Development
Docker 基本のおさらい
Docker 基本のおさらい
Naoki Nagazumi
テスト駆動開発のはじめ方
テスト駆動開発のはじめ方
Shuji Watanabe
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
dcubeio
NAPALMで作るネットワークオペレーション自動化への道のり
NAPALMで作るネットワークオペレーション自動化への道のり
Toshiya Mabuchi
show コマンド結果をパースする方法あれこれ #npstudy
show コマンド結果をパースする方法あれこれ #npstudy
akira6592
【Unity道場】VectorGraphicsで作る エモい表現
【Unity道場】VectorGraphicsで作る エモい表現
Unity Technologies Japan K.K.
initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
足を地に着け落ち着いて考える
足を地に着け落ち着いて考える
Ryuji Tamagawa
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
NTT DATA Technology & Innovation
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
More Related Content
What's hot
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)
Tetsuyuki Kobayashi
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015
Norito Agetsuma
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
akira6592
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
ssh-agentのすすめ
ssh-agentのすすめ
Masahiro NAKAYAMA
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
Ransui Iso
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
Unity Technologies Japan K.K.
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
NTT Communications Technology Development
Docker 基本のおさらい
Docker 基本のおさらい
Naoki Nagazumi
テスト駆動開発のはじめ方
テスト駆動開発のはじめ方
Shuji Watanabe
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
dcubeio
NAPALMで作るネットワークオペレーション自動化への道のり
NAPALMで作るネットワークオペレーション自動化への道のり
Toshiya Mabuchi
show コマンド結果をパースする方法あれこれ #npstudy
show コマンド結果をパースする方法あれこれ #npstudy
akira6592
【Unity道場】VectorGraphicsで作る エモい表現
【Unity道場】VectorGraphicsで作る エモい表現
Unity Technologies Japan K.K.
initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
足を地に着け落ち着いて考える
足を地に着け落ち着いて考える
Ryuji Tamagawa
What's hot
(20)
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
Pythonによる黒魔術入門
Pythonによる黒魔術入門
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
ssh-agentのすすめ
ssh-agentのすすめ
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
Docker 基本のおさらい
Docker 基本のおさらい
テスト駆動開発のはじめ方
テスト駆動開発のはじめ方
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
NAPALMで作るネットワークオペレーション自動化への道のり
NAPALMで作るネットワークオペレーション自動化への道のり
show コマンド結果をパースする方法あれこれ #npstudy
show コマンド結果をパースする方法あれこれ #npstudy
【Unity道場】VectorGraphicsで作る エモい表現
【Unity道場】VectorGraphicsで作る エモい表現
initとプロセス再起動
initとプロセス再起動
足を地に着け落ち着いて考える
足を地に着け落ち着いて考える
Similar to StackStorm Workflowの設計
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
NTT DATA Technology & Innovation
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
Yusuke Suzuki
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
Kazuhiro Hara
st2-docker ことはじめ
st2-docker ことはじめ
Shu Sugimoto
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
Takeshi Yamamuro
20110517 okuyama ソーシャルメディアが育てた技術勉強会
20110517 okuyama ソーシャルメディアが育てた技術勉強会
Takahiro Iwase
Eureka go 2015_12_12
Eureka go 2015_12_12
matsuo kenji
【XPagesDy】A-2_コムチュア_20131106_公開用
【XPagesDy】A-2_コムチュア_20131106_公開用
comtakahashi
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Kotaro Nakayama
Embedded Master2
Embedded Master2
android sola
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
NTT DATA Technology & Innovation
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
Naoya Hashimoto
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
Y Watanabe
「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態
npsg
Japan Container Day 2018
Japan Container Day 2018
Yoshio Terada
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Takashi Sogabe
Mk network programmability-03
Mk network programmability-03
Miya Kohno
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
Fixstars Corporation
OCaml でデータ分析
OCaml でデータ分析
Akinori Abe
Similar to StackStorm Workflowの設計
(20)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
st2-docker ことはじめ
st2-docker ことはじめ
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
20110517 okuyama ソーシャルメディアが育てた技術勉強会
20110517 okuyama ソーシャルメディアが育てた技術勉強会
Eureka go 2015_12_12
Eureka go 2015_12_12
【XPagesDy】A-2_コムチュア_20131106_公開用
【XPagesDy】A-2_コムチュア_20131106_公開用
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Embedded Master2
Embedded Master2
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態
Japan Container Day 2018
Japan Container Day 2018
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Mk network programmability-03
Mk network programmability-03
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
OCaml でデータ分析
OCaml でデータ分析
StackStorm Workflowの設計
1.
INTERNET MULTIFEED CO.Copyright
© StackStorm Workflowの設計 Shu Sugimoto Software Development Manager, JPNAP 2019-04-24(Wed)
2.
INTERNET MULTIFEED CO.Copyright
© 今日のサマリー • StackStormのWorkflowは柔軟でパワフル • 柔軟であるからこそ、しっかりと設計しておこう • JPNAP/MFでのこれまでの経験から見えた、st2 Workflowを考え るときに意識するべきポイントを3つ紹介 • 1. 目的を意識して、Packの振り分けをしよう • 2. 複数の環境で動かせるように、WorkflowのParameterを 定義しておこう • 3. Workflowのコア部分と、付帯的な部分を極力分離出来る ようにしよう 2
3.
INTERNET MULTIFEED CO.Copyright
© おさらい:Packの種類 • Packはその性質から2種類に大別される • [ ] • • [ ] 3
4.
INTERNET MULTIFEED CO.Copyright
© おさらい:Packの種類 • Packはその性質から2種類に大別される • Integration Pack • ある特定のアプリケーション・プロダクトに特化した Action/Workflow/etc.をまとめたもの • stackstorm-exchangeにあるものは(ほぼ?)全てこれに該当 • Automation Pack • ある特定の業務フローを自動化するWorkflowを含むもの • Integration PackのActionを組み合わせてWorkflowを組み立て るのが典型的なパターン • https://docs.stackstorm.com/packs.html • 名前に違いはあるが、st2から見たときはどちらも全く同じよう に扱われる 4
5.
INTERNET MULTIFEED CO.Copyright
© 5 🤔 (この業務フローを自動化したい…) システムX システムY get A get P do B get Q do R とある業務フロー
6.
INTERNET MULTIFEED CO.Copyright
© パズル 6 Pack: [ ] Pack: [ ] Pack: [ ] Action: get.A Action: do.B Action: get.P Action: get.Q Action: do.R Workflow: run_task
7.
INTERNET MULTIFEED CO.Copyright
© パズル 7 Pack: X Pack: Y Pack: hoge Action: get.A Action: do.B Action: get.P Action: get.Q Action: do.R Workflow: run_task Integration Pack Automation Pack
8.
INTERNET MULTIFEED CO.Copyright
© Packの分離設計 • 実装しているWorkflow/Actionが、特定のシステムを対象として いるかどうか考える • もしそうであれば、そのシステムを対象とした Action/Workflowをまとめて1つのPackにしてあげる → Integration Pack • 実装しているWorkflowが、複数のシステムを連携させてなにか の業務フローを自動化している • その業務フローをまとめる単位で、1つのPackにまとめてあ げる → Automation Pack 8
9.
INTERNET MULTIFEED CO.Copyright
© 9 🤔 (商用環境とステージング環境の両方で使いたい…) とある業務フローを自動化したWorkflow Production Staging
10.
INTERNET MULTIFEED CO.Copyright
© Workflow/Actionのパラメータ設計 • 各システムがlab/staging/productionを持つことを考慮して、 Parameterを外部からセット出来るようにする • 環境毎に異なる値をとり得るものは、全てパラメータ化して おく • 例えば、接続先サーバーのホスト名とか • 関数で言うところの引数 • Action metadataにParameterを定義して、default値にPack config/st2kvのキーをセットする 10
11.
INTERNET MULTIFEED CO.Copyright
© Pack configとst2kv • Pack config • Pack毎に定義する • スキーマがある • どんなパラメータがあるか、や、型の定義、そのパラメータの説明 等を含めることが出来る • DevOps可能 • Packとは切り離してSCM管理/CDが出来る • Configの値の参照先としてst2kvを指定することも可能 • ただしこの場合、入れられるのは文字列型だけになる • st2kvに入れる場合は暗号化可能 • Action metadataからはアクセスできるが、Workflow内からは アクセス出来ない • Python actionからは直接参照出来る • Workflow内で使いたい場合、Parameterで渡してあげる必要があ る • 厳密に言うとpython-script runner以外はmetadataから Parameter渡しが必要 • 他のPackのconfigは(簡単には)参照出来ない 11
12.
INTERNET MULTIFEED CO.Copyright
© Pack configとst2kv • st2kv • keyは自由に設定可能 • スキーマレス • ドキュメントがないと、コードを見ないとどこでどういうキー が使われているか分からなくなる • valueには文字列しか入らない • DevOps可能 • Pack configよりは強引な方法だが、可能といえば可能 • APIを直接叩いてどうにかする感じ • 暗号化可能 • Action metadataからもWorkflow内からも直接アクセス出来 る 12
13.
INTERNET MULTIFEED CO.Copyright
© Pack configとst2kv、どう使うべき? • 戦略1: すべてst2kvでやる • 最もシンプル • README.mdでパラメータ一覧を別に管理する必要あり • 更新忘れを機械的に防ぐ手法がない • 戦略2: すべてPack configでやる • 暗号化が使えない • config更新がちょっと面倒 • st2kvの場合、st2 keyコマンドで簡単にできるが、configはファイ ル作らないといけない • CDでしか変えないなら問題にはならないが… • 戦略3: Pack configでパラメータを定義し、値はすべてst2kvに入れ るハイブリッド • パラメータはconfig schemaで管理出来る • 初期configの登録だけちょっと面倒 • Pack単体のCDでは完結させることが出来ない • 新しいパラメータを追加したときのデプロイフロー未確立 13
14.
INTERNET MULTIFEED CO.Copyright
© Pack configとst2kv、どう使うべき? • いろいろな戦略があるが、どれも一長一短なので自分にあったや つを選びましょう • st2kvの使い方について留意しておくべきこと • Workflow内で直接st2kvを参照するときは、一時的に保管す るデータ、TTL付きのデータのみにとどめておく • もしそうでない場合、それは恐らく高確率でParameter化し てAction metadataから渡してあげたほうが良いもの 14
15.
INTERNET MULTIFEED CO.Copyright
© 15 🤔 (このWorkflowの開始・終了時にSlackに通知を送りたい…) とある業務フローを自動化したWorkflow
16.
INTERNET MULTIFEED CO.Copyright
© Workflowの開始・終了を通知する方法 • 1. Workflowの一番最初と最後に slack.chat.postMessage を 突っ込む • 一番最初に思いつく、最も簡単かつシンプルな方法 • しかしこれは後々で確実につらくなる 16
17.
INTERNET MULTIFEED CO.Copyright
© Workflowの開始・終了を通知する方法 • 「1. Workflowの一番最初と最後に slack.chat.postMessage を 突っ込む」の、ダメなところ • ビジネスロジックとは関係のないActionがWorkflowに混ざり、 見通しが悪くなる • 同じく、関係ないパラメータが混ざり、混乱を招く • Slackに投稿するために必要なtokenやchannel名等は、本来そ のワークフローの責務の範疇外の値のはず • ビジネスロジックの外の影響を、そのワークフローが受けて しまう • 「HipChatに変えました」→この全く関係のない変更により、 Workflowを全て書き換える必要がある 17
18.
INTERNET MULTIFEED CO.Copyright
© Workflowの開始・通知を終了する 改善版 • 2. Triggerを使う • st2 -> IFTTT • Workflowの開始時/終了時にtriggerを出すことが出来る • st2.generic.actiontrigger • st2.confの[action_sensor]のemit_whenに、いつtriggerを発 火させるか指定可能 • ここで`scheduled`を追加指定すると、Action/Workflow がスケジュールされた際、つまり開始時にtriggerを発火で きる • これを使って、通知用のルールからWorkflowをキックしてあげ る • ※なぜnotifytriggerじゃないのか? • →開始時のフックが出来ないから 18
19.
INTERNET MULTIFEED CO.Copyright
© 19 # 該当workflowを追加する時はこのruleのpatternを変更 name: start_workflow description: Kick the notification workflow when specific workflow starts. enabled: true trigger: type: core.st2.generic.actiontrigger criteria: trigger.action_ref: type: inside pattern: - jpnap_scg.deploy_scdb - jpnap_scg.register_ml - jpnap_scg.publish_web - jpnap_scg.deploy_mac_ip_table - jpnap_scg.peerwatcher_dataclean - jpnap_rfeed.add_rfeed_peer - jpnap_rfeed.remove_rfeed_peer - jpnap_neko.create_mac_acl - jpnap_neko.delete_mac_acl - jpnap_neko.modify_mac_acl_dual - jpnap_tests.test.ask_to_proceed.example2 - jpnap_tests.finish_workflow_with_snippet.mistral - jpnap_tests.finish_workflow_with_snippet.orquesta trigger.status: type: equals pattern: scheduled action: ref: jpnap_common.start_workflow parameters: execution_id: "{{ trigger.execution_id }}" target_name: "{{ trigger.action_name }}" # ruleごとに通知先channelを指定する notify_channel: "{{ st2kv.system.jpnap_common.config.slack.wf_notify.start_finish }}"
20.
INTERNET MULTIFEED CO.Copyright
© 今日のサマリー (再掲) • StackStormのWorkflowは柔軟でパワフル • 柔軟であるからこそ、しっかりと設計しておこう • JPNAP/MFでのこれまでの経験から見えた、st2 Workflowを考え るときに意識するべきポイントを3つ紹介 • 1. 目的を意識して、Packの振り分けをしよう • 2. 複数の環境で動かせるように、WorkflowのParameterを 定義しておこう • 3. Workflowのコア部分と、付帯的な部分を極力分離出来る ようにしよう 20
Download now