ITの中で自動化は今やどこにでも存在しています。仮想マシンのプロビジョニングからウェブサイトの展開まで、特に複数のアイテムを扱う必要がある場合には、自動化が重要です。Azureストレージとローカルマシンの間のファイル管理さえ、AzCopyというユーティリティプログラムを使用して自動化することができます。
- AzCopyは、Azureストレージの管理を可能にするスタンドアロンユーティリティです。AzCopyを使用すると、いくつかの操作を実行できます。この記事では、以下に焦点を当てます:ストレージコンテナの作成
- ローカルファイルのコンテナへのコピー
- コンテナ間のファイルのコピー
さあ、始めましょう!
動画で学習するのが得意な方は、この記事で学ぶ内容に密接に関連したTechSnipsの動画もチェックしてみてください。
前提条件
この記事では、さまざまなタスクをデモンストレーションするウォークスルーを行います。一緒に進める場合は、以下の要件を満たしてから開始してください。
- Azureのサブスクリプション。これがまだない場合は、トライアルサブスクリプションのリクエストを行ってください。
- Azureストレージアカウント。詳細は、ストレージアカウントの作成を参照してください。
- AzCopyをダウンロードして認証しました(記事AZCopyツールのダウンロードとインストール方法をチェックして、設定方法を学んでください)
新しいストレージコンテナの作成
まずは、AzCopyを使用して既存のストレージアカウントに新しいストレージコンテナを作成しましょう。この例では、container1とcontainer2という2つの新しいコンテナを作成します。
注意:新しいコンテナを作成する前に、コンテナのエンドポイントURLを知っておく必要があります。エンドポイントURLは次の形式に従います:https://[storageaccountname].blob.core.windows.net/[container_name]。
まず、エンドポイントURLを定義します。この例では、storageaccount1207という名前のストレージアカウントに2つのエンドポイントURLが作成されます:
- https://storageaccount1207.blob.core.windows.net/container1
- https://storageaccount1207.blob.core.windows.net/container2
エンドポイントURLを知ったので、azcopy make
コマンドを使用して、以下に示すように各エンドポイントURLをパラメータとして渡します。

Azureコンテナへのファイルのコピー/コピー
ストレージコンテナが作成されたら、「Azure Blob Storageにアップロードするにはどうすればよいですか?」と思うかもしれません。 AzCopyを使用して、azcopy copy
コマンドを使用して実行できます。 AzCopyを使用して、PST、VHDなどをコピーできます。
OAuth認証の使用
AzCopyを使用してファイルをBlobにコピーする場合、認証にはいくつかのオプションがあります。Azure Storageにすでに認証済みであると想定されているため(前提条件に含まれているため)、以下に示すように、単純にazcopy copy
を実行し、ローカルファイルパスの後にコンテナエンドポイントURLを指定することができます。
他のパラメータを指定しない場合、OAuth認証が使用されます。

ファイルがAzure Blobコンテナにコピーされたことを確認するにはどうすればよいですか?azcopy list [コンテナURL]
コマンドを使用できます。以下の例を参照してください。この例では、file1.txt
ファイルが存在することが示されています。

Azure Blobからファイルをローカルディレクトリにダウンロードするには、ソースと宛先の引数を切り替えるだけです。以下の例を参照してください。

共有アクセス署名(SAS)トークンの使用
SASトークンを使用するには、まずトークンを生成する必要があります。SASトークンの生成方法がわからない場合は、ストレージアカウントにアクセスするためのAzure SASトークンの生成方法を参照してください。
トークンが利用可能になったら、以下に示すように、そのトークンを宛先コンテナのURLにHTTPパラメータとして追加することができます。
PowerShellを使用してトークンを変数に格納した場合(例:$token
)、以下のコマンドのように、その変数を完全なトークン文字列の代わりに渡すことができます。

同じトークンを使用する場合(有効期間内であると仮定します)、Azure ストレージからローカル ストレージにファイルをダウンロードすることもできます。以下の例では、file1.txt
ファイルを SAS トークンで Azure ストレージからコピーしています。
以下のコードでは、トークンをコンテナー名の後に追加するのではなく、ファイル名を最初に追加していることがわかります。これにより、AzCopy に特定のファイルを SAS 認証を使用してコピーするよう指示されます。

Azure ストレージへのディレクトリのコピー/ダウンロード
Azure から転送またはダウンロードするファイルが多い場合、azcopy copy
を使用して一度に複数のディレクトリ全体をコピーすることもできます。そうするためのコマンドは、単一のファイルをコピーするために使用するものとそれほど変わりません。
以下に、C:\\MyDir
をブロブ コンテナー container1 に再帰的にコピーするコマンドが示されています。ここで鍵となるのは --recursive
パラメーターです。コマンドの末尾にある —recursive
フラグは、親ディレクトリおよび存在するかもしれないサブディレクトリのすべての内容がコピーされることを示しています。
C:\MyDir フォルダー内のファイル 10 個が、ジョブ サマリーに基づいてすべて正常にコピーされました。

Azure ストレージ コンテナー間のファイルのコピー
この記事では、かなりazcopy copy
コマンドを使用してきました。今更やめる必要はありません!オンプレミスからディレクトリやファイルをコピーするだけでなく、ストレージコンテナ間でブロブをコピーすることもできます。
ローカルファイルパスを使用する代わりに、パラメーターを変更して、1つのブロブコンテナURLをソースとして、別のブロブコンテナURLを宛先として使用します。
すでにcontainer1とcontainer2という2つのストレージコンテナを作成しています。このセクションでは、container1からcontainer2にファイル、ディレクトリ、さらにはブロブコンテナ全体をコピーしましょう。
別のコンテナにファイルをコピーするには、まず新しいSASトークンを生成します。2つのコンテナが同じストレージアカウントに属しているので、同じトークンをソースと宛先の両方に使用できます。
(PowerShellでazcopyを実行している場合は)トークン文字列を$token
という変数に保存していると仮定すると、以下に示すように、1つのストレージコンテナからもう1つにすべてのデータを簡単にコピーできます。
注意:Azure SASトークンを生成する方法がわからない場合は、Azure SASトークンを生成してストレージアカウントにアクセスする方法記事を参照してください。

AzCopyの他の便利な操作
ファイルとフォルダのコピー以外に、AzCopyで実行できる他のコピー操作があります。その中には次のようなものがあります:
- 特定のファイルのコピー(フィルタリング)
- ブロブコンテナ内の別のディレクトリにディレクトリをコピーする
- Amazon AWSからAzure Storageへのコピー
AzCopyができることについて学びたい場合は、azcopy -h
を実行してヘルプコンテンツを確認してください。この記事で焦点を当てたcopy
コマンド以外にも、多くの他の便利なコマンドが見つかります。これらのコマンドのスクリーンショットを以下に示します。

詳細については、AzCopy Copyページをご覧ください。その後、この記事で学んだ手法を使用して、これらを自分で試すことができます。
概要
この記事では、AzCopyを使用してローカルとAzureストレージ間でファイルを転送する方法を学びました。また、認証にOAuthとShared Access Signature Tokenを使用しながらこれらのタスクを実行する方法も学びました。利用可能な他のAzCopyコマンドとその見つけ方も確認しました。
I hope this article has helped you get started with AzCopy and sparked your interest in using it more as part of your administration or development tasks. Thank you!