SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Scott Guthrie氏 Blog翻訳

Azure:新しいDocumentDB NoSQL Service、新しい検索サービス、新しいSQL AlwaysOn VMテンプレートなど

連載:ScottGu's Blog翻訳

監視と管理SDK:監視データにプログラムでアクセス

 Azure管理ポータルは、ビルトインの監視および管理サポートを提供しているので、Azureに展開されたアプリケーションやソリューションの状態を簡単に追跡できます。プログラムでAzureの監視および管理機能にアクセスしたい場合は、Nugetから.NET SDKを使用してもできるようになりました。今回の一般公開でこのSDKをリリースしているので、現在本番サービスで使用できます。

 例えば、サービス全体からメトリックデータを表示する独自のダッシュボードを構築したい場合、SDKを経由でそのメトリックデータを取得することができます。

// 指定の拇印を含んだ証明書を得ることでメトリクスクライアントを生成
Create the metrics client by obtain the certificate with the specified thumbprint.
MetricsClient metricsClient = new MetricsClient(new CertificateCloudCredentials(SubscriptionId, GetStoreCertificate(Thumbprint)));
 
// リソースid文字列を作成
string resourceId = ResourceIdBuilder.BuildWebSiteResourceId("webtest-group-WestUSwebspace", "webtests-site");
 
// メリトリクス定義を取得
MetricDefinitionCollection metricDefinitions = metricsClient.MetricDefinitions.List(resourceId, null, null).MetricDefinitionCollection;
 
// 利用可能なメトリクス定義を表示
Console.WriteLine("Choose metrics (comma separated) to list:");
int count = 0;
foreach (MetricDefinition metricDefinition in metricDefinitions.Value)
{
    Console.WriteLine(count + ":" + metricDefinition.DisplayName);
    count++;
}
 
// 問い合わせたいメトリクスをユーザーから取得
var desiredMetrics = Console.ReadLine().Split(',').Select(x =>  metricDefinitions.Value.ToArray()[Convert.ToInt32(x.Trim())]);
 
// 直近20分のメトリクスデータを取得
MetricValueSetCollection values = metricsClient.MetricValues.List(
    resourceId,
    desiredMetrics.Select(x => x.Name).ToList(),
    "",
    desiredMetrics.First().MetricAvailabilities.Select(x => x.TimeGrain).Min(),
    DateTime.UtcNow - TimeSpan.FromMinutes(20),
    DateTime.UtcNow
).MetricValueSetCollection;
 
// メトリクスデータを表示
foreach (MetricValueSet valueSet in values.Value )
{
    Console.WriteLine(valueSet.DisplayName + " for the past 20 minutes:");
    foreach (MetricValue metricValue in valueSet.MetricValues)
    {
        Console.WriteLine(metricValue.Timestamp + "\t" + metricValue.Average);
    }
}
 
Console.Write("Press any key to continue:");
Console.ReadKey();

 監視SDKでさまざまなサービスのメトリクスをサポートしています。

サービス メトリクスの種類 頻度
クラウドサービス CPU、ネットワーク、ディスク 5分、1時間、12時間
仮想マシン CPU、ネットワーク、ディスク 5分、1時間、12時間
Webサイト リクエスト、エラー、メモリー、リスポンスタイム、データアウト 1分、1時間
Mobile Services APIコール、データアウト、SQLパフォーマンス 1時間
ストレージ リクエスト、サクセスレート、End2End遅延 1分、1時間
サービスバス メッセージ、エラー、キューの長さ、リクエスト 5分
HDInsight コンテナ、アプリの実行 15分

 ポータルでできない高度なオートスケール設定を管理したい場合、SDK経由で行うことができます。例えば、カスタムメトリクスに基づいてオートスケールを構築して、MetricDefinitionsから返されたもので自動スケール調整することができます。SDKのドキュメントはすべてMSDNで提供されています。

API管理:サービスのREST APIをサポート

 今年5月のプレビューでAzure API管理サービスを開始しました。API管理サービスにより、お客様は、パートナー、公共開発コミュニティ、さらには内部の開発者に迅速かつ安全にAPIを公開することできます。

 今回、多くの新しいシナリオが可能になるAPI管理REST APIが利用可能になりました。API分析にアクセスする以外に、API、製品、サブスクリプション、ユーザー、グループを管理するためにも使用することができます。実際、仮想的に管理APIポータルで利用できる管理操作は、すべてプログラムからアクセスできるようになったので、選択したコマースプロバイダと直接課金するAPI、ユーザまたはサブスクリプション管理の引き継ぎ、API展開の自動化など、ホストの統合や自動化のシナリオが可能になります。

 さらに追加のSAS(共有アクセス署名)セキュリティオプションも提供しています。パブリッシャポータルに統合されたことでSASトークンが生成できるので、安全にAPIサービスを呼び出すことが非常に簡単になりました。わずか3つのステップだけです。

  • パブリッシャポータルのシステム設定ページでAPIを有効化
  • 手動またはプログラムで期間限定のアクセストークンを取得
  • APIに要求を送信して、すべての要求にトークンを提供

 詳細については、RESTのAPIの参照をご確認ください。

ユーザ登録と製品サブスクリプションの委任

 新しいAPI管理のREST APIにより、API管理と他のプロセスを自動化し統合することが簡単になります。このように統合する多くのお客様はすでにユーザーアカウントシステムをお持ちで、開発者ポータルで提供されているビルトイン機能ではなく、既存のリソースを使用したいと思っています。委任と呼ばれるこの機能により、ユーザーデータを所有するのに既存のWebサイトやバックエンドを有効にして、サブスクリプションを管理し、シームレスにAPI管理の動的に生成されたAPIドキュメントと統合することができます。

 委任を有効にするのは簡単です。パブリッシャポータルの委任セクションで、Delegated Sign-inを有効にしてサインアップし、エンドポイントURLと検証キーを提供すれば、完了です。詳細については、ハウツーガイドをご確認ください。

まとめ

 今回のMicrosoft Azureのリリースで、数多くの素晴らしい新しいシナリオが可能になり、クラウドでホストされたアプリケーションの構築がさらに簡単になります。

 今回の最新Azureリリースには、非常に多くの素晴らしい機能が含まれており、より優れたクラウドソリューションが構築できます。もしまだAzureアカウントをお持ちでなければ、無償トライアルにサインアップして、上記機能をすぐにお試しいただけます。アプリの構築方法などの詳細は、Microsoft Azure Developer Centerで確認してください。

 Hope this helps,

 Scott

 P.S.ブログに加え、現在Twitterを使って簡単な更新やリンク共有を行っています。twitter.com/scottguで、私をフォローしてください。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
Scott Guthrie氏 Blog翻訳連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト Chica(チカ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Scott Guthrie(Scott Guthrie)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/8071 2014/09/03 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー