【図解】Linux版 Azure CLIの使い方【インストール〜BLOB操作】

★悩み★
・Linux版 Azure CLIのインストールと設定手順を知りたいな。
・Linux版 Azure CLIの使い方を知りたいな。
・Azure CLIでファイルのアップロード/ダウンロード/削除/はできるのかな。


こういった「悩み」に答えます。
 

★本記事の内容★
① Linux版 Azure CLIを使うまでの手順(インストールと設定)をご紹介
② Linux版 Azure CLIの使い方(ファイル操作)をご紹介


これからご紹介する「Linux版 Azure CLIの使い方」を実践したことで、30分以内でAzure CLIを使いAzure Blob Storageにデータ転送できました。

記事の前半では「Linux版 Azure CLIを使うまでの手順(インストールと設定)」を解説しつつ、記事の後半では「AzureBlobStorageにおけるLinux版 Azure CLIの使い方」を紹介します。

この記事を読み終えることで、「Azure CLI経由でAzure Blob Storageにデータ転送できる」状態になります。

ちなみにazcopyを利用すると、より簡単にAzure Blob Storageにデータ転送ができます。気になる方は、以下の記事をご覧ください。
 

Linux版 Azure CLIを使うまでの手順【インストールと設定】

Linux版 azcopyを使うまでの手順【インストールと設定】


「Linux版 Azure CLIを使うまでの手順(インストールと設定)」に関してご説明します。
 

★Linux版 Azure CLIを使うまでの流れ★
手順1:Azure CLIのインストール
手順2:Azure CLIでAzureにログイン
手順3:Azure CLIでAzureのサービスプリンシパルを作成
手順4:サービスプリンシパルを用いてAzure CLIでAzureにログイン
手順5:Azure Blob Storageでコンテナーの作成
手順6:Azure Blob Storageの設定


上記の流れで、Linux版 Azure CLIを使える状態にできます。

上記の各手順は、以下の環境で動作確認済みです。
動作確認済み環境:CentOS Linux release 7.8.2003 (Core)


以降で、上記「Linux版 Azure CLIを使うまでの流れ」の各手順に関してご説明します。

手順1:Azure CLIのインストール

「手順1:Azure CLIのインストール」に関してご説明します。

Azure CLIをインストールするために、以下のコマンドを順に実行します。

# rpm --import https://packages.microsoft.com/keys/microsoft.asc
# cat <<EOL >> /etc/yum.repos.d/azure-cli.repo
[azure-cli]
name=Azure CLI
baseurl=https://packages.microsoft.com/yumrepos/azure-cli
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc
EOL
# yum install azure-cli -y


上記コマンド実行後、Azure CLIがインストールされたかを確認するために以下のコマンドを実行します。

# az version
{
  "azure-cli": "2.20.0",
  "azure-cli-core": "2.20.0",
  "azure-cli-telemetry": "1.0.6",
  "extensions": {}
}

 

上記のように「Azure CLIのバージョンが表示された」場合、「問題なく、Azure CLIがインストールされた」と判断できます。


以上で、「手順1:Azure CLIのインストール」は完了です。

手順2:Azure CLIでAzureにログイン

「手順2:Azure CLIでAzureにログイン」に関してご説明します。

Azure CLI経由でAzureにログインするために、以下のコマンドを実行します。

# az login
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code SUUFN5WSS to authenticate.


ウェブブラウザを起動し、以下のURLにアクセスしましょう。
Azure CLIのログイン画面

az login実行後に表示された「SUUFN5WSS」をコード入力画面のテキストボックス(下図の赤枠)に入力し、「次へ」をクリックします。
 

Azure CLIでAzureにログインする手順


クリック後、「アカウントを選択する」画面において、適切なアカウントを選択します。
 

Azure CLIでAzureにログインする手順


クリック後、以下の画面が表示されます。

Azure CLIでAzureにログインする手順


その後、「az loginを実行した画面」では、以下が出力されます。

[
  {
    "cloudName": "AzureCloud",
    "homeTenantId": "XXXX",
    "id": "YYYY",
    "isDefault": true,
    "managedByTenants": [],
    "name": "従量課金",
    "state": "Enabled",
    "tenantId": "ZZZZ",
    "user": {
      "name": "AAABBBCCC@gmail.com",
      "type": "user"
    }
  }
]

 

「az loginを実行した画面」で上記が表示された場合、「問題なく、Azure CLIでAzureにログインできた」と判断できます。


以上で、「手順2:Azure CLIでAzureにログイン」は完了です。

手順3:Azure CLIでAzureのサービスプリンシパルを作成

「手順3:Azure CLIでAzureのサービスプリンシパルを作成」に関してご説明します。
 

