Quantcast
Channel: Azure –ブチザッキ
Viewing all 506 articles
Browse latest View live

Azure Update (2016.06.02)

$
0
0

こまごまと。どちらかというと何かあるとすれば(ひょっとしたら)今日の深夜あたりかもしれませんが。


SQL Server

Azure Redis Cache

  • Azure Redis Cache May 2016 update
    • プラン変更、Import/ExportのほかにDBとメモリに関する設定がある程度できるようになったようです。
    • Set-AzureRmRedisCacheDiagnostic で診断のOn/Offもできるようになりました。
    • あとはパフォーマンスカウンターが追加されたりAdvisorとしてポータル上でRecommendされるようになったり。

DocumentDB

Virtual Machines

その他


カテゴリー:つぶやき Tagged: Azure, Cloud, JAZUG, Update

ExpressRoute 回線作成時にNRPがないといわれる

$
0
0

ExpressRoute 回線(Circuit)を作成するときにちょっと嵌ったのでメモ。うだっち先生のおかげで解決しました。

現象

ExpressRoute回線を新規作成しようとすると「サブスクリプションがネットワーク リソース プロバイダーに登録されていません」と表示され、プロバイダー一覧等が選択不可→作成不可の状態となり先に進めない。(英語だと “Subscription not registered with Network Resource Provider.”)

image

実際に登録されていないか  Get-AzureRmExpressRouteServiceProvider してもSubscription <GUID> is not registered with NRP のようになる。リソースエクスプローラーで見ても同様。
image

原因

Azure サブスクリプションを作成してすぐの状態だとネットワークリソースプロバイダーが登録されていない為。(そのまま)

回避方法

何でもよいのでARM(Azure Resource Manager)でネットワーク関係の作成を行う。例えばダミーでもなんでもよいのでVNETを作る。

他の手段としてはネットワークプロバイダーを登録するということで以下のコマンド実行でも良いとのこと。

Register-AzureRmResourceProvider -ProviderNameSpace "Microsoft.Network"

作成後はネットワークリソースプロバイダーが登録されてExpressRouteのサービスプロバイダーも登録され、ちゃんと一覧に表示される(ExpressRoute回線の作成ができる)

imageimage

なかなかひどい嵌り方をした…

おまけ

ここに書いてたりするらしい

リソース プロバイダーの登録を確認する

リソースはリソース プロバイダーによって管理されているので、特定のプロバイダーを使用するようにアカウントやサブスクリプションを登録する必要があります。ほとんどのプロバイダーは、Azure ポータルまたはご使用のコマンド ライン インターフェイスによって自動的に登録されますが、登録されない場合もあります。

こげさかさんありがとうございます。


カテゴリー:つぶやき Tagged: Azure, Cloud, ExpressRoute, JAZUG

Azure Functions / Overview and Under the hood

$
0
0

ちゃんと書いてなかった気がするのと、某所で喋ったのでスライドの中身を適当にコピペします。そのうち動画・スライドが公開される気もしますが。

※2016年6月4日現在の情報です。
※だらだら長くなってしまった…

Azure Functionsって?

image
イベント駆動の”機能”実行プラットフォームです。だいたいは何かしらのデータを処理したいというのと、何かしらアクションがあって処理を実行したいという2点が実現したい何かだと思いますが、アクションを受ける部分とかわざわざ作りたくないですよね。もっと処理そのものをサクッと構築して実行したいと思います。
Azure Functionsではそのための機構が提供されてて、スクリプトベースで処理に関する記述だけに注力できます。またアクションを受ける部分、アクションしたい先についてはトリガーとバインディングという機構が提供されててその部分の開発をかなり省くことができるようになっています。

  • トリガー:スケジュール、HTTP (Webhook)、キュー、ファイル作成時などを受けて処理を開始できる
  • バインディング:ファイル作成やPush通知など連携先を簡単に設定できる

バインディングはかなり強力で、例えばBlobファイルへの読み書きやPush通知の細かい処理などわざわざ書く必要はありません。データの読み書きだけ行えば済むようになっています。
またトリガーとバインディングをうまく設定することでFunctionを(イベントを)連鎖させたり、他のシステムと受け渡ししたりすることができます。(あまりやりすぎるとLogic Appsなどのほうが良いケースになったりしますが)

あとオープンソースです。(後述)

image

よく言われるのはServerlessという言葉ですが、「OSレイヤー以下を抽象化しサーバーを意識させない」という点でAzure FunctionsはServerless Compute Platformとも言えます。
PaaSとして提供されている他のサービスや概念を拡張して、OSレイヤー以下のスケールとかパッチ、メンテナスなどインフラストラクチャ部分を抽象化して意識する必要がありません。

実はAzure Functionsに似たような機能はWebJobsとしてApp Service Web Apps上で実行できていました。これはこれでバインディングだったりトリガー機構は持っててAzure Functionsの原型ともいえるサービスでしたが、扱うためにはWeb Appsなりをある程度知ってないと構成したり管理するのが難しいところでした。
image

Azure Functionsでは基本的にAzure Functionsの画面(実際にはAzure Portalの一部ですけど)だけでだいたい完結するので他の余計な部分に煩わせられることなく処理に注力できるようになります。
image

はじめるには

https://functions.azure.com/signin にアクセスします!
image

Azure サブスクリプションが複数ある場合は選択して、あとはCreateするだけ!1つ1つのスクリプトはFunction Appという呼び方でまとめたものをFuncions Containerと呼ぶようです。で、既にFunctions Containerがある場合はOpenで開くこともできます。※Azure Portal上からでも作成はできます。

作成後は以下のような画面になります。(実際はAzure Portal内です)
image

Function Appの作成や設定など基本的にここから行います。Web AppsとかAzureだとかあまり意識せずに触れそうですね(まだまだな点はもちろん多いですけど)

あとはトリガーと言語を選んで作成すればテンプレートに従って作成することができます。もしGitHubなどのリポジトリから取得する場合は右下の「Start from source control」リンクからWeb Appsと同じように連携設定を行うことができます。(後からでも可)
また、他のテンプレートや言語を選択したい場合は左上の「New Function」か「Create your own custom function」リンクを選択します。もう少し詳しいテンプレート一覧が表示されるのでこちらから選びましょう。
image

現状、選べる言語としては以下の通りとなります。

  • メインサポート
    • node.js / JavaScript
    • C# (.NET Compiler Platform Scripting API) * .cs / .csx
  • 実験的なサポート
    • F# / Python / PHP / Batch (.bat) / Bash (.sh) / PowerShell (.ps1)

作成すればメインの画面(ブレード)でコードを編集したり、バインディングの設定をしたりすることができるようになります。
image

