【レポ】Java & k8s on Azure まつり@女子部に参加してきました
てらだよしおさん(@yoshioterada)の
Japan Tour in Summer: Java & k8s on Azure まつり@女子部に運営として参加したレポート記事になります。
今回はJava女子部さん(@java_women)との共催で、
コンテナ、Docker、Kubernetesについての
座学とハンズオン(モブプロ)というプログラムでした。
本記事では女子部のイベントがどんな雰囲気だったかを中心に書いていきます。
ハンズオンの詳細な内容はちゃんと復習してから別途書きたいと思います。
午前の部 座学
コンテナの基礎についての座学でした。
1人で参加されている方が多く、初めは皆さん緊張している様子でした。
それでも参加者の方から質問も出ていたので、質問はしやすい雰囲気だったのかと思います。
座学の内容については
イベントページに資料がありますのでご覧ください。
Japan Tour in Summer: Java & k8s on Azure まつり@女子部 - connpass
前回のJazug女子部の勉強会もコンテナ編でしたので
こちらの資料もあわせてご覧いただくと
よりコンテナについてのイメージがしやすいと思います。
この時はMicrosoftの真壁さんがお話ししてくださいました。
こちらの資料も初学者向けでとてもわかりやすいので是非!
当日、参加者の方から出た質問で個人的に印象に残ったものを記載します。
Q.Dockerのセキュリティ周り(脆弱性対策など)はどうしたらいいですか?
A.極力オフィシャルのイメージを使ってください。
最近はセキュリティチェックツール(Aqua SecurityやTwistlockなど)もあるのでそれを活用するのも一つの手です。
Q.コンテナの下側のマシンについては意識したほうがいいですか?
A.意識することは大事です。
コンテナは基盤になるマシンのリソースを借りて動いているので、
コンテナの設計は基盤のマシンのリソースを使い切らないように設計しないといけません。
Q.コンテナの利用シーンとは?
A.いろんなところで使われています。
特に開発やテスト等、統一された環境を用意する必要がある場面で有効です。
また、スケールアウトのものはコンテナ向きですが
スケールアップのもの(DB等)はあまりコンテナ向きではないです。
午後の部 ハンズオン
1チーム6人ほどに分かれてモブプロ形式のハンズオンをしました。
私のチームはJava女子部の方が多く、女子部の勉強会に参加されるのが初めての方も何人かいらっしゃいました。
皆さんLinuxコマンドなどの基礎知識をお持ちで、比較的スムーズに進められました。
他のチームも和気あいあいとした様子で、
時には拍手も起こるような盛り上がりでした笑
Microsoftさんのご厚意でお菓子もあったので、
おやつを食べながらできたのもよかったです。
(女子部イベントではおやつがある率が高い気がします笑
ハンズオン全体の流れ
<事前準備>
- チーム内の共有メールアドレスを一つ作成
-
共有のAzureアカウント作成
-
情報共有のためのツール設定
(私のチームはTeamsを使いました。初めてTeamsの画面共有など使いましたが、使い勝手もなかなか良かったです。
<Docker&Kubernetesハンズオン内容>
- 踏み台のLinux仮想マシン作成
- 踏み台LinuxにDockerのインストール
- Dockerイメージの作成、実行
- Azure Kubernetes Service(AKS)のインストール
- YAMLの作成適用、実行
- Kubernetesの基本操作
持ち回りでオペレーターを交代しながらやりました。
自分のオペレーションをみんなに見られるというのは緊張しましたが、
わからないところなどをみんなで相談しながらできたので心強かったです。
また、手順で詰まった時もすぐに寺田さんが丁寧に説明してくださるので
ストレスフリーなハンズオンでした。
モブプロは激しい意見のぶつかり合いをする怖いものだと思っていたので
かなり印象が改善されました笑
その他感想
運営側で丸一日イベントに参加するのは初めてだったので、前日からずっとドキドキしてました…
運営として参加した反省としては、もっと会場の様子を写真に撮っておけば良かったと思いました。
女子部のイベントの様子がわかることで来てみようと思える人がきっといると思ってるので、今後はイベントの様子がわかるような写真を撮ります!
(私は初めてJazug女子部のイベントに参加したときは、どんな感じか知りたくて事前にめちゃくちゃ調べたタイプなので笑
今後のイベント情報
てらださんのJapan Tour in Summerはまだまだこれからですので
各会場でご都合会う方はぜひ!
会場ごとにプログラムも異なるようなのでできることなら全通したいくらいです笑
詳細は、後ほどブログ等で別途書きますが、7月下旬から8月下旬にかけて「Japan Tour in Summer: Java & k8s on Azure まつり」
— 寺田佳央@クラウド・アドボケイト (@yoshioterada) June 26, 2019
通称:てらだよしおまつり by #てらだよしおがんばれ ツアーを開催します。 pic.twitter.com/JWAn3Oi8S3
JAZUG (Japan Azure User Group) - connpass
ツイッターのハッシュタグ【#てらだよしおまつり】で検索いただくと
参加者の方の生の声や現地の様子がよりわかると思います。
おわり
朝から夕方までという長丁場でしたが、
暑い中ご参加いただいたみなさま、共催いただいたJava女子部のみなさま、本当にありがとうございました。
また女子部のイベントでお会いできると嬉しいです。
世界一簡単なFAQチャットボットの作り方
※2019/11/30更新
Microsoft Ignite 2019でPower Virtual Agentsが発表されました。
もしかしたら世界一簡単の称号を明け渡さなければいけないかもしれないので
こちらの記事もご参照ください。
Power Virtual Agentsでチャットボットを作ってみる - オンプレ系インフラエンジニアがAzureを勉強する
はじめに
MicrosoftのCognitive Servicesというサービスが手軽にできるAIで面白そうということで軽く触ってみようと思います。
Cognitive Servicesとは
Microsoftが提供するAIの人工知能パーツ群です。
画像認識や自然言語処理、音声処理などのサービスが用意されています。
今回はその中で言語の分野の「QnA Maker」というサービスを使って
Teamsのチャットボットを作ります。
今回つくるもの
Azureのサポートについて回答してくれるTeamsのチャットボットを作成します。
もちろん日本語対応です。
参考サイト様
QnA ボット - Azure Bot Service - QnA Maker - Azure Cognitive Services | Microsoft Docs
「QnAMaker」とは?Microsoftの自動チャットボット会話生成サービスを試してみた | Ledge.ai
準備するもの
- Azureアカウント
- チャットボットにするFAQサイト
作り方
KBの作成
QnA Makerにアクセスします。
[GET STARTED]をクリックし、Azureのアカウントでログインします。
新規でナレッジベースを作るので[Create a knowledge base]をクリックします。
STEP1
AzureポータルにQnA Makerのリソースを作ります。
[Create a QnA service]をクリックすると、Azureポータルに飛びます。
必要事項を入力します。
価格レベルは今回は最安にします。
STEP2
作成ができたらQnA Makerの方に戻ります。
先ほど作った情報を選択します。
STEP3
KBの名前を設定します。
QnA MakerサイトのマイページにKBの一覧が表示されますが、その時の表示名になります。
STEP4
参考にするFAQサイトのURLを入力します。
今回はAzureのサポートに関するFAQのサイトにします。
補足
[Chit-chat]という欄ではチャットボットの性格が指定できますが、
最低限の会話テンプレート(挨拶等)が登録されるだけで
特に口調が変わるとかではないようです。
STEP5
[Create your KB]をクリックします。
しばらく待つとKBが作成され、FAQサイトの質問と回答が登録されているのが確認できます。
もちろんここで質問と回答をカスタマイズすることもできます。
Botの作成
作成したKBをbotとして出力します。
[PUBLISH>Publish]をクリックします。
[Create Bot]をクリックするとAzureポータルのWeb アプリ ボット作成のページに飛びます。
必要項目を入力します。
ここでも価格レベルは最安にします。
作成が完了したらテストします。
Teamsに接続する
作成したbotをTeamsで使えるようにします。
Webアプリボットの[チャンネル]をクリックします。
チャンネルの追加でTeamsを選択します。
[保存]をクリックします。
特に設定は不要です。
チェックボックスにチェックを入れ、[Agree]をクリックします。
保存が完了したら、
[チャンネルに接続]のページからTeamsに接続します。
Microsoft App IDをTeamsで検索して表示させることもできます。
チャットボットができています!やったー
おまけ
アイコンと表示名を設定してチャットボットらしくします。
Webアプリボットのページで[設定]をクリックします。
アイコンを設定します。pngの画像をアップロード。
表示名もボットらしくします。
Teamsで確認します。
名前とアイコンが変わって、チャットボットらしくなりました。
おわり
こんなに簡単にチャットボットが作れると思ってなかったのでびっくりしました。
仕事中に癒してくれるようなチャットボットとかも作りたいですね…
他のCognitive Servicesも触ってみたいと思います。
GoogleHomeとAzureを使っておうちの小物の住所を決めよう!
テーマ
GoogleHomeに話しかけると、おうちの無くしがちな小物の片づけ場所(定位置)を教えてくれるものを作ります。
例)
人「メガネはどこにある?」
GoogleHome「メガネの置き場所は洗面所の棚の上です」
目的
今回はTableStorageの読み込み機能を使うことがメイン目的です。
ついでにGoogleHomeとAzureFunctionsを組み合わせます。
全体の流れ
- TableStorageの設定
- AzureFunctionsの作成
- DialogflowとGoogleHomeの設定
TableStorageの設定
ストレージアカウントの作成
Azureポータルにログインします。
ストレージアカウントを作成します。
この辺は検索するといろんなわかりやすい記事が出てくるので詳細は割愛します。
ゼロからはじめるAzure(2) ストレージの種類と概要 | マイナビニュース
Table作成
ストレージアカウントができたら、テーブルを作成します。
ひとまず名前だけ設定します。
Microsoft Azure Storage Explorerの初期設定
上記で作成したテーブルを管理するためにMicrosoft Azure Storage Explorerをインストールします。
Azure Storage Explorer – クラウド ストレージ管理 | Microsoft Azure
インストールしたら起動させ、Azureのアカウントと紐づけます。
左サイドバーの人型をクリックします。
[Add an account...]をクリックします。
[Add an Azure Account]を選択し、[Sign in...]をクリックします。
上記でAzureポータルにログインしてたアカウントでログインします。
追加されたアカウントが表示されます。
Tableにデータを入れる
左サイドバーのToggleExplorerのアイコンをクリックすると、さっき作ったストレージアカウントと空っぽのテーブルが表示されます。
ここに.csvファイルをインポートして中身を入れます。
[Import]をクリックします。
事前に作っておいた.csvファイルを選択します。
対象の小物と置き場所をここで決めます。
インポートする項目が確認されます。
[Insert]をクリックします。
データが入ります。
TableStorageの設定はこれでOKです。
ちょっと補足
.csvファイルの用意について。
.csvファイルがどんなものかいまいちわからなかったので
最初はMicrosoft Azure Storage Explorerから直接テーブルに適当な値を入れて、
Exportして.csvファイルを手に入れました。
それをちょっと改変してImportさせました。
PartitionKeyとRowKeyが必須項目ですが、項目さえあればよくて空欄でもインポート自体はできます。
Excelファイルからデータをインポート、エクスポートができるのはかなり助かります。
AzureFunctionsの準備
今回の動作の本体になるAzureFunctionsの設定をします。
コード自体はGitHubを参照ください。
TableStorageの読み込みが、Microsoftの公式ドキュメントを参照してもなかなかうまくいかず苦戦しました。
(書き込みはドキュメント通りにすぐできました。
GitHub - kgnk-hkr/AddressManagement: TableStorage読み取りのためのFunctions
DialogflowとGoogleHomeの設定
GoogleHomeとやり取りをするキーワードの設定をします。
この辺りは過去記事と重複するので詳細は省きます。
Google HomeとAzure Functionsを連携させる - オンプレ系インフラエンジニアがAzureを勉強する
Entitiesは[items],[where]の二種類。
Intentsは問いかけのテンプレートを登録します。
今回は追加で終了の文言を追加してみたのでそこだけ追記します。
[finish]というIntentsを作ります。
終わりにするときの言葉を登録します。
今回は「ありがとう」です。
[Responses]に終了の時にGoogleHomeが言う言葉を設定します。
今回は「どういたしまして」です。
[Fulfillment]は何も設定しません。
あとはAzureFunctionsのURLを登録して完成です!
デモ
シミュレーターで実行してみるとこんな感じです。やったー。
これで何をどこにしまうか決められますね!
決めた場所に片づけられればあわあわと探すこともなくなるはず…
改善点
- 今は読み込みしかできないので、書き込みもできるようにして置き場所を変えたときに情報を音声でアップデートできるようにしたいです。
- 逆引きができるようにしたいです。
- コードがごりごりの力業のようになっているのでもう少しスマートにしたいです。
参考サイト様
Azure Functions における Azure Table Storage のバインド | Microsoft Docs
Google HomeにRSSを読み上げさせよう:完成編 (1/3):特集:Google Homeプログラミングを始めよう - @IT
Azure Logic Appsを使ってTwitter Botを作る
■動機
ブログの記事をツイッターで定期的に投稿して宣伝したいと思いました。
■目的
Azure Logic Apps機能を使って、
ツイッターに定期的な投稿をすること。
■必要なもの
Azureアカウント
Twitterアカウント
■Azure Logic Appsについて
Azure Logic Appsとは、Azureの機能の一つで
ワークフローを指定するだけで
いろいろなアプリやシステムを連携させて動かすことができるものです。
詳細はMicrosoftの公式ドキュメントを参照ください。
Azure Logic Apps のドキュメント - チュートリアル、API リファレンス | Microsoft Docs
■ロジックアプリを作る
Azureポータルにサインインし、
[新規作成[+]]>[logic]で検索>[Logic App]>[作成]をクリックします。
Logic Appの名前、リソースグループ、場所を指定します。
今回は以下のパラメータでやります。
■ワークフローの作成(トリガー部分)
作成したロジックアプリのリソースに飛ぶとデザイナーのテンプレートがいくつか出てきます。
やりたいことに合わせて、テンプレートから選択するのもいいと思います。
今回はテンプレートを使わず1から作るので[空のロジック アプリ]をクリックします。
まず初めにトリガーを設定します。
[スケジュール]>[繰り返し]をクリックします。
1つ目のツイートを投稿したい日時を設定します。
今回は7日周期にします。
■ワークフローの作成(アクション部分)
次にアクションとして実際にツイートする内容を設定します。
[+新しいステップ]をクリックします。
[Twitter]>[ツイートの投稿]をクリックします。
Twitterへのサインインを求められます。
[サインイン]をクリックすると、Twitterへのサインイン画面が出てきます。
ツイートを投稿したいアカウントでサインインします。
認証許可の確認画面が出るので[Allow access]をクリックします。
アカウントの連携ができたらツイートの内容を設定します。
[新しいパラメーターの追加]をクリックし、
[ツイートテキスト]のチェックボックスを有効にします。
[ツイートテキスト]に投稿内容を設定します。
2つ目以降のツイートの設定をします。
[+新しいステップ]をクリックします。
[スケジュール]>[待ち時間]をクリックします。
前のツイートが投稿された次の日に投稿されるようにします。
同様にツイートの内容を設定します。
以降、投稿したいツイートの数だけ繰り返します。
完了したら[保存]をクリックします。
■実行
作成したワークフローを実行します。
[実行]をクリックします。
実際のTwitterアカウントを見に行くとちゃんと投稿されています。やったー!
■コスト
Azureを使う上で気になるのはやはりコストですよね。
定期botに使って、知らない間にかさんでいたら…と思うと恐ろしいですが
LogicApps自体はほとんどコストはかからないようです。
1日1回投稿の今回程度のbotであれば個人的には許容内かと。
価格 - Logic Apps | Microsoft Azure
テストのために試行錯誤してた日のコストはこれくらいでした。
■改善点
- 記事を更新するたびにAzureにも設定を追加しないといけない。
- 投稿が被らないように、記事の数に合わせてトリガーの日数間隔を計算しないといけない。
うーん、不便。
これなら完全無料のTwitterBotサービスを使ったほうがよさそうです。
理想はブログからランダムに記事を引っ張ってきて
1日2回くらい投稿させたいです。
アクションには機能がいろいろあるのでもう少しワークフローを練ります。
デザイナーじゃなくてコードで書いたほうが楽かもしれない。。。
Google HomeとAzure Functionsを連携させる
Google HomeとAzure Functionsを連携させて簡単なやり取りができるようにします。
動機
・家に使ってないGoogle Home miniがあったから
・成果が目に見えるのでAzureの勉強としてわかりやすく面白そう
今回やること
Azure Functionsと連携させてGoogle Homeに何かをさせようとしたときの土台になりそうなこちらの記事を再現します。
Google アシスタントアプリを開発する時に Fulfillment の先を C# で開発する方法(スマートスピーカーを遊びたおす会での LT 内容) - かずきのBlog@hatena
環境
・Windows10
・Azureアカウント(サブスクリプション持ち)
・Visual Studio 2017
Function APP新規作成(Azureポータル作業部分)
Azureポータルでにログインし、Function APPを新規作成します。
必要事項を記入し、作成すると以下のような項目ができます。
稲妻アイコンのものがFunction APPの本体ですね。
Function APP新規作成(Visual Studio作業部分)
Function APPの中身を作っていきます。
参考サイトではAzure Functions Core Toolsを使っていますが、
Visual Studio 2017でもできるようなので今回はローカルのVisual Studio 2017で作成します。
Visual Studio の新規作成にて、[Azure Functions]>[HTTP trigger]を選択します。
次に各クラスを作成します。
今回必要なのは大きく分けて2種類です。
・JSONの送受信部分
GoogleHomeとやり取りをするには、JSON形式で受け取ってJSON形式で返します。
よってその窓口になる部分を作ります。
・メイン関数部分
何を受け取った時に何と返すかを決める動作のメイン部分になります。
JSON送受信部分
基本的には以下のサイトを利用します。
・JSONのサンプルが公開されているサイト
Dialogflow Webhook Format | Actions on Google | Google Developers
・JSONを各言語のコードにしてくれるサイト
<リクエスト側>
コピーしたものを変換サイトの左ペインにペーストし、
右ペインで言語とnamespaceを変更します。
今回のnamespaceは「DialogflowWebhook.Requests」です。
[Copy Code]でコピーしたら、VisualStudioに戻ります。
クラスを新規追加し、ペーストします。
このときclass名が「Welcome」になっているので「DialogflowRequest」に変更します。
<レスポンス側>
リクエスト側と同様です。
コピーしてくるJSONのサンプルだけ異なります。
クラス名は「DialogflowResponse」です。
メイン関数部分
参考サイトよりコピーしました。
新規で作成したときデフォルトで「Function1.cs」が作成されていますが、今回は使用しないのでプロジェクトから外しています。
発行
Azureポータル上で作成したFunction APPに発行します。
発行先はすでに作成していますので、[既存のものを選択]を選びます。
発行が完了するとAzureポータル上で関数として表示されます。
[関数のURLの取得]にてこのFunction APPを呼び出すためのURLをコピーします。
Dialogflowの設定
Dialogflowの基本的な操作は以下を参考にさせていただきました。
Dialogflowでチャットボットをつくってみる - Qiita
今回Dialogflowで触る部分は以下です。
<新規Intents作成>
①新規Intentsの名前
この名前はメイン関数で指定してる名前になります。
②Training phrasesにGoogle Homeに問いかける文言を設定する
③Fulfillmentを[Enable]にする
<Fulfillmentの設定>
FulfillmentにAzureポータル上でコピーしたURLをペーストします。
動作確認
Google Assistantに接続し、動作確認します。
Intentsで登録した文言を送ると関数で指定した文言が返ってきますね!
ちょい足し
Intentsを増やして、返答パターンを増やしてみます。
<Dialogflow側>
新規Intensを作成します。
<関数側>
元がif構文なのでelse ifで分岐を増やします。
コードを変更したら上書き発行します。
動作確認します。
2パターンの返しができるようになりました!
以上をベースにもう少し複雑なやり取りができるようにしていきます!
【レポ】JAZUG女子部×JAWS-UGクラウド女子会 合同くりぱ勉強会
JAZUG女子部×JAWS-UGクラウド女子会 合同くりぱ勉強会に参加してきました。
JAZUG女子部×JAWS-UGクラウド女子会 合同勉強会
techplay.jp
Microsoftのクラウドサービス Azureのユーザグループ『JAZUG』
Japan Azure User Group | JAZUG
Amazonのクラウドサービス AWSのユーザグループ『JAWS-UG』
JAWS-UG(AWS Users Group – Japan)
上記二つにはそれぞれ女子部が存在します。
兼ねてより気になっていたこの女子部イベントに念願叶い参加してきましたので
その感想を書いていきます!
全体の印象
女子会、クリパがテーマということで、駄菓子やドーナツなどたくさんあってフランクな雰囲気でした。
TECHPLAYさんの施設自体もとてもきれい!
女性限定のイベントでしたが、エスコートも可ということで
男性も数名いらっしゃいました。
はじめにAzureについてざっくり
主催の方々のご挨拶の後に
JAZUG女子部の方から
まずはざっくりしたAzureの説明が!
中でも印象に残ってるのはサービスの種類について。
Azureのサービスは今時点でなんとおよそ272種類!(前日の夜に主催の方々が数えたそうです笑
あまりに多いので全てを知ってる人はほとんどいないそう…
Azureはやりたい用途に合ったサービスを見つけて
それ1つで実現することを想定されてるそうです。
続いてAWSについてザックリ
JAWS-UGクラウド女子会の方よりAWS のお話!
主にAWSの歴史とイベントについて。
印象に残っているのは、
AWSはオンプレからIaaS、PaaSを経てSaaSへ移行するまでに
たくさんあった課題の隙間を埋めていったというところ。
オンプレからクラウドまでを学ぶ身としてはこの辺りはちゃんとお勉強しておきたいところ…
Azureと比較して、
AWSはサービスをいくつか組み合わせてやりたいことを実現する形のようです。
最後にワークショップ
4人1組のチームでテーマに沿ったアーキテクチャを考えるワークショップでした!
テーマはこちら↓↓↓
『お題に沿ってクリスマスに関連したアーキテクチャを考える』
お題は
私たちはAWSを使ったIoTについてがテーマでした。
チームにまさにAWSのIoTに詳しい方がいらっしゃったので
アイデアを出すとどんどんぴったりなAWSのサービスを教えてくださり、
まったく初心者の私としては大変勉強になりました。
私たちのチームが考えたサービス名は『ボクとサンタさん』です。
サンタさんが来たことを子供が知るためのサービスです!
概要としては、
サンタさんが家に入ってきたことを家中に設置したいろいろなセンサーで感知し、
その情報をラズパイに集約→SORACOM AirでAWSに飛ばす。
AWS内ではAWS IoT→Lambda→デバイスへ通知という流れです。
おまけとして、デバイスに通知したあとにAlexaでサンタさんからのメッセージが聞けるというオプションもつけました笑
ほかのチームはクリスマスコフレやケーキに絡めたアーキテクチャなどがあり、聞いてるだけでわくわくしました!
また、それぞれのチームにスペシャリストが1人はいるようにチーム分けがされていたようです。(配慮が細やか!
おわりに
クラウドということもあってか、中々出会うことのできないオンプレやインフラ寄りの女性もちらほらいらっしゃってとても嬉しかったです!
主催様方の配慮も細やかで過ごしやすい空間でした。
今度はもう少しAzureの知識をつけてワークショップで貢献できるようにしていきますヽ(•̀ω•́ )ゝ✧