サービスプリンシパルを作成することで、ウェブブラウザ起動なしでAzure CLIでAzureにログインできるようになります。

 

★サービスプリンシパルとは★
アプリケーションがAzure上のリソースにアクセスするために必要なIDです。
参照:サービスプリンシパルとは


Azureのサービスプリンシパルを作成するために、以下のコマンドを実行します。

# az ad sp create-for-rbac -n "http://my-app" --role contributor

 

上記コマンドで、「my-app」というサービスプリンシパルを作成できます。


コマンド実行後、以下の実行結果が表示されます。

Creating 'contributor' role assignment under scope '/subscriptions/1c548f22-c64a-48ee-b950-21146a388402'
The output includes credentials that you must protect. Be sure that you do not include these credentials in your code or check the credentials into your source control. For more information, see https://aka.ms/azadsp-cli
{
  "appId": "YYYYYY",
  "displayName": "my-app",
  "name": "http://my-app",
  "password": "XXXXX",
  "tenant": "tenantid"
}

 

「az ad sp create-for-rbacを実行した画面」で上記が表示された場合、「問題なく、サービスプリンシパルが作成できた」と判断できます。


以上で、「手順3:Azure CLIでAzureのサービスプリンシパルを作成」は完了です。

手順4:サービスプリンシパルを用いてAzure CLIでAzureにログイン

「手順4:サービスプリンシパルを用いてAzure CLIでAzureにログイン」に関してご説明します。
 

Azure CLIを用いてAzureBlobStorageなどを操作する場合、サービスプリンシパルを用いてAzure CLIでAzureにログインする必要があります。


以下のコマンドを実施し、Azure CLIでサービスプリンシパルを用いてAzureにログインしましょう。

# az login --service-principal -u "http://my-app" -p "XXXXX" --tenant "tenantid"
[
  {
    "cloudName": "AzureCloud",
    "homeTenantId": "tenantid",
    "id": "DDDD",
    "isDefault": true,
    "managedByTenants": [],
    "name": "従量課金",
    "state": "Enabled",
    "tenantId": "tenantid",
    "user": {
      "name": "http://my-app",
      "type": "servicePrincipal"
    }
  }
]

 

「az loginを実行した画面」で上記が表示された場合、「問題なく、サービスプリンシパルでAzureにログインできた」と判断できます。


以上で、「手順4:サービスプリンシパルを用いてAzure CLIでAzureにログイン」は完了です。

手順5:Azure Blob Storageでコンテナーの作成

「手順5:Azure Blob Storageでコンテナーの作成」に関してご説明します。
 

Azure CLIでBLOB操作(例:ファイルのコピー)をするために、Azure Blob Storage上にコンテナーを作成しましょう。


Azure Blob Storageでコンテナーを作成する手順に関しては、以下の記事をご覧ください。
 


以上で、「手順5:Azure Blob Storageでコンテナーの作成」は完了です。

手順6:Azure Blob Storageの設定【BLOB操作に必要】

「手順6:Azure Blob Storageの設定」に関してご説明します。
 

手順3で作成したサービスプリンシパルを用いて、Azure Blob Storageを操作できるようにします。


ウェブブラウザを起動し、Azureポータルにアクセスしましょう。
Azureポータル

ストレージアカウント → 手順4で作成したストレージアカウント → 追加を押します。
その後、下図の赤枠部分で以下の情報を選択し、「保存」をクリックします。
・役割:ストレージBLOGデータ共同作成者
・アクセスの割り当て先:ユーザ、グループ、またはサービスプリンシパル
・選択:手順3で作成したmy-app
 

Azure CLIでBLOB操作をするために、サービスプリンシパルを設定


クリック後、「my-app」(下図の赤枠)が追加されていることを確認しましょう。
 

Azure CLIでBLOB操作をするために、サービスプリンシパルを設定


以上で、「手順6:Azure Blob Storageの設定」は完了です。
 

上記の流れで、Linux版 Azure CLIが使える状態になりました。

 

Linux版 Azure CLIの使い方【BLOB操作の手順】


「Linux版 Azure CLIの使い方」に関してご説明します。

★Linux版 Azure CLI代表的な使い方★
使い方1:Linux版 Azure CLIでAzure Blob Storageにデータをコピー
使い方2:Linux版 Azure CLIでAzure Blob Storageのデータをダウンロード
使い方3:Linux版 Azure CLIでAzure Blob Storageのデータを削除


上記の代表的なLinux版 Azure CLIの使い方をご説明します。

上記の各手順は、以下の環境で動作確認済みです。
動作確認済み環境:CentOS Linux release 7.8.2003 (Core)


以降で、上記「Linux版 Azure CLIの代表的な使い方」の各使い方に関してご説明します。

使い方1:Linux版 Azure CLIでAzure Blob Storageにデータをコピー

