ローカルフォルダ配下のファイルをBLOBに一括アップロードするbatファイルを作る
はじめに
BLOBストレージにファイルを一括アップロードできるbatファイルが必要になったので、作りました。
今回作るもの
特定のローカルフォルダ配下にある複数のファイルを、一括でBLOBストレージにアップロードするPowerShellスクリプトを作ります。
また、それを起動させるbatファイルまで作ります。
用意するもの
アップロード先のBLOBストレージ
Azure CLIが使用できるWindows環境
参照サイト様
Windows での Azure CLI のインストール | Microsoft Docs
az storage blob | Microsoft Docs
PowerShell のエラーコード処理 | netplanetes log
作成
ログインスクリプト
Azureにアクセスするためのログインスクリプトを作ります。
PowerShellからのログイン自体は下記コマンドでできます。
az login -u ユーザー名 -p パスワード
このコマンドを.ps1ファイルに記載します。
また、ユーザ名とパスワードは入力形式にしたいので変数化します。
パスワードは入力しているときに平文を表示したくないので、[-AsSecureString]のオプションを付けます。
$username = Read-Host "Azureアカウント"
$password = Read-Host "パスワード" -AsSecureStringaz login -u $username -p $password
これにより、スクリプト実行時には下記のような表示になります。
以上でログイン用のスクリプトはできました。
最終的なスクリプトの形は下記のGitHubを参照ください。
blob_upload_bat/login.ps1 at master · kgnk-hkr/blob_upload_bat · GitHub
アップロードのためのスクリプト
次に指定したファイルを指定したBLOBストレージにアップロードするスクリプトを作ります。
BLOBへのアップロード自体は下記コマンドでできます。
az storage blob upload-batch --account-name ストレージアカウント名 -d アップロード先のコンテナ名 --destination-path アップロード先のパス -s アップロード元のローカルフォルダパス
[アップロード元のローカルフォルダパス]を指定すると、そのフォルダ配下のファイルすべてがアップロードされます。
ログインスクリプト同様、アップロードに必要な情報は変数化します。
今回は、デフォルト値も利用したいため、デフォルト値のオプションも利用します。
Read-Hostを付けることで、対話的になるためよりユーザーに分かりやすくできます。
$defaultaccountname = 'defaultaccountname' ←これがデフォルト値
$accountname = Read-Host "ストレージアカウント名[デフォルト値:$($defaultaccountname)]"
$accountname = ($defaultaccountname,$accountname)[[bool]$accountname]$defaultcontainername = '$web' ←これがデフォルト値
$containername = Read-Host "コンテナ名[デフォルト値:$($defaultcontainername)]"
$containername = ($defaultcontainername,$containername)[[bool]$containername]$defaultdestinationpath = '/images/' ←これがデフォルト値
$destinationpath = Read-Host "アップロード先のパス[デフォルト値:$($defaultdestinationpath)]"
$destinationpath = ($defaultdestinationpath,$destinationpath)[[bool]$destinationpath]$sourcepath = Read-Host "アップロード元のフォルダーパス"
az storage blob upload-batch --account-name $accountname -d $containername --destination-path $destinationpath -s $sourcepath
このスクリプトを実行すると下記のようになります。
アップロードに最低限必要なのは以上ですが、
きちんとアップロードされたかを実行の前後で確認できるようにアップロード先のファイル一覧を取得するコマンドも追加します。
$date = (Get-Date -F G).Replace('/','').Replace(' ','_').Replace(':','');
$destbefore = $date + "_before_upload_list.txt"
$destafter = $date + "_after_upload_list.txt"az storage blob list --account-name $accountname --container-name $containername --output table --prefix $destinationpath > $destbefore
az storage blob list --account-name $accountname --container-name $containername --output table --prefix $destinationpath > $destafter
以上でファイルアップロード用のスクリプトはできました。
最終的なスクリプトの形は下記のGitHubを参照ください。
blob_upload_bat/FileUpload.ps1 at master · kgnk-hkr/blob_upload_bat · GitHub
2つのスクリプトを実行するためのbatファイル
上記2つのPowerShellスクリプトを実行するためのbatファイルを作ります。
2つのPowerShellスクリプトはbatファイルと同じ階層のフォルダに格納されていることとします。
スクリプトが失敗したときにはエラーメッセージを返すようにします。
少し長くなるので、コード自体はGitHubにて参照ください。
blob_upload_bat/Upload.bat at master · kgnk-hkr/blob_upload_bat · GitHub
このbatファイルを実行し、すべてのスクリプトが成功すると下記のようになります。
ちなみに、スクリプトが失敗すると下記のようになります。
Azureへのログインが失敗した場合
アップロード情報が間違っていてアップロードに失敗した場合
詰まったところ
スクリプトのエラー検出
上記で説明したようなコマンドをそのままスクリプトにした状態では、アップロードスクリプトが失敗していても、エラーとして検出されずに終えられてしまいました。
下記記事を参考にして、1処理ごとにデータが返されているかを確認するようにしました。
Using Azure CLI with PowerShell: error handling explained
フォルダ名に記号が入っている場合
コマンドでアップロードする場合に、アップロード先のコンテナ名に記号($など)が入っていると、ダブルクォーテーションで囲うとコマンドが通らない事象がありました。
下記の記事を参考に、シングルクォーテーションで囲ったらうまくいきました。
おわりに
エラー処理の部分などは結構苦労したのですが、細かなところは端折ってしまったので、完成形のものをご覧いただければと思います。
気力があればちゃんと書き起こします。
作成したスクリプトとbatファイルはGitHubにまとめてアップしています。
Azureでマイクラサーバーをたてる
はじめに
ずっとマイクラPEで一人で遊んでいたのですが、
マルチプレイもしてみたくなったので
Azureの勉強がてら、マイクラサーバーをAzureにたててみようと思います。
今回作るもの
準備するもの
参考サイト様
作り方
テンプレートから仮想マシンを作る
足りなくなったら拡張します。
難易度とかシード値とかですね。
ここはサーバーを立てた後でも修正できます。
ポートを設定する
ソフトウェアを展開する
sudo su -
サーバの起動方法や設定などの使い方が書いてあります。
zipファイルの中にあった、[server.properties]を編集して、アクセスするポートを設定します。
ここで設定するポートはAzureの仮想マシン上で設定したポートです。
デフォルト19132を使う場合は変更はいらないはずです。
vi server.properties
サーバーを起動させる
コンソールを分けておくことで、マイクラサーバーを起動しっぱなしにすることができて便利です。
screen
解凍したzipの中身があるところで下記のコマンドを実行し、サーバーを起動します。
LD_LIBRARY_PATH=. ./bedrock_server
[Server started.]が表示されたらOKです。
アクセスする
私はスマフォで遊んでいるのでPE版です。
コスト
起動させっぱなしとして、大体3000円/月くらいになりそうな見込みです。
おわりに
Power AutomateでTeamsに通知を送る
はじめに
社内ブログの更新をチームメンバーに周知するためのシステムをPower AutomateとTeamsを使って作ります。
設定する
Power Automateでフローを作る
テンプレートで「Teams」と検索すると、Teamsを使ったテンプレートがたくさん出てきます。
今回はその中の「RSS フィード ニュースを Teams へ」を使います。
テンプレートを開いて、RSSとTeamsの接続先のアカウントを設定します。
無事に接続先が認証されたら、[続行]をクリックします。
フローの中身を設定する
テンプレートなのですでに2つの項目が用意されてます。
RSSを取得する
[投稿のRSS]がリンクになっているので、そのURLをコピーします。
下記のようなURLが取れると思います。
RSSがどんなものかよくわからなかったので総務省が公開してるRSSを参考にしました。
RSSの設定
[When a feed item is published]の項目に取ってきたブログのRSSを入力します。
Teamsへの設定
今回はブログが更新されたことを通知したいので
[フィードタイトル]で更新されたページのタイトルを、
[フィードリンク]で更新されたページのURLを表示します。
[保存]をクリックして完成です!
テスト
実際にブログが更新されるとこんな感じで通知がきます。
デスクトップ版だとリンクがクリックできないんですが、アプリ版だとちゃんとクリックして飛べるんですよね…メッセージの設定がいけないのかな…
アダプティブカードを使ってもかっこいいかな~と思うので、これはもう少し検討してみます。
※2020/05/22追記
下記のようにタグをつけると、ハイパーリンクになってクリックで飛べるようになりました!
おわりに
Power Automateを使って簡単にブログの更新を周知できるようになりました!
これで頑張って書いた情報も、よりチームメンバーに見てもらえるようになりますね!
Power Automateは他にもいろんな使い方ができそうなので、探求が楽しみです~
オンライン英会話を始めた感想
はじめに
ご縁に恵まれ、中途採用面接で海外の上司と英語でお話することになりました。
普段全く英語に触れていないため、面接日の2週間前からオンライン英会話を始めました。(せめてもの悪あがき…
どこのオンライン英会話にも無料体験制度があり、何件か体験を受けてから入会したので、軽くレビューします。
私の英語スペック
オンライン英会話に求めていること
- 英語でのあいさつや簡単な自己紹介ができるようになること。
- あわよくば面接対策ができること。
- 初心者にやさしいこと。
無料体験レッスンを受けてみて
細かいレッスン体系などの比較は分かりやすいサイトがたくさんありますのでここでは私の個人的な主観の感想を。
料金プランはそれぞれ多様にありますので、比較的似ている料金のものや入会を検討したプランを抜粋します。当時のキャンペーン価格も含んでます。
QQEnglish
オンライン英会話ならQQEnglish!カランメソッド正式認定校
料金:3685円/月8回、6680円/月16回(1レッスン25分)ポイント購入制
レッスンツール:専用のレッスンルーム
教材:カランメソッド方式
その他:
体験後に日本語でのカウンセリングがあり、システムの説明などをしてくれる。
指導力の高いベテランの講師ほどレッスンに必要なポイントが多くなる。
感想:
初めてのオンライン英会話の一発目。
初心者にも優しいというポジティブなレビュー記事を見たので選択しました。
無料体験レッスンを2回やりました。
1回目は、オンライン英会話自体初めてということで、相手の言葉を聞き取れないと嫌な顔されるんじゃないかと身構えましたが、明るい女性の方とのレッスンで大変楽しく過ごせました。
2回目は1回目よりポイントの高い講師の方でしたが、落ち着いた方で会話が盛り上がるような感じではなかったです。
DMM英会話
料金:6480円/月(毎日1レッスン25分
レッスンツール:専用のレッスンルーム
教材:レベル、カテゴリーによって選択可能
感想:
周囲に入会者が一番多く、いろんな評判を聞くことができました。
教材が豊富にあります。いろんなカテゴリーから話題を選ぶことができるので、自分の目的には何が合うのかわからず迷ってしまいました。
少し早口な講師の方でしたが、明るくて、趣味の話で盛り上がりました。
レアジョブ
料金:5800円/月(毎日1レッスン25分
レッスンツール:専用のレッスンルーム
教材:レベル、カテゴリーによって選択可能(基本はカリキュラムに沿ったもの
その他:
日本語でのカウンセリングがあり、目的に応じたカリキュラムの提案をしてくれる。
感想:
レッスンルームの使い勝手の良さが際立ちました。
レッスンルームの表示にはほぼ全部に英語と日本語が書いてあります。
チャット部分には困った時の例文が載ってるので、急なシステムトラブルにも対応できました。
間違った言い回しをしたときに都度指摘してくれるため、授業然としてた印象でした。
Bizmate
料金:5500円/月(毎日1レッスン25分
レッスンツール:Skype
教材:レベルと目的によって選択
感想:
講師の方がベテランっぽい人で、チャットをうまく使いながら言い回しなどを教えてくれました。
体験レッスン終了時に自分がどのくらいのレベルなのかを教えてくれます。
おそらくその時のレベルと目的によって入会後の教材が決まると思われます。
無料体験だけでは、実際のレッスンのイメージがしづらかったです。
Kimini
Kimini英会話|学研のオンライン英会話
学研のオンライン英会話。
本当はここも気になっていたのですが、私が調べたときにはCOVID-19の影響でちょうど新規受付をしていなかったようで断念…
今は10日間無料キャンペーンをやっているようです。
入会してみて
私はレアジョブに入会しました。
入会の決め手
- 毎日レッスンができる。
- 体験の時の講師の先生が良かった。(少なくとも一人は合う先生がいるという安心感
- レッスンルームが使いやすい。
- 教材がカテゴリ分けされていて見やすい。(面接向けの教材もある
- その時の目的と気分よって教材を変えられる。
約1ヵ月続けてみた感想
- お気に入りの先生がいつもとれるとは限らないので、いろんな先生を試してみてお気に入りを増やす必要がある。
- 回線が悪く途切れることも度々ある。
- 同年代の同性を選ぶと十中八九話が盛り上がる。楽しい。
- 基本的にどこも入会後は1日1レッスン25分のようで、少し物足りないような気もするが、毎日続けようと思うとこれくらいがちょうどいいのかと。
- 最初のころは授業の指示さえ聞き取れなかったが、徐々に聞き取りやすくなってきたような気がする。
- 在宅勤務が続いていて人との会話に飢えていることもあり、会話するだけで楽しい。在宅が続くこの機会におすすめ!
面接の感想
私の面接がどの程度のレベルだったかは正確には分かりませんが、記録として面接の感想を少し。
準備としては、経歴を話すためのパワポと逆質問とよくある質問の回答を用意しました。
想定される質問は50問分くらい用意したのですが、質問自体ほとんどなかったです…
新卒就活の時のような質問攻めの面接というよりは、人となりを知るためのカンバセーションのようでした。
個人的な反省としては、自己紹介の時に「応募している職にいかに己がふさわしいか」をもっとアピールしてもよかったかなぁとか、
逆質問をもっと掘り下げて話を広げられたらよかったなぁと思っています。
海外の偉い人と1対1でお話する機会なんてなかなかないですからね。
面接当日は緊張しすぎてよく寝れず、体調不良に見舞われて死ぬかと思いました。
そんな緊張とは裏腹に、面接官の上司の方はめっちゃ優しい人でした。
英語が不慣れなことに対しても寛容で、面接の終了時には良くアピールできていたとのフォローもくれました。
案の定質問が聞き取れないこともありましたが、チャットツールのおかげで、会話としては成り立っていたような気がします。
おわりに
エンジニア同士の交流の場でも、英語でコミュニケーションがとれたらいいなぁと思う場面がにわかに増えてきたところだったので、ついに向き合わざるを得なくなったという感じでちょうどよかったです。機会に感謝です…
ITエンジニア×英語でぐーんと世界が広がるのが目に見えているので
これからも無理のないペースでオンライン英会話を続けていこうと思います。
Japan Power Apps Orchestraに参加しました
概要
先日、Microsoft Business Applications Summit2020が開催されました。
このイベントはMicrosoftのPower Platform関連とDynamics 365関連の製品に特化した技術イベントになります。
今年は時世もあり、オンラインイベントになっていました。
公式サイトにて、各セッションのオンデマンド配信もされているようです。
内容はすべて英語ですが、日本語でわかりやすくまとめてくださっている記事もありますのでぜひご確認ください。
Microsoft Business Applications Summit 2020 基調講演の日本語のまとめ - 吉田の備忘録
Japan Power Apps Orchestraに参加
MBASのSocial hourという枠で紹介されたJapan Power Apps Orchestraに参加しました。
日本各地のPower Apps Userたちが各々の楽器アプリで「歓喜の歌」を演奏しました。
私は過去の勉強会で作成した楽器アプリを少し改良し、HotelBellパートで参加しました。
【レポ】Power Apps でローコーディングな勉強会 #13に参加してきました - オンプレ系インフラエンジニアがAzureを勉強する
下記YouTubeにフルバージョンの演奏がアップロードされていますので、ぜひご覧ください。
PowerAppsで作った楽器の演奏とは思えないクオリティです!
感想
楽譜も読めない私が、オーケストラに参加できた上に世界の方々に見ていただけたというのは大変感慨深く、貴重な体験でした。
これもひとえにPower Appsと主催の方々のおかげです。
本当にありがとうございました!
日本だけに限らず、世界中のPower Apps Userたちと演奏できたらもっと楽しいだろうなと思います!
クラウドコンピューティングの基礎知識
はじめに
先日、クラウドの基礎とメリットについてお話する機会がありました。
改めて勉強し、今さらながら初めて知るようなこともあったので簡単にまとめました。
参照サイト様
総務省 ICTスキル総合習得教材
https://www.soumu.go.jp/ict_skill/pdf/ict_skill_2_2.pdf
NISTによるクラウドコンピューティングの定義
https://www.ipa.go.jp/files/000025366.pdf
クラウドの定義とは
クラウドには多様な形態があり、簡潔な定義が困難であるとされています。
そこで、NIST(米国国立標準技術研究所)が下記の5つの特徴を満たすものをクラウドとすると挙げました。
オンデマンドセルフサービス
いつでもだれでも触れる状態であること。
各サービスの提供者に連絡することなく、利用者が必要に応じて自分の意志で始められる環境であること。
この特徴により、「早く価値を生み出す環境」が実現できます。
幅広いネットワークアクセス
どこからでもアクセスができる状態であること。
インターネットがつながる環境であれば、場所は問わず、デバイスも自由となる。
この特徴により、どこでも同じ環境が使えるため、テレワークのような働き方改革にも向いています。
リソースの共有
クラウドサービスで提供しているリソースは、マルチテナントモデルとして集積されている。
そのリソースをユーザーの需要によって割り当てる。
ユーザーはリソースが物理的にどこにあるかを意識することはない。
スピーディーな拡張性
クラウドのリソースは、ユーザーの要求によって即座に拡張や縮小ができる。
場合によっては割り当てや提供サイズを自動化することもできる。
この特徴により、リソースの確保に対して工数を取らないため
オンデマンドセルフサービス同様、「早く価値を生み出す環境」が実現できます。
サービスが測定可能
ユーザーとクラウド提供者の双方にとって重要な、サービスの品質保証にかかわる特徴。
ユーザーは誰が何をどれくらい使用していたか、
クラウド提供者はいかにダウンタイムなくサービスを提供できたか、を知る必要がある。
それを明示するために各サービスに対する正確な測定が必要になる。
SLAの認識は以前からありましたが、
クラウドの特徴(スピーディーな拡張性等)によってさらに意識されるものとなりました。
クラウドの実装モデル
クラウドの実装モデルはクラウドサービスの利用機会の開かれ方によって、4種に分類されます。
今回は主に使われることが多い3つのモデルについて記載します。
パブリッククラウド
クラウド事業者が所有していて、一般公開されているクラウド。
誰でも利用することができる。
インターネットを経由してWebブラウザでアクセスできる。
プライベートクラウド
クラウドリソースを使用する組織が所有と運営をする。
ハードウェアの購入、保守、管理が必要になる。
単一の組織に所属する者のみが使用できる。
パブリックアクセスは許可しない。
物理サーバーの設置場所は、利用組織の敷地内に設置するケースもあれば、
クラウド事業者のデータセンターなどに設置するケースもあります。
ハイブリットクラウド
複数のクラウドモデルを組み合わせたもの。
コストや効率面でいいとこどりができる。
部分的な管理が必要。(プライベートクラウド部分)
複雑なカスタマイズが必要な部分はプライベートクラウドで構築し、
定型的なサービスで対応できる部分はパブリッククラウドで構築するケースが考えられます。
Azure+AWSというような、複数のパブリッククラウドの組み合わせはマルチクラウドと言います。
クラウドのサービスモデル
クラウドにはたくさんのサービスがあります。
各サービスをクラウド事業者とユーザーの間の管理責任ごとに分類したとき
下記の3つのケースが考えられます。
IaaS(Infrastructure as a Service)
サービスとして提供されるインフラストラクチャー
ストレージやサーバーといったパソコンの中枢機能を利用できるクラウドサービスです。
従来は、インフラというと大規模な装置や保守人員が必要でしたが、IaaSを利用することでデバイスさえあればすぐに利用可能となります。
スケールアップ/ダウンも迅速にできます。
Azure内のサービス例)Virtual Machines
PaaS(Platform as a Service)
サービスとして提供されるプラットフォーム
OS、ネットワーク、フレームワークといったプラットフォームを開発するためのミドルウェアを利用できるクラウドサービスです。
環境設定に工数を取られないので、アプリケーションやサービスの開発に注力することができます。
Azure内のサービス例)Functions、Web Apps、Logic Apps
SaaS(Software as a Service)
サービスとして提供されるソフトウェア
物理的な部分からアプリまで担います。
これらはユーザー側が構築管理することはなく、ブラウザなどで接続して利用するだけになります。
一般的なサービス例)Microsoft Office 365、Gmail、Dropbox
コストとカスタマイズの自由度は下記のようなイメージです。
ユーザーが管理する範囲が広いほど、カスタマイズの自由度は上がりますが、
その分コストもかかります。
また、これらをわかりやすく例えたのが車の例になります。
IaaS: カーディーラーで車を買うようなもの。車検や駐車場の確保などが必要になる。
PaaS: レンタカーで借りるようなもの。実際には使っていない間もお金がかかる。
SaaS: タクシーを利用するようなもの。乗っている時間にだけ払う。
スライド資料
おわりに
クラウドの本当に最初の部分について改めてまとめてみました。
もう少し先についても機会があったらまとめてみます。
テレワークをしてみた感想
はじめに
この2週間で初めてテレワークを実施したので、得られた知見をさらっと書いてみます。
メリットデメリットとか効果的なところというより、個人的なテレワークの感想です。
テレワーク実施でやったこと
・週3でテレワーク
・週2でMTGのために出勤
・週1でTeams会議
感想
・着替えは必須
同じようにテレワークを始めたいろんな人が言ってると思いますが、朝の身支度は大事。テレビ会議などで姿を映すわけでなくても、気持ちの 切り替えのために有効です。少しシャキッとします。
・椅子は身体に合ったものを
これはテレワークに限らず、昔からいろんな人が言っていますが、今回身に沁みました。
恥ずかしながら、私の家の作業机は小学校入学時からの学習机です。
椅子が堅く、高さが合わないせいか、腰が痛くなります。
学生の時は長時間座ってても平気だったのに…
・携帯は近くに置かない
ちょっとの休憩のつもりがいくらでも触ってしまう。時間泥棒。
・Teams会議は口をはさむタイミングが難しい
思っていたより、対面のMTGと遜色ない印象でした。慣れたらもっと使い勝手がよくなりそうです。
対面と違って難しいのは、誰が話そうとしてるのかがわかりづらいところですね。
2人でも声が被ると結構聞き取りづらいです。3人被ると絶望的です。なので機会をうかがってしまうわけです。
自分が話すときはゆっくりはっきり話すように気を付けてます。家でイヤホンマイクで喋るとぼそぼそしがちなので。
Teamsなら画面共有でコードレビューも簡単にできるのは良いです。
・チームビルディングの必要性
顔を合わせる機会が減る分、品質を保つためにはチームメイト同士の意思疎通はより大切になりますね。
チームビルディングがしっかりできれば、週2のMTGもTeams会議に移行できる気がします。
・各日で環境が変わると集中しやすい
完全に個人の好みですが、各日で環境が変わると新鮮で集中力が上がる気がします。
可能ならお気に入りのコワーキングスペース利用とかも挟みたいところです。
・思いっきり休憩ができる
ただし、だらけない心が必要。
タスクがそれなりにあれば、すごくだらけてしまうようなことはなさそうです。
切り替えや集中開始のトリガーを自分で設定できるのが魅力的です。私の場合はやる気の出る音楽を聴くことです。
・オンライン勉強会に参加できる
定時だと通勤時間と被ったりして、最初から最後まで参加することが難しいのですが、テレワークなら極論寝支度まで終えてから参加も可能です。さらに リラックスした状態で参加できるのもいいですね。
・愛犬に触れる
たまに愛犬を膝の上に乗せたりしながら仕事するのは最高に癒されます。会社にはない癒し。
おわり
3月いっぱいまではテレワークが続きそうなので、もっと快適な環境作りをしていこうと思います。
集中力の効率を上げるような休憩サイクルも要検討です!