2014年12月 2日 (火)

[O365] SharePoint アプリ開発で利用する Service Bus についての注意点

Visual Studio 等の開発ツールを使って、Office 365 上で動作する SharePoint アプリとしてリモート イベント イベントレシーバーやアプリ レシーバーを実装する際、デバッグに Microsoft Azure の Service Bus (リレーサービス機能)を使用します。

2014年8月以降では Service Bus の名前空間を作成する際に気を付ける必要があります。現在は SAS (共有アクセス署名) と ACS (Microsoft Active Directory アクセス制御サービス) の 2種類があり、Azure Service Bus を介したリモート イベントのデバッグは現在のところ ACS のみとなっています。しかし、Microsoft Azure ポータルサイト上から新規に作成できるのは、SAS 認証を使った名前空間のみです。

ACS を使用する名前空間を作成するには、Windows PowerShell, Azure CLI, REST API のいずれかを使用します。

今回は PowerShell を使う例をご紹介しておきます(Azure PowerShell の基本的な使い方は「Azure PowerShell のインストールおよび構成方法」を参照してください)。

  1. .NET Framework 4.5 がインストールされている環境に Azure PowerShell モジュール をダウンロードし、実行します。
  2. Web Platform Installer 5.0 のウィンドウが起動するので、[インストール]をクリックします。
    2014-12-01 18-53-24
  3. [同意をする] をクリックします。
    2014-12-01 18-53-35
  4. インストールが完了したら[完了]をクリックします。
    2014-12-01 19-08-08
  5. [終了]ボタンをクリックします。
    2014-12-01 19-08-18
  6. スタートメニューから Microsoft Azure PowerShell を起動します。
    2014-12-01 23-02-18
  7. サブスクリプションに接続しますが、認証方法には Azure AD と証明書方式の2つがあります。今回は Azure AD を使います(※Azure AD の場合は、使用するアカウントは Microsoft アカウントではなく、組織アカウントでないといけません。Microsoft アカウントしかない場合は、「Azure PowerShell のインストールおよび構成方法」の記載にしたがって、アカウントを作成しておく必要があります)。
  8. 次のコマンドを実行すると、ログインウィンドウが表示されます。Azureにアクセスするための組織アカウントを入力します。
    $cred=Get-Credential
    2014-12-01 23-14-03
  9. 次に Add-AzureAccount -Credential $cred を実行します。
    2014-12-01 23-37-45
  10. 以上でサブスクリプションへの接続は終わりです。続いて、Service Bus 名前空間を作成するために次のコマンドを実行します。 New-AzureSBNamespace -Name '<任意の名前空間>' -Location 'Japan East'  -NamespaceType Messaging -CreateACSNamespace $true
    ※西日本の場合は Location を Japan West と指定します。サポートされる Location 名は、Get-AzureLocation を実行することで確認できます。
    ※NamespaceType は Messaging を指定します
    ※CreateACSNamespace を $true に指定し、ACS の名前空間を作成するように指定します
    2014-12-02 0-24-37
  11. 以上でService Bus の作成は完了です。Microsoft Azure 管理ポータルにアクセスします。
  12. Service Bus > 作成した名前空間名 > 接続情報 の順にアクセスします。
    2014-12-01 23-59-24
  13. ACS の接続文字列があることを確認します。
    2014-12-02 0-00-11

Visual Studio を使って SharePoint アプリ としてリモート イベントレシーバーやアプリレシーバーを作成している場合は、この ACS の接続文字列をコピーし、プロジェクトのプロパティのうち SharePoint ページの [Microsoft Azure サービス バスによるデバッグを有効にする] をオンにしたうえで、接続文字列を貼り付けます。

2014-12-02 0-03-08

以上でデバッグ実行すると、ローカルに起動する IIS Express 上でホストされるイベントレーシーバーと Office 365 (SharePoint Online) 上のサイトとがやり取りできるようになるため、デバッグ実行が可能になります。なお、SharePoint アプリの開発モデルは、オンプレミス環境での高信頼性アプリ開発の場合とは異なり 「プロバイダーホスト型」 にしておきます。

[参考]

Course-Banner-SharePointApps

コメント