Builderイメージをどうやって作るか→今までは自分で作っていた。DiskOSディスクをホストノード上に直接作る。揮発性、停止は一切できない。machines前のOSディスクは2TBを超えるディスクをアタッチできなかった。今までのWebAppsは仮想ネットワークにつなげたが、P2S的な感じで問題が多かった。GatewayWebAppsにサービスエンドポイントをしいて、アプリケーションゲートウェイのあるサブネットからしかつなげないようにする。linkネットワークの制御FunctionsPremiumプラン最大4コア、12GBのメモリインスタンスコールドスタートを制御できる。Environment閉じられた環境で使いたい。将来はC#もロードマップに入っている。Tool1つのクラスタ内に様々なVMサイズを構成可能。Files既存のFilesの100倍のパフォーマンスストレージが100Tibまで作れる。機械学習を使ってメトリックのパターンを解析して閾値を自動で決定してくれる。AzurePotalとARMテンプレートieで入るとElectoronベースのポータルが使えるリソースグループからリソースを選んでエクスポート可能になる。リソースの変更履歴アクテビティログで変更履歴がどうなったのかを確認できるようになった。Tools(VSCode)コメント認識、シンタックスハイライトが強化される。Snipets(VSCode)テンプレート開発する人は入れたほうがいい。arm-windows-vmって打つと関連するリソースのテンプレートが出来上がる。DependsOnが出来上がった状態。ToolazshellローカルのコマンドラインやターミナルからCloudShellに接続することができるようになる。NodeをIoTエッジにしちゃう。Nodeは現時点で東日本はDeployできない。AppsWordPress環境をAzureのWebAppsに構築します。Marcketplaceからテンプレートを選択できるので比較的簡単に構築できます。Linux」とかもあるが、今回は「WordPress」を選択する。アプリケーション名を入力します。この値がURLになります。リソースを作成するサブスクリプションを選択します。リソースを作成するリソースグループを選択します。AppServicePlanを新規作成もしくは既存のものを選択します。データベースサーバーの設定を行います。今回は初期値のまま、作成します。MySQLを選択できる仕様になっていないようです。MySQLが1対1で作成されてしまいます。既存のMySQLを選択する方法はこちらのページをご参照ください。MySQL、ApplicationInsightが作成されているWordPressページを確認する「WebApps」→「概要」→「URL」URLをクリックするとWebApp上のWordPress設定画面に移行する。必要情報の入力が終わるとインストールが開始される。インストール後、ログインをする必要情報で入力したユーザーでログインをおこないますWordPressのダッシュボードが開きます。これでWordPressの環境構築が完了です。次回はWordPress環境で既存のMySQLの環境を設定する方法を紹介しようと思います。Associate最新情報をまとめ】AZ-100とAZ-101が廃止、AZ-102移行試験が日本語化。AZ-103が新たに登場。CertificationsAZ-102試験が気づいたら日本語配信していました。気づいたらAzureのAZ-102が日本語対応していた。来たか!!期限6/30までなので急いで受けよう。Associateの取得方法も変わっていたので更新情報をまとめておきます。Associateの取得は2019年5月20日現在、2通りの方法があります。以前はAZ-100とAZ-101の取得が認定条件でしたが、上記2つの試験は2019年4月をもって廃止されました。Associateが認定されるよう変更になりました。MCP70-533(終了)と移行試験AZ-102の両方を取得するAzureの旧MCP資格70-533試験を取得済みの方はこちらの選択肢もあります。Associateを取得できます。AZ-102試験は期限が2019年6月30日までなのでご注意ください。AZ-102試験は2019年5月から日本語試験の配信が開始しているようです。Blog多分一番ここが一番詳しい。blogの記事を日本語に翻訳してくれてる。Associate最新情報をまとめ】AZ-100とAZ-101が廃止、AZ-102移行試験が日本語化。AZ-103が新たに登場。2019@Tokyoに参加してきました。備忘録としてメモを公開します。様々な形式のDB全世界であっという間に使える設計思想アクセスに対する要求に自由に対応できるミッションクリティカルなサービスで使える。遅延が少ないすぐに使えること全世界中にホストする。その場ですぐにレプリケーションできる1-4に対してSLAが担保されているどこからのリージョンでも、読み書きもできる。データを失われないために複数。リーダーがいて書き込みの指令を受け取り、残りのレプリカに書き込んでいく。残りのレプリカは読み込み専用。フォワーダーが他のリージョンに情報を送っている。パーティションキーどのレプリカに行くのかが決まる。1kbのドキュメントを呼び出すRUをさばくための計算資源を予約され、保証される。RUの割り当てが足りない場合、処理できなくなる。書き込んだ瞬間に全世界で使える。→トレードオフが存在する。ザマリンの場合、ネイティブにがりがりかかないといけないAppCenterならForms側に書けるのでメリットがある。プロジェクトのパッケージ名とfirebaseの設定を合わせないとPush通知が最初だけは来る。ModeHubの実装が不要になる。各リソースをJSON形式でテンプレート化ARMテンプレートはあくまでリソースを作るもの。機能アプリケーションの開発と同様に関数やループ処理ができる。→資産と再利用できる複雑な構成をポータルで作ることができるのかサンプルソースvariablesPrefixKeyで設定しておくconcatを使って接頭辞をセットたくさん作るときに作業ミスせず、命名規則にのっとって作成できる。発行時に宛先リソースグループをミスることが大きいVMの台数が異なる。初期構成より台数が増える可能性がある。ループ関数を使う各VMに「連番」で割り当てる必要である。プライベートIPもわける。依存対象のリソースを記述する中身を理解していない状態で変更しても問題ない部分をしていする。Functionsで実現しようとすると複雑なコードになってしまうものをすごく短いコードで簡単に実現できる。構成クライアント関数オーケストレーター関数を起動するための関数オーケストレーター関数アクティビティ」関数を起動するための関数。StorageC#で書いたアプリコードはここを見てhttps://tech-lab.sios.jp/archives/13954冗長なコードが必要になる。料理のとき、カップ麺のときに超便利ウェイクワードウェイクワードを変えることで起動するデバイスを分けることができる。複雑なパラメーターの入力が必要なものは不向きタイムアウトが非常にシビア呼びかけたあとにユーザーからの入力がないとすぐにきれてしまう。返答も音声だけなので理解できる内容には限界がある。「サンプルのペイロードを使用してスキーマを生成する」サンプルJSONからJSONの解析を行ってくれる。Appを空のリクエストして起こしておく。Functionsを使ってスキルの常識を覆すラインに投降した内容をスピーカーに話させる。その全体像と技術事例」セミナーに参加してきました。microsoft-events.connpass.com参加時にメモった内容を共有します。NativeとはCNCFが定義しているサーバーレス・・・PaaSと比べ、スケーリングも気にする必要がない。Containerコンテナーのデファクトスタンダードコンテナー型仮想化技術→よりスケーラビリティを持つ。コンテナーのメリット一度イメージを作ると、コンテナーが動く環境ならどこでも動作すること例:開発が作ったコンテナーのイメージが他の人の環境になったら動かないという現象が発生しない。Dockerコンテナーは他者のコンテナー環境でも動くマルチテナントである。マイクロサービス、サーバーレスマイクロサービス小さいサービス単位(コンテナもその1つ)では粒度をどうすればいいか最初は少しずつサービスを小さくしていこうマイクロサービスによって個々のコンテナが小さくなり、量が増えるオーケストレーターが必要になってくる。Spaces(プレビュー)AKS上でコンテナ実行とデバッグ実行が可能チーム開発をやりやすくする複数人でのコンテナ開発で自分だけの変更コンテナを確認できる他の人が作っている変更に影響を与えない自分の環境だけ変更する。Blue/GreenデプロイメントImmutableインフラストラクチャカナリアリリーストラフィックを少しずつ新しい環境に移す。何かあればトラフィックを戻す。サブスクリプションモデルECサイトのマイクロサービス化の背景2000年に作りJavaでできている。オンプレのOracle(編集しづらいという意味で"神オラクル"というあだ名)に対してモノリシックな構成だった。既存の機能を徐々に変えていく。資料speakerdeck.comGlowLioマルチテナントな広告プラットフォームスクラム一週間スプリントCIはしているが、CDはしていない。BigQueryやAWSのメディアコンバートなども使用しているクラウドを使わない手はない小さい会社の小さいチームの新規事業でインフラを用意する暇はない。Functionsのタイマートリガーを使用するとスケジュールした時間に関数を起動できるようになりますが、開発中はいちいちスケジュールしたタイミングまで待ちたくないですよね。docs.microsoft.comデバッグ実行時に関数が実行されるようにする変更する箇所は一か所です。スケジュールを設定しているTimerTriggerAttributeにプロパティを追加するだけです。=true)これでデバッグ実行開始時に関数が実行されるようになります。ちなみに意図しないタイミングで関数が実行される可能性があるため、Azure上に発行する際にはプロパティは外したほうがいいらしいです。DatabaseをAzureActiveDirectory(以下、AAD)のユーザーで認証する方法を紹介します。Azureの提供するPaaSのサービスです。Serverと名前が似ているので、勘違いされますが別のサービスですのでご注意ください。エラスティックプールを使用しています。管理者"を設定する必要があります。管理者にするユーザーを検索し、追加します。「保存」ボタンをクリックします。これでAD管理者の設定は終了です。クライアント端末からアクセスできるようファイアウォール設定を行います。SQLDatabaseにアクセスできるクライアント端末のIPアドレスの許可設定を行います。「保存」ボタンをクリックします。Azureポータル側での設定は以上です。Studio(以下、SSMS)を使用して接続を行います。SSMSのインストールはこちらから接続情報を入力します。MFAサーバーで汎用」を選択しております。パスワード」を選択してください。指示に従い、認証情報を入力すると接続できることが確認できます。この段階だとAD管理者で設定したユーザー以外はログインできないため、ユーザー追加の設定を行う必要があります。ADユーザーをSQLDatabaseで認証できるように追加するユーザーを追加しましょう。これでADユーザーを追加することができます。[×××@△△.com];最後に共有のユーザーID、パスワードを使わないようにするために、AD認証を使用する方法は有効な手段だと思います。大事なデータベースを守るためにもAD認証を取り入れましょう。AppsWebAppsやAzureActiveDirectoryのURLは初期状態下記のドメインで固定です。〇〇.onmicrosoft.comhttps://△△.azurewebsites.net/ただ、自分で独自のドメインを使用したいときもありますよね。いうときはドメイン名の設定を行いましょう。ブラウザで表示できるか試してみようWebAppsで独自ドメインを使用する場合、SSL証明書の設定を自分で行う必要がある参照ページ今回行うことドメインを購入するAzureActiveDirectoryにカスタムドメインを追加するWebAppsのURLにドメイン名を追加するドメインを購入するまずドメインを購入する必要があったのですが、Azure経由で購入すればAzureの請求にドメインの代金も含まれるので管理しやすいと思い、Azureポータル上にあるWebAppsのドメイン購入を使用してドメインを購入しました。ドメイン」→「ドメインの購入」ドメインの購入画面は下記のような画面が表示されますので画面の指示に従って入力してください。既定のホスト名の割り当てはどちらもチェックを入れます。OKを入力するとドメインの購入処理が始まります。ドメイン」と「DNSゾーン」が作成されていると思います。AzureActiveDirectoryにカスタムドメインを追加する次にAzureActiveDirectoryにカスタムドメインを追加していきましょう基本的には下記ページを参照に進めていけると思います。ドキュメントと違う部分のみ記述していきます。DNSを使って情報を追加していきます。さきほどドメイン購入完了時に作成された「DNSゾーン」のリソースを選択します。「+レコードセット」のボタンをクリックしてDNSレコードを追加しましょう。追加するレコードの値は下記の通り設定します。以上でDNSレコード設定の追加は完了です。Azureで扱っているDNSレコードについて詳しく知りたいかたは下記ページをご参照ください。ドメイン名を検証する」の部分は検証する前から利用可能になっていたので飛ばしました。AzureActiveDirectoryのドメイン追加が完了これにて設定完了です。AzureActiveDirectoryのカスタムドメインプレートで今回追加したドメインをプライマリに設定しておきましょう。AADのトップ画面などにドメイン名が反映されるのは少し時間がかかるかもしれません。確認のため、ユーザー追加で今回のドメイン名を使ったユーザーを追加できるようになったことを確認しておきましょ。WebAppsに独自ドメインを設定するホスト名を追加するWebapp→カスタムドメイン→ホスト名の追加を選択します。ホスト名に追加するルートドメイン名を入力します。すると、下記の画面のようにドメインの所有権の部分でエラーが出ると思います。エラー画面の指示通りにDNSレコードを追加しましょう。DNSでDNSレコードを追加します。先ほども使用したDNSゾーンを選択します。Aレコードを追加します。ドメインの所有権の部分で発生したエラーで指示された値TXTレコードも追加しますが、TXTレコードは先ほど同じ種類のレコードを作成済みですので既存の名前@、種類がTXTの既存のレコードを選択しましょう。「ホスト名の追加」ボタンを選択できるようになっているので選択します。選択すると、下記の画像のようにドメインが追加されます。画像は違いますが「SSLバインディング」の部分はまだ未接続の状態になっていると思います。これでWebAppsのアプリに対して独自のドメインでアクセスできるようになります。【WebAppsの認証を入れている人のみ】応答URLに今回追加したドメインのURLを追加しますWebAppsにAD認証を入れている人は応答URLに今回追加したドメインのURLを追加しないとエラーになります。下記2点のURLを追加しましょう。使用している人はCORSの設定も追加するのを忘れないようにしましょう。ブラウザで表示できるか試してみようブラウザのURLバーに追加したドメインを入力してみましょう。WebAppsのアプリにアクセスできたら成功です。※現段階ではSSL証明書の設定を行っていないため、ブラウザで警告が表示されると思います。WebAppsで独自ドメインを使用する場合、SSL証明書の設定を自分で行う必要があるWebAppsにSSL証明書をバインドする方法については別記事で紹介しようと思います。猛勉強を勉強を行っています。70-533試験終了についての情報はこちらの記事でまとめております。onarimonstudio.hatenablog.comその中でもDNSの分野がとても苦手だったのでDNSレコードについての基礎知識をまとめます。参考ページDNSレコードとはDNSレコードについては一度こちらのページを見ていただくと、わかりやすいと思います。https://wa3.i-3-i.info/word12284.html僕の解釈ではレコードによって入るデータが違うってこと。これを覚える必要があると思います。レコードの種類である下記のDNSレコードをサポートしている。そのドメイン名で利用するメールサーバーの情報を記述したものです。数字が低い方の値が優先されます。証明書を発行できないことを設定しています。別名の正規名(あだ名って意味らしい)この設定を行うことで「onarimonstudio.hatenablog.com」も「sub.hatenablog.com」も同じIPアドレスとして扱われる。