ゆれくるコール開発日誌

ゆれくるコール、あめふるコール、つながるコールや緊急地震速報のことなど

C#でAWS Kinesisからデータをひっこぬく

こんにちは、商品開発部の池端です。

久々の開発ブログです、、

 

AWS KinesisからデータをひっこぬくのをC#でやりたい。

 

Kinesisのクライアントを作るにはAWS SDKで実現してもいいんだけど、Kinesis Client Libraryというのがあって、それを利用すると楽に開発できる、らしい。

ここにそう書いてある。

docs.aws.amazon.com

 

Kinesis Client Libraryはいろんなプログラミング言語用のものが用意されていて、C#のもある。
GitHubここにライブラリ、サンプルコードひっくるめてあります。

 

これをダウンロードしてきてサンプルコード動かしてみれば、C#でのKinesis Client Libraryの利用方法がなんとなくわかります。
このサンプルコードを動かすのに、プロジェクト丸ごとビルドしてサンプルコードのプロジェクト実行すればよいわけでなく、ちょっとした手間が必要でした。
GitHubのREAdMEに書いてあるのでその通りにすればいいんだけど、日本語での解説記事があんまりないようなので、この記事で手順を書いてみたいと思います。

 

0. Java実行環境の準備
Kinesis Client LibraryはJavaのライブラリなのです。
そのためJavaの実行環境が必要になります。
Javaの実行環境がない場合は、Javaの実行環境をあらかじめ用意しましょう。

 

1. Amazon Kinesis Client Library (.NET)のダウンロード
GitHubここからダウンロードします。

 

2. プロジェクトのビルド
何も考えずに、ソリューションのビルドってするとビルドエラーになっちゃいます。
任意のプロジェクトを選択して、個別にビルドするとNuGetがうまいことやってくれます。
その後ソリューションのビルドをすればおk。

 

3. Kinesisにデータをつっこむ
SampleProducerというプロジェクトがKinesisにデータをつっこむサンプルです。

 

こちらを動かすにはAWS Credencialsの設定が必要です。
AWS Credencialsの設定はAWSSDKが導入されていて、Credencialsの設定がされていれば必要ないんですが、検証を行った2016/12/06現在、なぜか最新のAWS SDK(AWSToolsAndSDKForNet_sdk-3.3.27.0_ps-3.3.27.0_tk-1.11.0.0.msi)がWindowsにインストールできない状況でした。(インストール中に「There is a problem with this Windows Installer package」とかいわれちゃう)
そのためプロジェクトのapp.configのappSettingsに、"AWSAccessKey"と"AWSSecretKey"を追加しました。

 

プロジェクトを実行すると、USEast1(米国東部(バージニア北部))にmyTestStreamという名前でKinesis Streamが作成され、10個のテストデータがつっこまれます。

 

4. Kinesisからデータをひっこぬく
SampleConsumerというプロジェクトがKinesisからデータをひっこぬくサンプルです。

 

まず、SampleConsumerプロジェクト内のkcl.propertiesのexecutableNameの設定を、"bin/Debug/SampleConsumer.exe"とします。
"Debug"の部分はビルドの仕方(Release or Debug)に合わせて変更してください。

 

次に、コマンドプロンプトでSampleConsumerプロジェクトのディレクトリにcdし、下記のコマンドを実行します。

..\Boot strap\bin\Debug\Bootstrap.exe --properties kcl.properties --execute

こちらも"Debug"の部分はビルドの仕方(Release or Debug)に合わせて変更してください。

 

実行が始まると、初回実行時に必要なもの(Javaのライブラリ)をダウンロードし、動作するようになっています。
標準出力にKinesisから取得したデータが表示されると思います。(その他にもいろいろ標準出力されますが、、)
こちらはCtrl+Cで止めるまで動き続け、Kinesisにデータが追加される度に動作します。

 

なおSampleConsumerは処理の際に、USEast1(米国東部(バージニア北部))のDynamoDBにDotNetKinesisSampleという名前でテーブルを作成します。

 

こちらを動かすにもAWS Credencialsの設定が必要です。
上記の理由によりSDKが導入できなかったので、Windowsユーザのホームディレクトリに.awsというディレクトリを作成し、credentialsファイルをおき、その中にaws_access_key_idとaws_secret_access_keyを記載しました。
ちなみにWindowsで"."からはじまるディレクトリの作成は、".aws."とタイプします。

 

