接続文字列の構成

Windows Azure Platform

このトピックには現在リリースされている Windows Azure よりも新しい情報が含まれています

接続文字列は、Windows Azure ストレージ アカウントへのアクセスに必要なパラメーターを含む文字列です。接続文字列を構成する状況は、次の 3 とおりが考えられます。

  • サービスまたはアプリケーションをローカルでテストする際に、Azure ストレージ エミュレーターに接続する。
  • ストレージ サービスの既定のエンドポイントを使用して、Windows Azure ストレージ アカウントに接続する。
  • ストレージ サービスの明示的なエンドポイントを使用して、Windows Azure ストレージ アカウントに接続する。

サービス内で実行するコードから Windows Azure ストレージ サービスにアクセスする場合は、接続文字列を含む構成設定を 1 つ以上指定できます。Windows Azure API Referencesには、構成設定の値を読み取るためのメンバーが含まれています。構成設定内で接続文字列を指定すると、接続文字列が別のストレージ アカウントを指すように、あるいは別の資格情報を使用するように簡単に変更することができ、その際にサービスを再展開する必要がありません。

接続文字列を構成設定として保存すると便利ですが、必要に応じて別の方法を使用して接続文字列を追跡することもできます。Windows Azure で実行していないコードからストレージ サービスにアクセスする場合は、接続文字列を app.config ファイルを初めとする構成ファイルに保存することができます。

注意

Windows Azure Tools でも、接続文字列を含む構成設定を作成するユーザー インターフェイスが提供されており、Web ロールまたはワーカー ロールのプロパティ ページから利用できます。詳細については、「クラウド サービスの構築」を参照してください。

ストレージ エミュレーターに接続する

ストレージ エミュレーターは、既知の名前とキーを持つローカル アカウントです。アカウント名とキーはすべてのユーザーで同じなので、ショートカット文字列形式を使用することで、接続文字列内のストレージ エミュレーターを参照できます。接続文字列の値は、UseDevelopmentStorage=true に設定します。

また、サービスをストレージ エミュレーターでテストする際に使用する HTTP プロキシを指定することもできます。これは、ストレージ サービスに対する操作をデバッグする際に HTTP の要求と応答を観察する場合に便利です。プロキシを指定するには、DevelopmentStorageProxyUri オプションを接続文字列に追加し、値としてプロキシ URI を設定します。たとえば、次に示す接続文字列は、ストレージ エミュレーターを指しており、HTTP プロキシが設定されています。

UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://myProxyUri

Windows Azure ストレージ アカウントに接続する

Windows Azure ストレージ アカウントへの接続文字列は、次の 2 つの方法のいずれかを使用して定義できます。

  • ストレージ サービスの既定のエンドポイントを受け入れる方法。これは、接続文字列を作成する最も簡単なオプションです。この文字列形式では、アカウント名とアカウント キーを指定し、ストレージ アカウントに HTTP と HTTPS のどちらを介して接続するかを指定するだけで済みます。
  • ストレージ サービスのエンドポイントを明示的に指定する方法。このオプションでは、より複雑な接続文字列を作成できます。この文字列形式では、カスタム ドメイン名を含むストレージ サービス エンドポイントを指定したり、共有アクセス署名の資格情報を指定することができます。

既定のエンドポイントを持つ接続文字列を作成する

既定のストレージ サービス エンドポイントに依存する接続文字列を作成するには、以下に示す文字列形式を使用します。HTTP と HTTPS のどちらを介してストレージ アカウントに接続するかを指定し、myAccountName をストレージ アカウントの名前に、myAccountKey をアカウント アクセス キーに置き換えます。

DefaultEndpointsProtocol=[http|https];AccountName=myAccountName;AccountKey=myAccountKey

アカウント アクセス キーは、Windows Azure ポータルのストレージ アカウントの [Summary] ページで確認できます。

明示的なエンドポイントを持つ接続文字列を作成する

次のような場合は、サービスのエンドポイントを接続文字列で明示的に指定する必要があります。

  • BLOB サービスで使用するために、ストレージ アカウントのカスタム ドメイン名を登録している場合。
  • 共有アクセス署名を介して、単一のコンテナー内にある BLOB リソースへのアクセスだけを許可する場合。

カスタム ドメイン名を使用して BLOB エンドポイントを指定する

BLOB サービスで使用するカスタム ドメイン名を登録してある場合は、接続文字列で BLOB エンドポイントを明示的に設定する必要があります。接続文字列にリストされたエンドポイント値を使用することで、BLOB サービスへの要求 URI が作成され、コードに返される URI の形式も決定されます。

明示的なエンドポイントを指定する接続文字列を作成するには、次に示す文字列形式を使用して、プロトコル指定 (HTTP または HTTPS) を含む完全なサービス エンドポイントをサービスごとに指定します。

BlobEndpoint=myBlobEndpoint;QueueEndpoint=myQueueEndpoint;TableEndpoint=myTableEndpoint;[credentials]

サービスのエンドポイントを明示的に指定する場合、資格情報の指定方法には 2 つのオプションがあります。このセクションで示されているようにアカウント名とアカウント キーを指定するか、次のセクションで示されているように共有アクセス署名を指定することができます。アカウント名とアカウント キーを指定する場合、完全な文字列形式は次のようになります。

BlobEndpoint=myBlobEndpoint;QueueEndpoint=myQueueEndpoint;TableEndpoint=myTableEndpoint;AccountName=myAccountName;AccountKey=myAccountKey

接続文字列をカスタム BLOB エンドポイントで使用するために作成する場合、キュー エンドポイントとテーブル エンドポイントを指定するかどうかは任意です。キュー エンドポイントとテーブル エンドポイントを指定しない場合、その接続文字列を使用するコードからは、Queue および Table サービスにアクセスできません。エンドポイントは、1 つ以上指定する必要があります。

共有アクセス署名を持つ BLOB エンドポイントを指定する

明示的なエンドポイントを持つ接続文字列を作成すると、単一のコンテナー内にある BLOB リソースにサービスがアクセスするのを許可できます。この場合、アカウント名とアカウント キーの資格情報ではなく、コンテナーの共有アクセス署名を接続文字列に含めて指定できます。共有アクセス署名は、アクセス先のコンテナー、アクセス可能な期間、および付与されるアクセス許可に関する情報をカプセル化したもので、そのコンテナーに対する要求の認証に使用されます。共有アクセス署名の詳細については、「共有アクセス署名を作成する」を参照してください。

共有アクセス署名を含む接続文字列を作成するには、文字列を次の形式で指定します。

BlobEndpoint=myBlobEndpoint;SharedAccessSignature=base64Signature

BLOB エンドポイントには、既定の BLOB サービスのエンドポイント、またはカスタムのエンドポイントを指定できます。base64Signature は、共有アクセス署名の署名部分に対応します。署名は、有効な署名対象文字列およびキーを SHA256 アルゴリズムを使用して計算処理した後、その値を Base64 エンコードした HMAC 値です。

共有アクセス署名は、BLOB サービスのリソース (具体的には特定のコンテナーとそれに含まれる BLOB) に対してだけ有効です。Queue および Table サービスはアカウント名とアカウント キーを使用して認証する必要があるため、共有アクセス署名を組み込んだ接続文字列には Queue および Table サービスのエンドポイントを含めないでください。キューおよびテーブル リソース用の接続文字列は、別途作成することをお勧めします。

参照

概念

Windows Azure サービスの構成

ページのトップへ