Visual Studio からクラウドサービスを発行する際のエラーについて

2 minute read

この記事は 旧 Japan Azure PaaS Support Blog からのコピーとなります。
記載されている内容は 2016 年 10 月 5 日 時点のものとなり、現時点におきましては変更されている可能性がありますので、ご注意下さい。

こんにちは。CIE サポート 今村です。
今回は Visual Studio からクラウドサービスを発行する際に、よくお問い合わせを頂戴するエラーについて、解決方法をお伝えいたします。

このポストは、 Cloud services are not available in this subscription の記事を抄訳したものとなります。


Azure のサブスクリプションの権限を与えられたばかりで、Visual Studio 2015 からクラウドサービスをデプロイしようとした際、「このサブスクリプションでは、クラウドサービスを使用することはできません。」といったエラーを見たことはありませんか?(Figure 1)

このエラーを直してみましょう。

20161004_VSError_Figure1

Figure 1. このサブスクリプションでは、クラウドサービスを使用することはできません。

Azure Service Management (ASM) で管理されたリソースを取り扱うには、そのサブスクリプションの共同管理者である必要があります。

Azure ポータル を確認すると、このサブスクリプションに対して発行操作を行う権限があるか確認ができますが、その際に気を付けておきたいのが、「所有者」というロール(Figure 2)は Azure Resource Manager (ARM) で管理されたリソースでのみ有効であるという点です。仮にクラウドサービスを Azure ポータル で管理していたとしても、クラウドサービスは ASM で管理されるリソースですので、この「所有者」というロールの設定は適用されません。 Azure ポータル で設定可能なロールは RBAC と呼ばれ、この設定は ARM で管理されたリソースでのみ有効です。

こちらのリンクより、ASM と ARM のリソースの違いについてより詳細な情報をご確認いただけます:
https://azure.microsoft.com/ja-jp/documentation/articles/resource-manager-deployment-model/ 20161004_VSError_Figure2

Figure 2. 所有者の RBAC ロール

従って、クラウドサービスを発行するには、そのサブスクリプションの管理者に対し、 Azure クラシック ポータル から自身を共同管理者として追加してもらうよう、依頼する必要があります。

もしサブスクリプションの管理者として誰が登録されているか分からない場合は、 Azure ポータル にログインして以下の手順で確認をすることができます。

サブスクリプション > サブスクリプションを選択 > すべての設定(Figure 3)

20161004_VSError_Figure3

Figure 3. サブスクリプションの管理者を検索

ユーザー > サブスクリプション管理 > 割り当て先ユーザー/グループ をクリックします。こちらよりサブスクリプションの管理者の方の E-mail アドレスがご確認いただけます。

20161004_VSError_Figure4

Figure 4. サブスクリプションの管理者を検索

続いて、サブスクリプションの共同管理者として追加してもらうよう、以下の手順を添えてサブスクリプションの管理者にメールで依頼をしましょう。

Azure クラシック ポータル にログインし、設定 > 管理者タブ > 追加 をクリックします(Figure 5)。

20161004_VSError_Figure5

Figure 5. 共同管理者をサブスクリプションへ追加

共同管理者のメールアドレスを入力します(Figure 6)。

20161004_VSError_Figure6

Figure 6. 共同管理者のメールアドレス入力

共同管理者として追加された後は、Visual Studio 2015 の画面に戻りましょう。「<更新>」をクリックすることで、クラウドサービスが正常にデプロイできるようになります(Figure 7)。

20161004_VSError_Figure7

Figure 7. 公開サインインの更新

もし共同管理者として追加をしたくない場合、ユーザーは、Visual Studio 2015 から直接パッケージをアップロードすることはできません。しかしながら、 Azure ポータル から RBAC の共同作成者ロールを有効化していただくことで、そのユーザーはローカルでビルドしたパッケージを、 Azure ポータル 、もしくはコマンドを利用してアップロードすることが可能です。

共同作成者ロールの有効化: Azure ポータル へログイン > サブスクリプション > すべての設定 > ユーザー > 追加 > 「共同作成者」を選択 > ユーザーのメールアドレスを追加して OK をクリック

これで、追加されたユーザーは、 Azure ポータル を通してパッケージをアップロードすることができるようになります。

コマンドラインを利用する場合、以下の記事より「4: PowerShell スクリプトを使用してパッケージを発行する」をご参照ください:

https://azure.microsoft.com/ja-jp/documentation/articles/cloud-services-dotnet-continuous-delivery/

本情報の内容 (添付文書、リンク先などを含む) は、作成日時点でのものであり、予告なく変更される場合があります。