「使い方1:Linux版 Azure CLIでAzure Blob Storageにデータをコピー」に関してご説明します。

以下のコマンドを順に実行することで、Azure CLI経由でAzure Blob Storageにデータをコピーできます。

# touch /tmp/hello.txt
# az storage blob upload -f /tmp/hello.txt -c test -n hello.txt --account-name herotest20210323


下図のように「Azure Blob Storageのコンテナーにコピーしたファイルがあること」を確認しましょう。
 

Azure CLI経由でAzureBlobStorageにデータをコピー

 

★Azure CLIでAzureBlobStorageへアップロードする際の書式について★
az storage blob upload -f <アップロードしたいファイルのPATH> -c <コンテナ名> -n <コンテナ格納時の名称> –account-name <ストレージアカウント名>
詳細:az storage blob uploadの書式


以上で、「使い方1:Linux版 Azure CLIでAzure Blob Storageにデータをコピー」は完了です。

使い方2:Linux版 Azure CLIでAzure Blob Storageのデータをダウンロード

「使い方2:Linux版 Azure CLIでAzure Blob Storageのデータをダウンロード」に関してご説明します。

以下のコマンドを順に実行することで、Azure CLI経由でAzure Blob Storageからデータをダウンロードできます。

# az storage blob download \
    --account-name herotest20210323 \
    --container-name test \
    --name hello.txt \
    --file /tmp/dl_hello.txt
# ls /tmp/dl_hello.txt
/tmp/dl_hello.txt

 

★Azure CLIでAzureBlobStorageからダウンロードする際の書式について★
az storage blob download –account-name <ストレージアカウント名> –container-name <コンテナ名> –name <コンテナ内にあるファイル名> –file <ダウンロード先のPATH>
詳細:az storage blob downloadの書式


以上で、「使い方2:Linux版 Azure CLIでAzure Blob Storageのデータをダウンロード」は完了です。

使い方3:Linux版 Azure CLIでAzure Blob Storageのデータを削除

「使い方3:Linux版 Azure CLIでAzure Blob Storageのデータを削除」に関してご説明します。

以下のコマンドを順に実行することで、Azure CLIでAzure Blob Storageのデータを削除できます。

# az storage blob list --account-name herotest20210323 -c test
[
  {
    "content": null,
    "deleted": false,
    "metadata": {},
    "name": "hello.txt",
    "properties": {
      "Content-CRC64": null,
      "appendBlobCommittedBlockCount": null,
      "blobTier": "Hot",
      "blobTierChangeTime": null,
      "blobTierInferred": true,
      "blobType": "BlockBlob",
      "contentLength": 0,
      "contentRange": null,
      "contentSettings": {
        "cacheControl": null,
        "contentDisposition": null,
        "contentEncoding": null,
        "contentLanguage": null,
        "contentMd5": "1B2M2Y8AsgTpgAmY7PhCfg==",
        "contentType": "text/plain"
      },
      "copy": {
        "completionTime": null,
        "id": null,
        "progress": null,
        "source": null,
        "status": null,
        "statusDescription": null
      },
      "creationTime": "2021-03-28T00:39:29+00:00",
      "deletedTime": null,
      "encryptionKeySha256": null,
      "etag": "0x8D8F181F249F306",
      "lastModified": "2021-03-28T00:39:29+00:00",
      "lease": {
        "duration": null,
        "state": "available",
        "status": "unlocked"
      },
      "pageBlobSequenceNumber": null,
      "remainingRetentionDays": null,
      "serverEncrypted": true
    },
    "snapshot": null
  }
]
# az storage blob delete --account-name herotest20210323 -c test -n hello.txt
# az storage blob list --account-name herotest20210323 -c test
[]

 

★Azure CLIでAzureBlobStorage上のデータを削除する際の書式について★
az storage blob delete –account-name <ストレージアカウント名> -c <コンテナ名> -n <削除したいファイル名>
詳細:az storage blob deleteの書式


以上で、「使い方3:Linux版 Azure CLIでAzure Blob Storageのデータを削除」は完了です。
 

以上が、Linux版 Azure CLIの代表的な使い方となります。

 

【まとめ】Azure CLI(linux)の使い方【インストール〜BLOB操作】

今回の記事を通して、「Linux版 Azure CLIの使い方(インストールからBLOB操作まで)」をご紹介することで、以下の悩みを解消しました。

★悩み★
・Linux版 Azure CLIのインストールと設定手順を知りたいな。
・Linux版 Azure CLIの使い方を知りたいな。
・Azure CLIでファイルのアップロード/ダウンロード/削除/はできるのかな。


Linux版 Azure CLIを使いたんだけど、使い方が分からない」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。

コメント

タイトルとURLをコピーしました