5. あとかたづけ
USEast1(米国東部(バージニア北部)) に自動的に作成されたKinesis StreamとDynamoDBのテーブルを忘れずに削除しましょう。
つかわなくても、存在するだけでお金かかっちゃいます。。

 

このサンプルを動かし、サンプルプロジェクトのコードを見ればなんとなく使い方がわかるんじゃないかと思います。
動作させるのにJava環境が必要だったりするので、実運用環境ではその辺がネックになったりしそうな気もしますね。

 

だれかのお役に立つと幸いです!

 

キャンセル報について

こんにちは、商品開発部の齋藤です。

先日の震度7の誤報では皆様にご心配をおかけいたしました。

その誤報について、15秒後にキャンセル報と呼ばれる情報が発信されていました。先ほどの地震情報は誤りであったとする情報です。

私どものシステムでは緊急地震速報は自動的に震度計算を行い、お客様の端末に配信する一方で、キャンセル報については自動的には配信せず、事実確認を行ったうえで手動で配信する、という対応を行っております。

緊急地震速報が誤った情報を出すことがあることと同様に、キャンセル報も誤った情報が来る可能性は0ではありません。


震度7地震が来ます(実際には来ない)
震度7地震は来ません(実際には来る)


この2つでは後者の方が甚大な被害を出すことが想定されます。
キャンセル報の方が緊急地震速報よりもデリケートな情報であると私どもは考えており、そのためキャンセル報を自動で出すことはしておりませんでした。


しかしながら今後は、気象庁様やその他の配信事業様などと、キャンセル報の扱いについてご相談させていただいた上で、これからのキャンセル報の扱いについて検討してまいります。


これからも改善を続けてまいりますので、ゆれくるコールを今後ともよろしくお願いいたします。

震度速報の配信に対応しました

こんにちは、商品開発部の池端です。

 

本日ゆれくるコール for Android Ver.3.3.2をリリースしました。

このリリースで震度速報の通知に対応しました。

このタイミングでゆれくるコール for iOSも同様の対応をしました。

iOS版はアプリの更新はありません。)

 

この震度速報とは、震度3以上の地震発生後約1分半後に、気象庁より発表される地震のお知らせです。

 

緊急地震速報ではなく、地震の揺れの後の震度の観測情報ですのでご注意ください!

 

地震発生直後、一番最初にテレビにテロップで流れる情報がありますよね?

あの情報が震度速報です。

 

気象庁が発表する地震の情報には下記のものがあります。

震度速報は、地震の揺れの後の震度の観測情報としては最速の情報です。

f:id:ken447:20160427173939p:plain

地震情報の詳細については下記をご覧ください。

www.data.jma.go.jp

 

ところでゆれくるコールももともと「地震情報」という震度観測情報を通知していました。

設定した地点の都道府県で、最大震度が設定震度に到達した場合に通知し、最大震度5弱の場合は全国一律通知を行います。

 

この地震情報の通知は、上記表中の「各地の震度に関する情報」をもとに通知を行っており、揺れの後約5分後に通知されていました。

 

熊本地震の発生後、「ゆれくるの通知が遅い!」という声も頂いておりますが、原因のひとつはこの地震情報の通知が遅いということもあったのかと考えています。

 

今回の対応で、震度3以上の地震が発生した場合は、震度速報をもとにして地震情報を通知するようになります。

大きな地震発生時は、より早く震度の観測情報が届くことになります。

 

ちなみに、緊急地震速報地震の揺れの後の震度の観測情報に先立って発表される情報になりますので念のため。

緊急地震速報のしくみや詳細については下記をご覧ください。

www.data.jma.go.jp

 

よりいっそう便利になったゆれくるコールを、みなさまの防災・減災にお役立て頂ければと思います。

 

それではまた。

 

がんばろう!熊本・大分

 

熊本地震発生後の「各地の震度に関する情報」について

こんにちは、商品開発部の池端です。

 

4/14の熊本での地震発生以降、気象庁は、熊本県熊本地方、熊本県阿蘇地方、大分県西部、大分県中部付近の震度3以下の地震について「各地の震度に関する情報」を発表していませんでしたが、昨日4/26 18:00以降、再度発表するようになりました。

 