左側の一覧に作成されたFunction Appの一覧が表示されます。選択することでそれぞれのコードやバインディングの情報を編集することができます。

  • Developタブ
    • コードの編集、出力確認、テスト実行が行えます。
  • Integrateタブ
    • トリガーやバインディングの設定が行えます。
  • Monitorタブ
    • 実行状況や呼び出しログなどを参照できます。(後述のモニタリング/ログあたりを参照)
  • Manageタブ
    • 現在の状態(有効/無効)確認と内部的なURL(設定などのJsonが返されるAPI)、削除が行えます。Preview感がすごいですね。
      image

Function App全体(Functions Container)の設定等については右上のリンクから行えます。
image

  • Function app settings
    • Function App全体の設定が行えます。(後述)
  • Monitoring
    • 稼働していたインスタンス数の確認などが行えます。(後述のモニタリング/ログあたりを参照)
  • Quickstart
    • functions.azure.com から遷移したときに表示されるQuickstart画面を表示します。

開発

実際に処理されるスクリプトを編集する画面です。Developタブで行います。
image
image

Codeのテキストエリアで直接コードを編集します。編集が終わったらSaveしましょう。(C#の場合、Saveした後コンパイルが行われます)
コンパイル結果や実行結果はLogsの領域に出力されます。ログの実体は別途保存されているのでこの領域はClearしたりPauseしたりしても問題ありません。
Runのところではトリガーに渡す情報を入力して「Run」ボタンで実際に実行することができます。(入力する内容はトリガーなどによってプレーンテキストだったりJSON形式だったりといろいろです)
また一部トリガーではここからRunしてもエラーになったりうまく実行できないので注意しましょう。(Blobトリガーとか)
HTTPのレスポンスが返ってくる場合など、FunctionによってはOutputテキストエリアに実行後の応答が表示されます。
また一部トリガー(HTTPトリガーなど)を選択している場合は上部にAPI Keyが付いた状態の呼び出し用URLが表示されます。(後述)

基本的にこの画面と次のバインディングなどがメインで操作する箇所になるかと思います。ゴリゴリ書いていきましょう。

バインディングとトリガー

いつ/何によって実行するか(トリガー)と、入出力する他のサービス群をどう紐づけるかはIntegrateタブで行います。
image

内部的にはトリガーもInputなバインディングの一種です。(タイプがトリガーという感じ)
トリガーは1つ、InputおよびOutputのバインディングは複数指定可能です。またこれらの設定の実体はfunction.jsonファイルとして保存されているので直接編集することも可能です。(右下にあるAdvanced Editorのリンクから編集することもできます)
image

現時点でサポートしているバインディング・トリガーの種類は以下のようになります。

image
image

* HTTPのアウトプットはHTTPトリガー使用時のみ利用可能です。

テンプレートから作成したときはスクリプトに予め記述されていますが、後からバインディングを編集した場合、スクリプト(コード)にバインディングした値を受け取るようなコードを追記する必要があるので注意してください。
C#だと特に型が間違ってたりするとコンパイルエラーになったり、実行時エラーになります。(このあたり細かいドキュメントは後述。まだまだ足らない)

料金

料金プランは2種類あります。基本的に他のAzureのサービスと似てますがプランによって実行される環境のスペックだったりも決まる感じです。

  • App Service Plan
    • 通常のApp ServiceのPlanを使用する方法です。他のユーザー(テナント)と実行環境を共有しないという点である意味(Functionsにとって)占有プランとも言えます。
    • 最大インスタンス数などスペック、機能はApp Serviceと同等になります。
    • Azure Portal上で作成するときはClassic といった表記になります。
  • Dnyamic Service Plan
    • 詳細はこちら
    • functions.azure.com から作成すると自動的にこのプランになります。現状選択できるプランの詳細は特にありません(Freeのみ)。また価格表みればわかる通り、まだ未定の状態です。
    • App Service Planと異なり、こちらはAzure Functions専用のプランですね。また課金の対象は次の2種類あります。
    • Compute: 実行された時間とメモリ領域サイズに応じて課金
      • 設定メモリ領域サイズ(GB単位)* 実行時間(100ミリ秒単位)を基に計算
      • 実行時間は100ms単位で丸められるようです
      • Freeだと40万 GB*Secまで無料(128 MB 設定で約37日間フルで実行可能) ※超えたときの価格は未定
      • メモリ領域サイズは 128 MB – 1536 MB の間で設定可能 (64 MB 間隔)
    • Executions: 実行された回数に応じて課金
      • Freeだと100万回まで無料 ※超えた時の価格は未定
    • Freeプランはper アカウント per month なので同じアカウント(サブスクリプションかな?)で複数のAzure Functions コンテナーを作ったとしても共通になります。(アカウント単位で40万GB*Sec / 月まで無料ということかと)

Dynamicだと例えば128MB設定で30秒実行すると 128 MB / 1024GB * 30秒 =  3.75 GB*Sec になります。

価格についてはよく変動するので注意してください。

ここまでがざっくりな概要です。後は(誰得な)詳細とか細かなTipsを羅列していきます。

設定

基本的な設定は「Function app settings」から行います。
image

  • Memory Size (Dynamic Service Plan指定時のみ設定可)
    • Function App全体で使用するメモリ領域を指定します。料金に関わるので指定には注意しましょう。
    • 128 MB ~ 1536MBの間で64MB刻みで指定できます。
    • スクリプトの挙動が不安定だったりする場合、メモリ不足が原因の場合もあるので大き目に設定するとよかったりするかもしれません。
  • Continuous Integration
    • CIに関する設定です。GitHubなどのSCMと連携して自動的にFunction Appが展開されるようにすることができます。Web Appsとかと同じですね。
  • Authentication/Authorization
    • HTTPトリガーを使ったFunction AppにWeb Appsで用意されている認証・認可の機能を設定することができます。
    • HTTPトリガーで用意されているAPI Keyを使った認証とはまた別で前段で処理されます。
  • CORS
    • ブラウザからHTTPトリガーなFunction Appを呼び出したりする場合、CORSの設定が必要になります。
      image
      既定値の3つはAzure Functions UXのブランチ等と対応してますので参考までに。
      • functions.azure.com … 本番環境
      • functions-staging.azure.com … master
      • functions-next.azure.com … dev
  • API definition
    • HTTPトリガーなどWeb APIとして公開されるようなFunction Appについてより利用されやすいようにSwaggerの定義ファイル(JSONなど)を指定します。
  • Advanced Settings
    • Function Appに関するアプリケーション設定が行えます。簡単にいうとFunction App内で使用する接続文字列などを定義できます。(Web.configやApp.configで行うような)
    • 注意点はFunctions Container全体で共通(同じ設定)という点です。
    • 裏側の仕組みとしてはApp ServiceのApplication Settingsと同じです。実際、その画面が開きます(現状)
      image
    • ちなみにバインディングでBlobなど外部サービスと連携させた際の接続設定もこちらに保存されます。
      image
    • Function App内では環境変数を通じて取得することができます。(後述)

内部的な話

ざっくりアーキテクチャはこんな感じです。
image

Azure Functions Runtime (Webjobs.Script.Host)がスクリプトであるFunction Appを動かす実体となります。
通常、Azure Functionsを作ると1つのリソースグループ配下にApp Service PlanとWeb Apps、あとAzure Storageアカウントが作成されます。(※ポータル上から作成した場合はApplication Insightsも作成されます)
また実際にはWeb Apps上でいろいろ動作しています。もうちょっとそのあたりを詳しく書くと
image
こんな感じの構造になってます。※SiteExtensionsにFunctionsが入ってるのと、Azure Filesの共有フォルダをマウントしてるのがWeb Appsとちょっと違うところかもです。

ランタイムのバージョンは現状2つあります。普通に作ると最新版の~0.2になります。もし今後新しいバージョンが出てきた場合はFunction AppのSettingsタブから簡単にUpdateできます。
image

実際は FUNCTIONS_EXTENSION_VERSION 設定で~0.2 などを指定してるだけですが。細かい話をするとこんな感じです。
image
* D:\Program Files (x86)\SiteExtensions\Functions\
** 2016年5月25日現在の推測値 https://github.com/Azure/azure-webjobs-sdk-script/releases
修正内容などはGitHubのページ見ればいいですね。(Kuduとかでも同様です)

またフォルダー構造は以下のような感じ。
image
  • data\secrets フォルダー
    • HTTPトリガー等で使用するAPIキーを格納
  • site\wwwroot フォルダー
    • 各 Function App のスクリプト等を格納
    • フォルダー名 = Function App 名
  • Function App 名フォルダー
    • Function App に関する定義と実行スクリプト(コードファイル)を格納
    • function.json = バインディングなどの定義情報
    • * function.json が存在しないフォルダーは Function Appとして認識されない

image

各Function App内に含まれるファイル等は言語によっても少し異なります。

  • C#
    • NuGet パッケージの参照設定などは project.json に記述
    • カスタムアセンブリは bin フォルダーへ
  • node.js
    • npm パッケージは node_modulesフォルダーへ
  • D:\local\Temp\Functions\Binding
    • バインディングされたオブジェクトは Temp フォルダに
    • 外から参照できません

各Function Appフォルダには複数のスクリプトや関連するバイナリを置くことができますが、実行時にそれらを参照したりできないようです。(C#のアセンブリロードなどはちょっと特殊)
また複数言語の混在はエラーになるので注意しましょう。(run.csxとrun.ps1を一緒に置いとくなど)

実行するスクリプトの決定ルールなどは基本的にWebJobsと同様です。同一言語のスクリプトが複数存在する場合 run.{拡張子} が起動されます。

開発Tips

C#

  • .NET Compiler Platform Scripting APIでファイルに変更があった場合コンパイルされます。(.csと.csxが対象)
  • public static な Run メソッドが必須(エントリポイント)
  • project.json ファイルを使用して NuGet パッケージの指定など可(細かい話は.NET Core CLIなどのドキュメントを参照してください)
  • Run メソッドの引数はバインディングで指定した名前で実装します。
  • 一部outputのバインディングには out パラメーター修飾子を利用します(BlobのOutput時はout string outputBlobなどにする)
  • CancellationToken token を使用してグレースフル シャットダウンに応答できます。
  • 外部アセンブリの読み込みは #r ディレクティブを使用します。もしproject.json で指定した場合は不要( using ステートメントで読み込み)
  • カスタムアセンブリは Function App フォルダ直下の bin フォルダに保存(パス変えられません)
  • 外部スクリプト(.csx)の読み込みは #load ディレクティブを使用(こちらは相対パス)
  • 詳細はこちら https://azure.microsoft.com/ja-jp/documentation/articles/functions-reference-csharp/

JavaScript/node.js

  • module.exports で function(context){} を1つエクスポート(必須)
  • inputなバインディングは引数指定可(context でアクセスは可能)
  • 現状、node.js のバージョンは 5.9.1 固定
  • パッケージは Function App フォルダ内に npm install 等を使用してnode_modules フォルダーに保存、利用時は通常通り require(‘パッケージ’)
  • TypeScript/CoffeeScriptのランタイム側での自動コンパイルなどは未サポートです。
  • 詳細はこちら https://azure.microsoft.com/ja-jp/documentation/articles/functions-reference-node/

その他

  • バインディングされたオブジェクトはテンポラリのフォルダ上で保存
    D:\local\Temp\Functions\Binding\<ジョブID>\<バインディング名>
  • C# や node.js 以外の言語では上記パスが環境変数で提供されるので適宜読み出し・書き込みを行います

バインディングされたオブジェクトの取得例

C#

#r "Microsoft.WindowsAzure.Storage"
using System;
using Microsoft.WindowsAzure.Storage.Blob;

public static void Run(CloudBlockBlob inputBlob, CloudBlockBlob outputBlob, TraceWriter log)
{
  log.Info(inputBlob.StorageUri.PrimaryUri.ToString());
  outputBlob.StartCopyFromBlob(inputBlob);
}

PowerShell

$requestBody = Get-Content $Env:req -Raw | ConvertFrom-Json
$name = $requestBody.name
Out-File -Encoding Ascii $Env:res -inputObject "Hello $name"

PowerShellの上記例の場合、実行時に以下のようにファイルが生成されます。

D:\local\Temp\Functions\Binding\<ジョブID>\req
D:\local\Temp\Functions\Binding\<ジョブID>\res

アプリケーション設定の取得

アプリケーション設定は環境変数に入っているので以下のように取得できます。(decodeという設定を取得する場合)

C#

System.Environment.GetEnvironmentVariable("decode")

※ConfigurationManager経由でも取れます。

node.js

process.env.decode

PowerShell

$Env:decode

バインディングTips

細かいのはドキュメントが揃いだしてきたのでこちらを参照。

ドキュメントにもありますが、バインディング時にBlobなどパス指定する場合にパラメーターを使用することができます。

Blobの場合は {name} や {blobname}.{blobextension} といった感じ。またトリガーで {name}.txt のように指定することでパターンマッチングのようにフィルタすることもできます。この場合、 Blob名の最後が .txt のBlob時のみ発火します。
Queueの場合は

  • expirationTime
  • insertionTime
  • nextVisibleTime
  • queueTrigger
  • id
  • popReceipt
  • dequeueCount

などが利用できます。queueTriggerにはメッセージ本文が入ってるので例えばQueueトリガーで発火した後、OutputでBlobのパスに {queueTrigger}.txt のように指定すればメッセージ本文に含まれてる文字列.txt といったファイルが作成されます。
※パラメーターはトリガーやInputのバインディングで取得したものをOutputで使うこともできます。

また特殊なパラメーターとしてGUIDを生成する %rand-guid% とランダムな数値を生成する %rand-int% も利用できます。
※それぞれC#でいうところの Guid.NewGuid().ToString() と  (new Random()).Next(10000, int.MaxValue).ToString(CultureInfo.InvariantCulture) になります。

指定例:

{
  "type": "blob",
  "name": "outputBlob1",
  "path": "outcontainer/{name}.txt",
  "direction": "out“
},
{
  "type": "blob",
  "name": "outputBlob1",
  “path": "outcontainer/{blobname}.{blobextension}",
  "direction": "out“
},
{
  "type": "blob",
  "name": "outputBlob2",
  "path": "outcontainer/%rand-guid%",
  "direction": "out“
}

そのほか注意点はいくつかありますが、Blobトリガーは現状ポーリングして発火しているので1万以上のファイル(Blob)がある場合、パフォーマンス低下や発火漏れが懸念されます(公式より)

HTTPトリガー時の認可について

Web AppsのAuthN/AuthZ機能も使えますが通常API Keyを使った認可機能を使用すればよいかと思います。
また指定方法や範囲などはモードと認可レベル・Webhookタイプで変わりますので注意が必要です。

image

  • モード: Standard
    • 認可レベル: Function 、 Anonymous、 Admin
    • Anonymousはキーなしでアクセスできます。
    • Functionの場合は各Function App専用のキーもしくはホストのfunctionKeyが必要
    • Adminの場合はホストのmasterKeyが必要
    • URLクエリストリングにcode=<key>を付ける、もしくはHTTPリクエストヘッダにx-functions-keyを追加してキーを送信する必要があります。
  • モード: Webhook
    • Webhookタイプ:
      • Generic JSON
        • URLクエリストリングにcode=<key>を付ける
      • Github
        • HTTPリクエストヘッダに X-Hub-Signature という名前でキーを使って生成された署名を付ける必要がある

適切な方法で適切なレベルのキーが提供されない場合、認可エラーになり失敗します。

どの場合もキー(WebhookのGithubを選択した場合だけ名称がGithub Secretになりますが)は画面上に表示されているものを使用します。またキーの実体はdata\secrets フォルダにあります。

<Function App名>.json … 各Function App用の専用キーです。認可レベルをFunctionに指定した場合に使用できます。

{"key":"<Function App専用のキー>"}

host.json … Functionsコンテナー全体のキーを管理します。

{
  "masterKey": "<Adminレベル用のキー>",
  "functionKey": "<全Function App共通キー>"
}

もしキーを変更したい場合はKuduなどを使用して直接これらのファイル内のキーを編集することで変更できます。

デバッグについて

C#などの場合、Visual Studioを使用して直接Functions上の.csxファイルを開いてデバッグすることもできます。(但しApp Service Planで動作している場合のみ)※デモしたけど、シンボルが読み込まれないとかちょっと不安定だったけど…
※Cloud Explorerからファイル開いてアタッチするだけ

あるいはローカルにWebJobs.Script.Hostを動作させてローカル上でスクリプトをデバッグすることもできます。WebJobs.ScriptをCloneなりして実行することでローカル上で開発が可能です。(ちょっとコツがいる)
※最低限ローカル上でAzureWebJobsEnv 環境変数に Development と設定、AzureWebJobsStorage 、 AzureWebJobsDashboard環境変数をポータル上からコピペして設定、あとはFunctions上のsite\wwwrootフォルダ以下と同じ構成にしたフォルダのパスをAzureWebJobsScriptRoot 環境変数に設定すれば大丈夫と思います。
※function.json(バインディング)でBlobなどを使用する場合、接続文字列等をfunction.jsonで定義している名前と同じ環境変数に設定しておきます。(ないとHost起動時に読み込まれない)
※HTTPトリガーの場合はWebJobs.Script.WebHostを起動しましょう

スケールについて

Dynamic Service Planの場合、0~10の範囲でインスタンスが自動的に増減します。構成されているトリガーに基づいてトラフィックや実行状況から判断されるようです。1つのインスタンス内の同時実行可能数はメモリ領域の設定などによって異なるようです。(ちなみに今はDynamicの中でもプラン選べないのでこの制限以外選択の余地なし)
※どのように稼働してるかはMonitoringタブから確認

App Service Planの場合は基本的にApp Serviceの構成に依存します。オートスケールや稼働するインスタンス数などはApp Serviceでユーザーが構成します。

デプロイについて

FunctionsコンテナーそのもののデプロイはARM Templateを使って展開することもできます。既にQuickstart templateに公開されているのでそちらを参考に。

Function AppについてはCIの設定からSCMと連携して行うことも可能です。
またSite\wwwrootフォルダ以下にFunction App名なフォルダと必要なファイル(function.jsonとrun.csxなど)があればよいのでFTPやWeb Deployなどを使用してデプロイすることも可能です。あるいは環境によりますが、Azure File Storage上の共有フォルダを直接マウントして編集(あるいはフォルダごとコピーなど)することで展開することもできます。

モニタリング/ログ

消費ユニット/インスタンス数はMonitoringタブから参照できます。
image

お金関連(請求関連)はhttps://account.windowsazure.comやBilling API(REST API)経由で取得できます。以下の2つのメーターを参照しましょう(日本語の場合)

  • コンピューティング期間 (GB秒) – Functions
  • コンピューティング要求 – Functions

image

Function App単位のログやライブな実行状況などは各Function AppのMonitorタブから行えますが、現状Coming Soonです。
image

ただし、そのページにあるinvocation logとlive event streamのリンクから個別に参照することは可能です。

Invocation log(呼び出しログ)

https://<Functions名>.scm.azurewebsites.net/azurejobs/#/functions というURLになります。Azure WebJobsのログを見る時と同じアプリ(SiteExtension)ですね。
image

ちなみにログはAzure Table Storage上のAzureFunctionsLogTableコンテナーに保存されてます。(ちなみにホストに関するログ等は同じくAzure Blob Storage上のazure-webjobs-hosts コンテナーに保存される様子)※Dynamicプラン時のみかも
詳細を見ることでFunction Appのログで見た内容(Outputの内容)やバインドされた各値の内容など参照できます。
image

Live event stream

数秒ラグありますが、ライブで要求数や実行時間、失敗数などを見ることができます。
image

URLを見ればわかりますが、Web Appsのサポート用ツールだったりします。
https://support-bay.scm.azurewebsites.net/Support.functionsmetrics/#/<Functions名>/<Function App名>

Openness

Azure Functionsに関するコード等はすべてGitHub上で公開されています。もしフィードバックなどあればGitHubのIssueに登録するとよいかもです。またライセンスはMITライセンスとなっているようです。

そのほかWebJobs SDKWeb Jobs SDK Extensionも参考に。

また複数言語対応という点もありますが、基本的にランタイムが公開されているのでオンプレだろうがAzureじゃないクラウドだろうが動かすことはできます。ただ現状手厚いサポートはありませんが。(ポータル部分とか展開方法とかいろいろ)

注意事項や制限事項

  • 2016年6月4日現在、Public Preview状態
    • SLAなし
    • 有償テクニカルサポートなし
  • 利用可能なリージョン
    • 現状は米国西部、西ヨーロッパ、東南アジアの3か所のみ。
  • カスタムドメイン名は非対応
    • 内部のWeb Apps側で設定しても404になります。(要望は上がってるのと、上位にTraffic ManagerやAPI Managementを乗せるという手はある)
  • スロット
    • こちらも現状利用不可(要望は上がってた気がする)

質問やフィードバック

今のところPreviewということで、有償のテクニカルサポートはありません。ベストエフォート的な対応になりますが、基本的にはStack OverflowやMSDN Forum、あとTwitterなどでやり取りする感じです。

バグ報告とかはGitHubへ。

ドキュメント

その他

気が向いたら更新します。サンプルも気が向いたら。


カテゴリー:つぶやき, Tips Tagged: Azure, Cloud, Functions, JAZUG

Microsoft クラウドのFrontdoor

$
0
0

いつのころからかMicrosoftクラウド(というかAzure)の管理用APIの入り口はワールドワイドに点在するようになってました。(昔は北米にしかなくて日本からだと遅かった気がしますよね)

実際にはTraffic Manager使ったりしてワールドワイドで共通のAPIの口(Frontdoor API)から裏のMicroservicesに処理を渡したりしてるようなのですが、そのようなグローバルなAPIをどう作るのかという話がいろいろあったようです。

QConのはちょっと資料見れないので残念…
Mark Russinovichのセッションでは弾力性のあるサービスを作る際の(Deploy周りの)参考にという感じでAzureの内部の話に少し触れてますね。

image

Management APIの入り口としてAzure Frontdoor APIを紹介してます。デプロイする際の裏の動き(初期化や展開、それらのチェックなど)に触れてるので大規模サービス考えてる人は参考にするといいかもしれませんね。


カテゴリー:つぶやき Tagged: Azure, Cloud, JAZUG

Azure Update (2016.06.09)

$
0
0

Fシリーズだったりいろいろ。


Virtual Machines

  • Announcing: F-Series of compute-optimized virtual machines
  • New F-Series VM Sizes
    • Fシリーズが追加されました。Intel Xeon® E5-2673 v3 (Haswell)なCPUを載せて、メモリ搭載量を少し抑えて価格も抑えたような(CPU特化な)シリーズですね。
      image
    • ワークロードに合わせていろいろ選択する余地がでるのはいいことです。
    • 日本でいえばPremium Storage使えるFシリーズは西日本だけ、StandardなStorageのFシリーズは東西どちらでも使えるようです。
    • ※なんでPremiumなやつはFSじゃない感じの名称なんだろう。。。

Virtual Machine Scale Sets

App Service

DocumentDB

HDInsight

Azure Media Services

Azure Search

  • New Azure Search tiers and Basic and Standard S2 general availability
    • BasicとStandard S2がGAしたのとStandard S3、Standard S3 HD(High Density)がPreviewです。
    • S3は高CPUにPremium Storageサポート、10億以上のドキュメントサポートや低レイテンシ、秒間あたり数百件のクエリに対応できるようです
    • さらにS3 HDは高密度ということで、小さめのドキュメントがあって大量のインデックスが必要になる場合に適してるらしいです。(最大1000インデックス)
    • image

Azure Active Directory

SQL Database

SQL Data Warehouse

StorSimple

Azure API Management

FreeBSD

  • FreeBSD now available in Azure Marketplace
    • VMDepotとかからデプロイできてたFreeBSDなVirtual Machineですが、Marketplaceからデプロイできるようになりました。バージョンはFreeBSD 10.3のようです(現状)

その他


カテゴリー:つぶやき Tagged: Azure, Cloud, JAZUG, Update

Microservices on Azure

$
0
0

翔泳社さんから「Microservices on Azure」という書籍が(こっそり)出ています。 ※なぜこっそりなのか

BobFamiliar
株式会社クイープ

原著はこちら

書籍内のサンプルはこちらです。

また、翻訳版を翔泳社さんから頂きました(ありがとうございます!)ので、拙いですが感想などを。

所感

タイトルはMicroservices on Azureということで、本書全体を通してリファレンス実装(サンプル)を使ってどのようにAzure上でMicroservicesを組み合わせて1つの大きなシステムを作り上げていくかを検討しながら解説している感じです。

1~3章でモノリシックからマイクロサービスといった流れの背景や関連する用語、マイクロサービスについてアーキテクチャなど含めて概要や課題を解説してます。
ソフトウェア的な部分の解説もそうですが、チームや組織、文化的なところにも触れてるので、昨今のDevOps的なところやMicroservicesについてざっと知りたい人はこのあたりを読むとなんとなく把握できるかと思います。

4章は本書全体で使っているAzureの各サービスについての概略説明な感じです。知ってる人は飛ばしても可。
5章はオートメーションということでAzureへのプロビジョニングやビルド、デプロイについての解説。
6章では実際にAzureの各サービスを使って実装したシステムの解説、7章、8章でIoT HubやService Fabricについて特に言及する、といった流れです。

全体的によく挙がる各用語に関する専門書(DevOpsやらMicroservicesやら)ではないので、深掘りしたい人は気になった部分の専門書なり(例えばMicroservicesのアーキテクチャであればオライリーの本だとか)を追っていけばいいかなと思います。またAzure部分は細かい話も多いですが、汎用的な話が多いのと比較的新しめの情報なので、早めに読んで押さえておくとよいかも。

Azureでの実装の一例あるいは検討材料的な感じで取っ掛かりとして読んでみるのが良いかもですね。


カテゴリー:つぶやき Tagged: Azure

DockerCon 2016 でのAzureの話題

$
0
0

Mark Russinovich氏がDockerCon 2016でデモしてたりした内容が纏まってました。

DockerConについてはPublickeyにまとまってます。

イベントの様子は各種Tweet追うと雰囲気がわかるかもです。

さて内容はと言うと。

  • Docker DatacenterがAzure Marketplaceに
    • Azure MarketplaceからぽちぽちするとARMなDocker Datacenterが作れるようです
  • Hybrid
    • Azure StackでもAzureでもどちらでもDockerコンテナーベースのアプリケーションが動きます
      AzureのStack_DockerCon 2016
      (Azure Stackでデモしてる様子)
  • OMSでAzureやAzure Stack上(だけじゃないけど)のコンテナーを管理
  • Azure Container ServiceでDocker Swarm使ったWindows Server Containersをサポート(Preview)
  • DockerコンテナーでSQL Server on Linux
    • ウゴイテマス

なんというかVisual Studio Codeを使ってMac上で.NET Coreなアプリケーションの開発とかデバッグしてAzureやAzure Stack上のDockerコンテナーにデプロイしてしかもSQL Server on Linuxまでコンテナーで動かすとか表にWindowsが出てこない感じです。(Azure StackとAzureの裏側にはWindows Serverが居ますけど。。)

面白いですね!


カテゴリー:つぶやき, イベント Tagged: Azure, Azure Stack, Docker, Event

Azure Update (2016.06.24)

$
0
0

さぼってました。細々なUpdateの中にもきらりと光る何かが(?)


Azure Information Protection

Service Fabric

App Service

Redis Cache

DocumentDB

Key Vault

Operations Management Suite(OMS)

ちなみに今のOMSのPMは日本人女性の方のようです?。(小ネタ)

Azure API Management

Cognitive Services

StorSimple

Azure Site Recovery

Log Analytics / OMS

Media Services

Notification Hubs

DevTest Labs

Azure Search

Application Insights

Azure Batch

Azure Container Service

  • Windows Server Containersサポートが追加されるようですが・・アナウンスだけ?(DocerConより)

その他


カテゴリー:つぶやき Tagged: Azure, Cloud, JAZUG, Update

Azure Update (2016.06.24-2)

$
0
0

追加で。

Mobile Engagement

Azure Storage

Azure Active Directory

その他


カテゴリー:つぶやき Tagged: Azure, Cloud, JAZUG, Update

.NET Core 1.0 RTM / Visual Studio 2015 Update 3

$
0
0

予定されてた通り .NET Core 1.0 がRTMになりました。おめでとうございます。また関連するツール類なども更新されています。

image

Previewの文字が取れました。

ちなみに Azure App Service Web Apps ではもうASP.NET Core 1.0が利用できますよ。

image


カテゴリー:つぶやき Tagged: .NET, .NET Core, Azure, Visual Studio

Microsoft MVP for Microsoft Azure

$
0
0

受賞できました。6年目です。

また1年間いろいろがんばりたいと思います。若手が増えてきたのでそろそろ抜けても大丈夫な気がします。

  • Azure界のやまもとまさ こと やまさ こと @nnasaki / nnasakiのブログ に任せておけば安泰
  • 人形町の岬くんこと @_iwate / Qaramell Blog に任せればだいたいの無茶ぶりはOK
  • 元さくらの妖精こと @kanreisa / ポテチに関する雑記帳 に任せればだいたいのことは実現できそう
  • Service FabricとStorageといえば おーみさん に任せておけばDeepなところまで大丈夫ですね。(ただしアルコール入ってない場合)

あとは継続してしばやん先生ムッシュにお願いすればAzure以外も大丈夫そうです。

※このエントリは頑張ってステマしようと試みてるエントリです(びっくりするほど去年のコピペです)


カテゴリー:つぶやき Tagged: Azure, Cloud, JAZUG, MVP

Azure Update (2016.07.07)

$
0
0

ちょっと大人しい感じ。

Azure Container Service

Application Insights

Virtual Machines

SQL Database

Azure Functions

Azure Storage

Media Services / Media Analytics

Azure Redis Cache

DocumentDB

Azure Active Directory

  • #AzureAD updated with new admin roles
    • “Privileged Role Administrator”, “Security Administrator”,“Security Reader”の3つのロールが増えました。
    • それぞれRBACで使ったりできます。

その他


カテゴリー:つぶやき Tagged: Azure, Cloud, JAZUG, Update

Azure Update (2016.07.08)

$
0
0

こまごま。

App Service

HDInsight

Azure Automation

SQL Database

Power BI


カテゴリー:つぶやき Tagged: Azure, Cloud, JAZUG, Update

Microsoft World Partner Conference 2016 Day 2 Keynote

$
0
0

Day 2あると思わなかったよ(

2日目はちょっとテクノロジーカットですね。あとおさらい感があります。

オープニングはGavriella Schuster氏から。
image

さて最初は赤くない赤シャツ氏ことScott Guthrie氏から。
image

Digtal Transformationのおさらい。
image

MSが提供するクラウドの一覧。
image
書いてないけどコンシューマー向けだとBingとかもあるとは思いますが。
MSがもってるデータセンター(リージョン)も34か所になりました。
image
しれっとWest US 2とかWest Central US増えました。
いつもの大きさ比較。
imageimage

信頼されるクラウドとして認証周りも力入れてます。あとHybridまわりも。
imageimage

マジッククアドランドで17分野でリーダーですとかFortune 500の企業の85%で使われてるとかそいういう話。
imageimage

パートナーのOpportunityとしては2倍の成長などが得られましたとか。CSP(クラウドソリューションプロバイダー プログラム)でソリューションを提供できますとか。
imageimage

Microsoft AppSource というのもリリースされてます。
image

ということでAppSourceのデモ。パートナーだったりのサービス等を検索して試したり既存サービスに接続させることができます。AvePointの例だと数クリックでAvePointのCitizen ServicesというDynamics CRMやPower BIを使ったサイトが使えるようになりますとか。
imageimageimageimageimageimage

今時点で200以上のアプリケーションが利用できます。
image

後は新しいオファーとして発表されてたSecure Productive Enterpriseなどの紹介。
image

で、Application Innovation目指して使うAzureな話。現状のざっくりサービス群とか選択肢が多いよとか。
imageimageimage

過去12か月間でたくさんアップデートあったけど、その中でもXamarinの話。既に多くの顧客が使ってます。Buildのときにも見た事例動画とかですね。
imageimageimageimage

Azure Solutionsというサイトもオープンしてます。パートナーソリューションとか事例を見たりできます。
image

次はIntelligence。データを集めて分析したり予測したりできればそこからDynamicsやOffice 365、PowerAppsを使ってアクションを起こせます。

imageimageimage
Rolls-Royceの事例とか。
image

ナイジェリアの太陽光発電の事例の話。懐中電灯を充電して日没後など電気がない家庭でも学習できる(夜も読書ができる)とか医療、学校周りへ電力の安定供給など。デモでは点在してる拠点での問題を把握したり障害回復したり分析したり、対応方法がシステムから提案されたり。
imageimageimageimageimageimage

次はセキュリティ話。いろいろな観点のセキュリティ対策を提供しています的な。デモはいつものJulia氏ですね。Azure Information ProtectionがPublic Previewになったということもありそのあたりのデモです。ファイルの情報源やコンテキストに応じたタグが自動的についたりあるいはつけたりしてIRMで保護できます。手動でやる分にはRights Managementと変わりませんが、Secure Islandsの技術がベースになってるコンテキストに応じて自動で、というところがポイントですね。Excelの例だとクレジットカード番号が入ってるドキュメントの保護レベルを下げる場合はセンシティブな情報ということで理由が求められたり。
imageimageimageimageimage

あとはCloud App Security(参考)でSaaSアプリケーションのセキュリティを高めたり。状態把握が簡単そうですね。
imageimageimage

OMSでログ解析、自動化、DR、セキュリティ対策など。AzureだけじゃなくPrivate CloudもAWS、OpenStackなども。
imageimage

ということでMicrosoft CloudはGlobalでTrustedでHybridですよ的な。
image

ここでScott Guthrieのターンは終了。次はKirk Koenigshbauer氏からOffice周りとか生産性などの話。リモートワークしてる人は1995年に比べて4倍、USでは2000年以降生まれの人口が2020年には50%になるとか。あと過去2年間で90%のデータが生成されたとか。それから役職な人の87%が個人用の領域(クラウドだったり)に仕事用データを保存したことがあるらしい…
imageimageimageimageimage

というところでデジタル変革のための生産性の再発明の4つの柱。コラボレーションできて、どこでも使えて、Intelligenceで。あと信頼性が大事。
image

※先週、Office 365は5周年だったらしい
image

ガートナー曰く、10億ドル以上の売り上げがある企業の80%がMicrosoftのクラウドemail(Exchange Onlineとかですかね)を使ってるらしい。あとはOffice 365 E5の話とか。
imageimageimage

Digital Transformationしたユニークな企業とOffice 365、ということでFacebookの事例が。FacebookのCIO、Tim Camposが登壇して喋ります。Office 365を選んだ理由など。(コラボレーションするツールがあったりセキュアであったりいろいろ)
imageimageimage

さて戻ってきてロードマップな話。Intelligentでビルトインなセキュリティと保護、拡張された分析と洞察など。
imageimageimage
あとSkype。Cloud PBXやPSTNなどなど。。(日本には来るのでしょうか)それにSharePoint。
imageimage
SharePointはCatherine Boeger氏からデモ。SharePointで作ったサイトを表示してiPhoneのSharePointモバイルアプリで表示したり。Outlookのモバイルアプリで危険なサイトをブロックしたりRMS(EMS)でコピー不可にしたり。データ保護とセキュアですよと。
imageimageimageimageimageimage
Advanced Security Managementの画面でアラートを確認したり。あとはDelve(と裏ではMicrosoft Graphなど)で関連データを引っ張ってきたり。PowerPointは複数画像貼りつけたらデザインをサジェストしてくれたり。
imageimageimage
後はSkype for Business for Mac。
imageimage
大規模ブロードキャストできる機能とか。
imageimage
そんな感じでOffice 365も広がって行ってます。
imageimage

次はYusuf Mehdi氏によるWindowsとデバイスの話ですね。過去から現在、未来のテクノロジー(主にコンピューティング)についてのビデオも紹介しつつ。
imageimage
話はデバイスとセキュリティへ。
imageimage
Windows 10でどういう保護してるか。Windows Hello使ってブラウザ(Edge)内のログイン処理を保護したり。
imageimage
わかりにくいけどWin7だとユーザーID、パスワードが抜かれてるけどWin10(緑色側)なら大丈夫とか。
image
Win7ならマルウェアでOSの設定(ファイアウォールとか)が書き換えられちゃうけどWin10なら大丈夫(検知して防いでくれる)とか。ハッカーからの攻撃を防いだり、その結果をAdvanced Theat Protectionのダッシュボードで確認したり。
imageimageimageimage
といった機能も含めてAnniversary Updateが8月2日にリリースされます。
image

その中に含まれるCortana連携やペン機能などのデモをいつものBryan氏から。どこかで見たデモですね?!(de:codeよりタイヤ破壊したり派手ですがw)
imageimageimageimage

で戻ってきて。Win 10 Enterprise E3を月間7ドルで。あとSurface as a ServiceということでDellやIBMがSurfaceデバイスやアクセサリーをリースできるようになりました。E3が秋、リースが年末ぐらいからですかね?(不明確)
imageimageimage

次はMR。2020年には8,000万のMRやVR、ARデバイスが1年間に出るだろうという予測。ということでHoloLens使ってるところの企業とデモですね。事例としてPGA TourのSteve Evans氏達が。デモはKelly Malone氏。ゴルフコースを見ながら打球の軌跡をみたり。
imageimageimageimageimageimageimage

という感じで最後はHoloLensのムービーみてDay 2のKeynoteは終了です。

おまけ

いつもの適当に抜き出したスクリプト(字幕)です。※但し(だいぶ)後半からのデータしかないっぽいです(Skypeの話あたりから)

なんか3日目もあるらしいよ…( ´゚д゚`)


カテゴリー:つぶやき, イベント Tagged: Azure, Event, Office 365, WPC

Azure Update (2016.07.13)

$
0
0

WPC関連とか他いろいろ。


App Service

Azure Information Protection

  • そんなわけでWPCで少しデモなどもありましたInformation Protectionですが、Public Previewとなりました。

SQL Data Warehouse

SQL Database

Azure Active Directory

ExpressRoute

Operations Management Suite

Cortana Intelligence Suite

Cognitive Services

Azure Stack

Azure Portal

  • 監査ログがフィルタしたりしやすくなりました。
    image
  • ブレード上部のメニューが小さくなった
    image
    あと余白ドラッグで移動できなくなってしまったんだけど…(困る)

Region / Trust

  • West US 2 と West Central USの2つのリージョンが追加されました。

    DISA Level 4 PA とITAR – US Govを取得したようです。

Power BI

その他


カテゴリー:つぶやき Tagged: Azure, Cloud, JAZUG, Update

Azure Functions で実行中にコンパイルするとどうなるの

$
0
0

裏でFunction Appが実行中のときにコンパイルして(コンパイルエラーになったりして)るときに実行中のものはどうなるのか、予想では別物なんで問題ないと思いますが一応。

検証用コード

using System.Net;

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
    log.Info($"Start ----");
    // parse query parameter
    string name = req.GetQueryNameValuePairs()
        .FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0)
        .Value;

    await Task.Delay(TimeSpan.FromSeconds(20));

    // Get request body
    dynamic data = await req.Content.ReadAsAsync<object>();

    // Set name to query string or body data
    name = name ?? data?.name;

   log.Info($"End ----------");
   return name == null
        ? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass a name on the query string or in the request body")
        : req.CreateResponse(HttpStatusCode.OK, "Hello " + name);
}

HttpTriggerなC#のテンプレートにStartとEndのログと間にTask.Delayで処理止めてるだけのシンプルなやつです。
※ログにFunction Startedとか出るので無駄な気もするけど一応

手順的にはこんな感じ

1.  上記コードを実行する(適当に呼び出す)
2. Task.Delayしてる間にコードを適当に弄ってSaveしてコンパイルエラーにする
3. 結果を見る
4. そのまま再度呼び出す

実行結果はこんな感じになりました

2016-07-19T03:34:42.334 Function started (Id=14c91f2c-2490-437c-b461-258a13872d82)
2016-07-19T03:34:42.334 Start ----
2016-07-19T03:34:45.698 Script for function 'HttpTriggerCSharp1' changed. Reloading.
2016-07-19T03:34:45.698 Compiling function script.
2016-07-19T03:34:45.776 run.csx(14,13): error CS1002: ; expected
2016-07-19T03:34:45.776 run.csx(11,48): error CS0246: The type or namespace name 'aaaa' could not be found (are you missing a using directive or an assembly reference?)
2016-07-19T03:34:45.776 run.csx(14,13): error CS0103: The name 'data' does not exist in the current context
2016-07-19T03:34:45.776 run.csx(17,20): error CS0103: The name 'data' does not exist in the current context
2016-07-19T03:34:45.776 run.csx(14,5): warning CS0168: The variable 'dynamic' is declared but never used
2016-07-19T03:34:45.776 Compilation failed.
2016-07-19T03:35:02.334 End ----------
2016-07-19T03:35:02.334 Function completed (Success, Id=14c91f2c-2490-437c-b461-258a13872d82)
2016-07-19T03:35:27.915 Function compilation error
2016-07-19T03:35:27.915 run.csx(14,13): error CS1002: ; expected
2016-07-19T03:35:27.915 run.csx(11,48): error CS0246: The type or namespace name 'aaaa' could not be found (are you missing a using directive or an assembly reference?)
2016-07-19T03:35:27.915 run.csx(14,13): error CS0103: The name 'data' does not exist in the current context
2016-07-19T03:35:27.915 run.csx(17,20): error CS0103: The name 'data' does not exist in the current context
2016-07-19T03:35:27.915 run.csx(14,5): warning CS0168: The variable 'dynamic' is declared but never used
2016-07-19T03:35:27.915 Function completed (Failure)
2016-07-19T03:35:27.961 Exception while executing function: Functions.HttpTriggerCSharp1. Microsoft.Azure.WebJobs.Script: Script compilation failed.

StartとEndの間でコンパイル走ってエラーになってますが、Function Id=14c91f2c-2490-437c-b461-258a13872d82は継続して処理が完了してます。

その後再度呼び出してみるとコンパイルが完了してないので再度コンパイル→失敗→500エラーが返る、という感じです。

予想通りでしたね。なんかおかしい、という場合はぜひ追加の検証をお願いします。


カテゴリー:つぶやき, Tips Tagged: Azure, Cloud, Functions, JAZUG, Tips

Azure Update (2016.07.28)

$
0
0

そんなわけで2週間分ぐらいです。


App Service

Virtual Machines

Service Fabric

Azure Data Lake

Service Bus

Stream Analytics

Azure Batch

Media Services

Azure Storage

Azure Security Center

Azure Machine Learning

Azure Data Factory

Azure CLI

Azure Active Directory

Azure IoT Hub

  • General availability: Microsoft Azure IoT Hub S3 edition
    • より大規模なデータを処理したい人向けS3エディションが出ました
    • 月51万円、1日当たり3億件のメッセージという感じです(S2が月5.1万円、600万件/日のメッセージなので極端ですが)

Azure Diagnostics Log

  • Azure Diagnostic Logs can now be streamed to Event Hubs
    • 診断ログでストリーミングが有効にできるようになりました。Event Hubsに流し込んだりできます。
    • Stream AnalyticsやPower BIと組み合わせてライブで解析したり分析することができそうです。

Power BI

  • New features for the Power BI Dataset API
    • Power BIのDatasetをさわるAPIの新しい機能として追加モデリングなプロパティやシーケンス番号が付与できるようになりました。

Operations Management Suite / Log Analytics

その他


カテゴリー:つぶやき Tagged: Azure, Cloud, JAZUG, Update

Azure Functions で実行時のIDを取得する

$
0
0

Azure Functionsを使ってるときに今実行されている状態のIDを使いたい場合があるかと思います。後で追跡する場合に呼び出されたIDとか関連付けされていると便利ですよね。

というわけで、呼び出しログ(Invocation Log)とかで使われるIDをコード内で使う方法です。

C#の場合

using System;

public static void Run(string input, ExecutionContext executionContext, TraceWriter log)
{
    log.Info($"InvocationId: {executionContext.InvocationId}");
}

C#の場合はExecutionContext型の引数を受け取るようにすればOKです。ExecutionContext型にはInvocationIdプロパティがあるのでそちらを参照します。ちなみに内部的にも同じ型でcontextという名前でバインディングされるので、contextという引数名にするとバインディングエラーになります。修正されるかもしれませんが。

JavaScriptの場合

module.exports = function (context, input) {
    context.log('Node.js manually triggered function called with input:', input);
    context.log(context.bindingData.InvocationId)
    context.done();
};

JavaScriptの場合はcontextのbindingDataにInvocationIdが生えてるのでそちらを使います。

実行結果はこんな感じで、呼び出しIDが取得できます。

2016-08-03T19:14:03.491 Function started (Id=f58733a5-d6ce-4035-8a42-c6b95b7d79b7)
2016-08-03T19:14:03.491 InvocationId: f58733a5-d6ce-4035-8a42-c6b95b7d79b7
2016-08-03T19:14:03.491 Function completed (Success, Id=f58733a5-d6ce-4035-8a42-c6b95b7d79b7)

カテゴリー:つぶやき, Tips Tagged: Azure, Cloud, Functions, JAZUG

Azure Update (2016.08.04)

$
0
0

夏って感じ。


App Service

Azure Media Services

Azure Functions

ランタイムVer ~0.4が出てます。

SQL Database

Virtual Network

Virtual Machines

Azure Machine Learning

Azure Active Directory

Azure IoT Hub

Azure Stack

ドキュメント周りとかPaaS関連とか。

Azure DevTest Labs

Azure Service Profiler

  • Exploring the Azure Service Profiler
    • いわゆるNew Relicみたいなサービスです。
    • Application Insightsとの使い分けが悩ましい気がするんですけど、どういう差異があるのか…

Microsoft Operations Management Suite / Log Analytics

Trust

その他


カテゴリー:つぶやき Tagged: Azure, Cloud, JAZUG, Update

Azure Update (2016.08.18)

$
0
0

お盆も終わって久しぶりな感じ。


Application Gateway

Azure CDN

App Service

Azure Data Lake

Azure SQL Database / SQL Data Warehouse

Virtual Machines

Azure RemoteApp

Azure Automation

DocumentDB

Azure Site Recovery

Power BI

  • Power BI Embedded GA pricing update
    • Power BI EmbeddedもGAしたので価格がUpdateされました。Freeは100セッションまで、100セッション以上は$0.05/レポートセッション(月)ということで9月1日から変わります。
  • Real-time in no time with Power BI
    • Power BIのREST APIでStreamingがサポートされたり、PubNub Streamingデータセットが使えるようになったりしました。
  • Custom visual developer tool now Generally Available
    • Power BIでカスタムビジュアルツールが使えるようになりました(GA)
    • 好きなIDE使ったりできます。

Azure Active Directory

Azure Search

Azure Scheduler

Azure API Management

Azure Backup

Application Insights

Azure DevTest Labs

Azure Stack

Trust

その他


カテゴリー:つぶやき Tagged: Azure, Cloud, JAZUG, Update
Viewing all 506 articles
Browse latest View live