最近投稿していなかったので、まとめたことを公開してみる
カテゴリー: Azure
Durable functions(Core) 気になっていたことを勉強がてら実装してみた
HTTP triggerを単一化してみたかったので、勉強がてら実装してみました
コードはGitHub「https://github.com/CryEarth/DurableFunctionsV2Learning」に公開しています
Azure Functions v2で躓いた話
Azure Functions v2の作成でいろいろトラブったので、そのネタを
普通に構築している環境なら問題ない話ではあります
ただ、ちょいと色々実験してたところでやってたもんで、おかしな現象に遭いました
まずコンパイラで正常に通らない現象に出会いました
しばやんさんの記事を読んで、最新SDKでひゃっほーしようとしたところ、どうにもエラーが出て、「.NET Conf 2018 Tokyo」で相談して、リコンパイルで通るということだったのですがどうにもなりませんでした。
※その節はお手数かけました
いろいろ調べて、「%userprofile%\.nuget\packages\microsoft.net.sdk.functions\」を削除で回避できました。
MSB4063/4062エラーだった場合これで回避できるようです。
さらに最新盤でついにTemplateもdotNETCore2.1対応したとのことで、更新して、選択画面上は「dotNet Core」となっているのですが、
作成すると、そのままStandard 2.0 で作成され、正常にコンパイルも通らなかったのです。
この場合、「%userprofile%\.templateengine\vs-2017.3」にある「15.8.xxxx.xxxx-xxxxxxx-AzureFunctions-Azure Functions v2 xxxxxxxxx」を、念のため移動させて、VisualStudio2017を立ち上げて、テンプレートを最新に更新すると、無事正常に作成されて、コンパイルもローカルデバッグも無事行えました。
というわけで、あほなことやってた自分の責任というネタでしたww
.NET Conf 2018 Tokyo 参加してきました
10/13 .NET Conf 2018 Tokyo 参加しに会場の日本MSいったわけですが、久しぶりだなw
メモをほぼそのまま書きなぐり
キーノート
・チャックさん(井上 章)
SignalRマネージド を使用したクイズ
DotNetはWindowsだけだったのがあらゆる場所に使えるように
2002に.net fw 1.0
いまロゴはMSが直接は出していない
.Net Core によるMS的eShopのreferenceがある
https://github.com/dotnet-architecture/eShopOnContainers
.net core 2.1
EF Core
ASP.NET Core
IoT Device
dotnet core 2.2 Preview
SignalR Service
Blazor
https://blazor.net
WebAssemble実装
Razor Components(“Server-Side Blazor)
クライアントではなくサーバ側(SignalR)でBlazor
.net core 3.0 ロードマップ
ML & .NET
aZUURE CognetiveService
ML.NET 0.6 Preview
クラウドへのアプリ展開は
docker container単位になるんではないか?
VSからは拡張機能を入れておけば、GUIで追加して、サクッといける
ServerLess Functions
—————————————–
Azure CLI と便利な仲間たち
大平さん @dz_
Microsoft Opennes
Linux On Windows
WSL
WsLinux
Linux On Azure
Linuxインスタンス数が50%超えた
OINにMSが加入、60万件のLinux関連特許を提供
MSがGitHubにAzure関連リポジトリを1000近く
MS版ハックオクトーバーフェストやってます
Azure CLI
いいところ
・手順書作りやすい
・情報を取得しやすい
Microsoft Leam
学習サイトで学びながらが良い
—————————————–
継続的にテスト可能な設計を考える
中村 充志 リコーJapan
https://github.com/nuitsjp/Continuous-Testable-Design
https://www.slideshare.net/AtsushiNakamura4/ss-119275254
インターフェイスの抽出
IFは依存させたい側の文脈で書く
おんなじアクターが使うビジネスロジックをまとめる
違うなら分ける
アブストラクタをIFの代わりに使う手もある
—————————————–
激論 ASP.NET / ASP.NET Core
井上さん & しばやんさん
.Net Core 2.2について
IIS In-Process Hostingでパフォーマンスが上がる
Tiered Compilation
JITコンパイラ
岩永さんが書いてる
2018年末予定
.Net Standard 2.1
span
Brotli/SIMD/System.IO.Emurationも追加
releaseスケジュールは不明
Core2.2と同時だと思うけど、、、
ASP.NET Core
2.2は比較的小規模release
API/Server/SignalR
APIControllerの挙動が改善 / HTTP REPL CLI(dotNet global tll)
KestrelとHttpclientがHTTP/2対応
HttpClientFactoryを使うようにする
SignalRのC++/Javaクライアントがrelease
EF Core
2.1でLazyLoadingに対応
LINQでGroupByにちゃんとSQLに変換してくれる
2.2は小さなrelease
CosmosDB provider が入るかも < 沼っぽい、使わないほうが良いと思う
3.0ではC#8対応を頑張ってるらしい
IAsynccEnumerable
Blazor/Razor Components
WebAssembleどう活用する?
最新バージョンはプレビュー
Razor Componentsは.NetCore 3.0と同時にリリース予定
.Net Core 3.0 / .Net FW 4.8予定
WPF/WinForが。NetCore3.0で動作
.Net FW4.8自体はほぼ新機能無し
VS2019 / C#8
2017は15.9が最終リリース
C#8も同時リリースか?
Nulltable reference typesを使いたい
CONECTは多分やるはず
Azure Functions V2
Core2.1ではまだかけない Std2.0で、今修正中だが、SDKは対応したのでもうちょいじゃなかろうか
SignalR サービス
Azure Pipelines
WindowsのCI SaaSは貴重
—————————————–
ブロックチェーンチョットデキル人が Kubernetesを完全に理解した!
竹井 悠人 株式会社bitFlyer
51%攻撃の実現方法
実際にはブロックチェーンの考え方に関する説明
クラウド使ったコンテナによる攻撃
Wildfly on Azure WebApps(Windows)
Wildfly をWebApps(Windows)に乗せてみた
他にも行っている方がいるのですが、うまいこといかなくて、成功している方などの情報から構築成功したので、書いておきます。
環境
- WebApps for Windows
- Java バージョン:8
- Javaマイナーバージョン:新しい順
- Java webコンテナ:新しい順 Tomcat 9.0
手順
・Kudo画面を開く
・\site\wwwroot\へ移動する
・CMDから以下のコマンドを実行する
1 2 3 4 |
curl -O http://download.jboss.org/wildfly/13.0.0.Final/wildfly-13.0.0.Final.zip unzip wildfly-13.0.0.Final.zip |
・「Web.config」を追加し、下記の内容とします。
・やっていることとしては、「PORT」の指定、タイムアウトを伸ばして動作安定までのラグを確保、「HOME」の指定となります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
< ?xml version="1.0" encoding="UTF-8"?> <configuration> <system .webServer> <handlers> <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"></add> </handlers> <httpplatform processPath="%HOME%\site\wwwroot\wildfly-13.0.0.Final\bin\standalone.bat" arguments="-Djboss.http.port=%HTTP_PLATFORM_PORT%" startupTimeLimit="120" startupRetryCount="2" requestTimeout="00:10:00" stdoutLogEnabled="true"> <environmentvariables> <environmentvariable name="JBOSS_HOME" value="%HOME%\site\wwwroot\wildfly-13.0.0.Final"></environmentvariable> </environmentvariables> </httpplatform> </system> </configuration> |
・アクセス直後は、起動にはかなり時間がかかりますので、必要であれば、WebAppsを上位契約とし、常時接続をONにしてください。
これでなにすんの?
・AAD認証などAzureサービスでのPaaS、SaaSをいろいろ組み合わせやすくなる
・サービス展開がやりやすくなる
・オンプレに乗っているJavaAPIサービスをAzureのPaaS化すればUWPからいじりやすいよな(ぉぃ
ええ、色々よこしまな思惑やら仕事がらみもあったわけですが、ネタ的にはこんな感じですかね
ASP.Net Core 2.1.1 明示的バージョン指定
Azureにおけるセキュリティを考えてみる2
・Azureにおけるセキュリティを考えてみるのその2です
今回は全体的な環境を考えてみましょう
まあ、よくある販売購買やってる会社的な感じかな?
AzureやMSのクラウド製品群に関して言えば、MSのサブスクリプションによるセキュリティが一番大きなくくりとなります。
ポータルや管理画面などでのユーザー制御や、サービス制御がそれにあたります。
つまりここでの管理者アカウントや上位権限ユーザーアカウントの漏洩が最も大きなセキュリティリスクとなります。
これは当然のことだと思うので、管理や引継ぎはしっかり行うべきですね。
On-PremissでのActiveDirectory(以下AD)情報はAzureAD(以下AAD)へAD Connectサービスで同期が可能ですが、クラウドサービスへ軸足を移すのであれば、On-PremissのADをAADを正にするように移行を計画するべきでしょう。
On-Premiss ADはAADのOn-Premissサービス用認証サービスとして、AD FSもそのためのサービスとして運用を切り替えましょう。
D365での認証についてですが、AADでの認証を標準とした構成にしないとAzure連携アプリが非常に作成しにくくなります。
もちろん、証明書認証に関するコードを用意することでAD FSも含んだOn-Premiss側認証を利用できますが、環境によって開発工数変わるんではないでしょうか。
・簡単に言えばどういうこと?
AzureはActive Directory(AAD)で認証、セキュリティが担保されるようになっているので、それをもとに各種機能をAADにアプリケーション登録することでAD認証配下とし、AD認証を必須としてください。
さて、ここのところが普段アプリ系記事しか書いてない私が、こんな記事書いた理由です。
アプリ書いてるとなると、Azure サービスプリンシパルでの認証がよくやることとですが、上記の部分がきちんと立てつけられていないと、そもそもセキュリティを考慮したも何もあったもんではないとうことで、書きました。
今後さらにクラウド上へ自社サービスやシステムの構築ということが行われ、On-Premiss環境との連携はクラウド側が主体となることが多くなっていくことでしょう。
開発者はいろいろなIaaS/PaaS/SaaS/FaaSを駆使しながら開発を行うこととなりますが、セキュリティへの考慮が特に求められることとなっていきます。
Azureでは各種サービスをシークレットキーで基本的に守る形となっていますが、万が一の漏洩に対しては、Azure Key Vaultを使用し、自動でシークレットキーが更新され続ける機能もあります。
シークレットキーの管理に関しては、そもそも内部犯行許さないようにしてれば、Key Vaultまではと思いますが、高セキュリティが求められる場合は仕方がないですね。
また、StorageServiceにもファイヤウォールが登場し、もともと暗号化などはされていましたが、アクセス制御が可能となり、データ保護が一段と進みました。
クラウドサービスでUWPアプリ開発しようぜ!
いや、クラウドサービスそのものの開発もしますがw
Azureにおけるセキュリティを考えてみる
・Azureってなに?
AzureとはMicrosoftが提供しているCloud Serviceです。
たとえば、AmazonのAWS、GoogleのCloud PlatformなどもCloud Serviceとなります。
・なんでセキュリティの話?
経験上、仕事の際などにどれだけセキュリティが高いのかや、どうやってもっとセキュリティを高めればいいのかを、聞かれたり、考えたりということをする機会が増えたので、自分のメモ的に現在(2018/02)時点での考えを取りまとめるためにちょうどいいのでBlogのネタにしました。
まあ、概要がここに書いてあったりするんですけど。
Microsoft Azure セキュリティの概要
https://docs.microsoft.com/ja-jp/azure/security/azure-security-getting-started
というわけで、この見解は私の個人的な独断と想像、いじれた範囲からの記事であることをご承知下さい。
この辺に関しては、全体的な構成図と一緒にどこかでMS社に公開してほしいような気がするんですが、、、
・Cloudとは言っても物理的なサーバは存在しているはずで、そのセキュリティは?
Azure本体(データセンター)のセキュリティといった部分ですね。
現在世界各国で42 リージョンが存在しているそうですが、当然そこのセキュリティは強固です。
クラウドのサービス拠点として、日本は東日本、西日本と書かれますが、どこに置かれているかの正確な場所は非公表ですし、MSの中の方々でも知っている方はほとんどいないのではないかと思います。
https://azure.microsoft.com/ja-jp/overview/datacenters/how-to-choose/
ちなみに、ディスクドライブの廃棄の際は、構内の専用箇所でデータの消去作業後、最低4つに分断、かつ専用コンテナでそれぞれ違う国の処分場へ輸送の上で、最終処分を行うとのことです。
・AzureってMSが監視しているの?
契約クラウドサービスそのものの完全監視は行っていないようですが、その基盤は当然MSの監視下であり、今までもMS本体へ世界中からアタックを受けながらも、セキュリティを確保している高度なセキュリティレベルをクラウドサービスの基盤部分でも実施しているそうです。
よく、自前のほうが安全ではないかという方々がおられますが、MSと同等の金額と人員規模、技術力をそろえることが
できているのかご確認ください。
なお、セキュリティセンターの入り口の写真(ロゴの壁)とか、内部イメージはたまにMSの講演で表示されることがあります。
・インターネットにさらされているんだから全部IP制御させろ
全部は無理です。
とはいえ、外部アクセス制御そのものはNSG(ネットワークサービスゲートウェイ)などで行うことができます。
また、PasS/SaaS/FaaSで作成されるAPIに関しては、各種サービスを組み合わせることで制御可能ですが、そんなにアクセス不能にすると自身で開発したサービスの継続開発や運用に支障をきたします。
・どんな開発の組み合わせがあるの?
開発でよくあるのは「WebApps(ApiApps)」「LogicApps」「Funcsions」の組み合わせでしょうか。
「ApiApps」に関しては以前はAppricationGateWay(AppGW)を使用するにはAzure App Service Environment(ASE)を作成し、その中に配置することでIP遮断とGW制御が可能となっていました。
とはいえ、いまならASEを使用しなくてもAppGWをApiAppsに使用可能なので、NSGによる制御で十分ではないでしょうか?
ASEのもう一つの利点としては閉塞ネットワーク制御に便利といった部分でしょうか。
Azure のネットワーク セキュリティの概要
https://docs.microsoft.com/ja-jp/azure/security/security-network-overview
「Funcsions」もApiAppsと同じように制限可能です。
そして自分がかかわった中ではよく議題に上がるのが「LogicApps」に関してです。
機能としては「Logic Flow」と呼ばれるサービスになるのですが、これは外部に公開することを前提としたサービスのため、IP制御が基本的にはできません。(IPアドレス制限はできる)
「WebApps(ApiApps)」「LogicApps」「Funcsions」に対してセキュリティ保護をかけるのであれば、API Management Serviceを使用し、Azure Active Directoryと連携した総合API管理を行うのが良いと思っていますが、なかなかそこまでという場合は、そもそも公開しないか、クラウドでやるのか再検討してくださいとしか言えません。
・個人想像での図としてはこんな感じかなと
その2に続く
Windows 10 Mobile によるリモートワークの可能性
この記事は「Windows 10 Mobile Advent Calendar 2017」に参加しています
さてさて、まずは下準備ということで、AzureでVMを作成しました。
これで、Windows 10 MobileのContinuumからつなごうという趣旨なわけです。
で、有線Continuumでやる予定だったのですが、ちょいとうまくつながらなくなったので、Windows10PCの接続アプリを使用して、Wi-Fiによる無線Continuumで作業しました。
準備ができたらW10M側のContinuumアプリで接続をかけます。
接続すると、普通にContinuumモードになります。
リモートデスクトップアプリに準備済みの接続実行!
証明書忘れてた(;’∀’)
サクッとWindowsが起動します。
というわけでVisualStudio2017搭載VMなので、起動して作成してみましょうかね。
……しまった、英語だったなこれ、まあ、設定で日本語にするなり、そのままでも問題なく使えると思いますが。
あ、OSがWindows10じゃないからUWPアプリ駄目じゃないか。
えーVMでWindows10のVMを選択の上で、VisualStudioをインストールしたほうがリモート開発環境としては良いということでw
リモートワークの可能性ということで、とりあえずW10M上のPowerPointを
有線Continuum&有線LANであれば、十分なVMを用意し、環境を整えればプログラム開発をリモートワークとして、セキュリティを保って行うことも可能ではないかと思います。
また、通常のofficeアプリでの作業はマクロをゴリゴリ使うということでなければ、十分使用可能であり、無線ContinuumまたはUSB-C to HDMI機器でのプレゼンなど業務も行えることでしょう。
これだけのことができる Windows 10 Mobile がという思いはありますね、、、
ただ、Windows 10 On ARMが正式に発表されたこともあるので、ひっくり返す何かが起きればうれしいですね。
Windows Phoneはいいぞーー!