気象庁|地震情報

※上記リンク先の下部に、下記のような記載があります。

なお、今後は「地震回数に関する情報」にかえて、「各地の震度に関する情報」において震度1以上の情報を発表します。

 

「各地の震度に関する情報」とは、震度1以上を観測した地点のほか、地震の発生場所(震源)やその規模(マグニチュード)を発表する情報です。

詳しくは下記をご覧ください。

 

www.data.jma.go.jp

 

気象庁では4月14日21時26分の熊本での最初の地震以降、同一地域付近で震度1以上の地震が多発し、通常の地震情報の発表を継続することにより緊急作業や防災機関での対応などに影響が出ると判断したことから、地震情報は震度3以上の場合に発表することとしました。そのかわり、震度2以下の場合は「地震回数に関する情報」という地震が多発した場合等に発表される情報で地震回数をまとめて発表するようになりました。

大きな地震発生後はこのような対応がとられることはあり、311の際も気象庁では同様の対応がなされていました。

 

ゆれくるの地震情報の通知(緊急地震速報ではなく、地震の揺れの後の観測情報)は、「各地の震度に関する情報」をもとにして行っています。そのため、気象庁から発表されない場合は通知もされませんでした。

また一覧の地震情報は、「各地の震度に関する情報」が発表されたのちはそちらの内容で更新しています。地震情報の通知と同様、気象庁から発表されない場合は一覧の更新もされませんでした。

 

震度1はともかくとして、震度2くらいであれば体感することも多いかと思います。

特に被災地では、揺れに敏感になっているのでなおさらですよね。

実際に揺れたけど、気象庁サイトやゆれくるには掲載されていない!なんてこともあったかと思いますが、それは上記の理由によるものです。

 

尚、緊急地震速報の配信については配信条件の変更はありませんでしたので、下記の条件に合致する場合は配信されていました。

 

  • 気象庁の多機能型地震計設置のいずれかの観測点において、P波またはS波の振幅が100ガル以上となった場合。
  • 地震計で観測された地震波を解析した結果、震源マグニチュード・各地の予測震度が求まり、そのマグニチュードが3.5以上、または最大予測震度が3以上である場合。

 

緊急地震速報の発表条件の詳細は下記を参照ください。

www.data.jma.go.jp

 

昨日4/26 18:00以降、ゆれくるの一覧や気象庁サイトを見ると、結構な数の震度1、2の情報が発表されていますね。

規模は小さいですが、まだまだ地震は多発しています。

くれぐれもご注意ください。

それではまた。

 

がんばろう!熊本・大分

ゆれくるAndroidのステータスバーのアイコンについて

こんにちは。商品開発部の齋藤です。

4月11日にリリースいたしましたゆれくるコールAndroid バージョン3.3.0では、
今までステータスバーに表示させていたアイコンをなくしてしまいました。
これはプッシュ通知に関する通信方法を変更した関係でそのようにいたしました。

バージョン3.2.x以前では、独自の配信サーバと各端末が常に接続されている状態で、地震が起こった際にはその通信を使って通知を送っていました。
バックグラウンドの常駐処理で定期的に繋がっているかどうかを確認するようになっており、これでステータスバーのアイコンの状態を変更していました。

f:id:ken447:20160413152256p:plain

ところが、Android6.0のDozeモードという機能によって、端末が深いスリープ状態になっているときはバックグラウンドで動作をさせることができなくなりました。
これにより、Android6.0では地震が発生しても、端末が深いスリープ状態のときは通知を受信することができなくなりました。
ただし、例外的にGoogle Cloud Messaging(GCM)というサーバと端末をやりとりするサービスを利用する場合、深いスリープ状態でも通信が可能です。
ゆれくるバージョン3.3.0ではこのGCMを用いてプッシュ通知を行っています。
GCMはGoogleによるサービスで、ゆれくるアプリが常駐していなくても通知を受け取ることができます。

f:id:ken447:20160413152214p:plain

さて、ステータスバーのアイコンですが、アイコンが黄色のときと灰色のときで通信中かどうかを表示していました。
GCMを利用することになったため常駐サービスを動かすことがなくなり、このアイコンの色を変更することができなくなってしまいました。
アイコンの色を変えるために常駐サービスを動かすようにしたとしても、プッシュ通知を受け取れる状態であるかの判断を正しくすることができないため、
例えばアイコンが黄色なのに実際は通知が受け取れない、といった問題が発生する可能性があります。
黄色と灰色のアイコンの切り替えを行う条件をいくつか考えてそれに基づいて切り替えることもできそうではありますが、
難易度や信頼性などから今回のアップデートでは見送らせていただきました。

アイコンがないと不安という声もお聞きしているため、また何らかの形でステータスバーのアイコンを復活させることを検討しております。
また、現状でもインターネットに接続されており、GooglePlay開発者サービスがインストールされていれば問題なく動作いたしますので、ご安心いただけますようよろしくお願いいたします。

赤十字の講習に行ってきました!【その2】

こんにちは!商品企画部の松本です。

 

日本赤十字社で実施している救急法の救急員養成講習へ参加してきたので、体験レポートをしたいと思います。
ちなみに、救急員養成講習は基礎講習を受講し、認定証を受け取ることができた人しか参加することができないので、受講を希望する方はまずは基礎講習を受講してください。
 

救急員養成講習の詳細は下記をご覧ください。

講習に参加したい 救急員養成講習|日本赤十字社 東京都支部

 

私が受講した日は学生の方からやや年齢の高い方まで幅広い世代の方がおり、友人同士で参加しているような方も多くいらっしゃいました。

実技では2人1組になる必要があるので、知り合いの人と参加するとやりやすいかもしれないです。

 

養成講習は以下のような感じで進みました。

1日目:学科の学習、実技の学習

2日目:実技の学習、認定試験(学科、実技)

 

【学科】

テキストを確認しながら指導員の方のお話を聞き、重要なところをチェックしていきます。

認定試験には筆記試験もあるので、重要なところのチェックがとても大切になります。

テキストに書き込むための赤ぺんや蛍光ペンがあると便利です。

【実技】

止血の方法や三角巾を使った固定の方法などを学んでいきます。

指導員の方の実演を見ながら、自分でできるように練習していきます。

わからないところは指導員の方に声をかければ個別に教えていただくこともできました。

頭や肩、足の傷の手当の方法など、多くのことを試験に向けて覚えなければいけませんので、集中力が必要です!

【認定試験】

筆記試験と実技試験があり、どちらも80%以上できていなければ不合格となってしまいます。

無事に合格をすると、後日、認定証が届きます!

 

今回、私も無事に筆記と実技を合格することができ、認定証をもらうことができました☆

f:id:ken447:20150824124845p:plain

 

救急員養成講習は2日間、朝から夕方まで講習があるので大変かもしれませんが、「もしも」のときのためにぜひ講習を受けてみてくださいね!

赤十字の講習に行ってきました!

皆さん、こんにちは!商品企画部の松本です。

 

先日、日本赤十字社で実施している救急法の基礎講習へ参加してきたので、体験レポートをしたいと思います。

 

講習については下記をご覧ください。
 
 
まず初めに、なんと私は申し込みでつまづきました…。
講習日程を見ると、意外とたくさんやってるな~という印象だったのですが、いざ申し込み画面へ進むと、満員ばっかり(゚□゚)!!
講習の受講を希望される方は早めの申し込みをおすすめします!

 

当日は30名ほどの方が参加してました。
男女比はちょうど半々くらいだったと思います。

 

はじめに講習についての説明などが簡単にあり、座学が始まります!
座学はテキストを確認しながら講師の方の説明を聞き、大事なところをチェックをしていきます。
大体1時間程度で座学はサッと終わり、以降はずっと実技を行います。
 
実技は2人1組になって進めていくので、まずは「バディ」と呼ばれるパートナーを決めます。
その後は、傷病者(助けるべき人)の意識の確認の仕方や身体の向きの変え方、心肺蘇生の練習をしていきます。
主に心肺蘇生を中心に行うのですが、ずっと膝立ち状態なので私は翌日ひざが痛くなりました…
 
そして最後に認定証をもらえるかをかけた筆記試験と実技試験を行い、無事に合格をすると1か月後くらいに認定証が自宅に届きます☆
 
私も無事に合格し、認定証をもらうことができました♪
 

f:id:ken447:20150721125732p:plain

 
皆さんも、「もしも」のときのために赤十字の講習を受けてみてはいかがでしょうか?
では、また次回!