Azure SDK for Goのセットアップ（macOS編）

サイト「[Go 開発者向けの Azure | Microsoft Docs](https://docs.microsoft.com/ja-jp/azure/developer/go/)」の「クイックスタート」を始めるにあたり、コマンドラインツールで実行しようとすると、

- Azure CLI（macOSの場合：要 Homebrew）
- Azure SDK for Go

のインストールが必要となります。本記事では、次のサイト記事を参考にして、これらのセットアップ手順を自分メモとしてまとめました。

- [Azure SDK for Go を使用する開発者向けのツール | Microsoft Docs](https://docs.microsoft.com/ja-jp/azure/developer/go/azure-sdk-tools)
- [Azure SDK for Go のインストール | Microsoft Docs](https://docs.microsoft.com/ja-jp/azure/developer/go/azure-sdk-install)

## 事前準備

Azureアカウントは取得済です。取得手順は次の記事にして投稿しています。

- [Azureアカウントを作成する - Qiita](https://qiita.com/qt-luigi/items/53341070a7fd4de802f9)

Goはインストール済です。Azure SDK for GoではGo 1.8（Azure Stack プロファイルだと1.9）以降が必要です。

- [Downloads - The Go Programming Language](https://golang.org/dl/)

Goのバージョンを確認。

```zsh
% go version
go version go1.15.6 darwin/amd64
```

### サイト「Azure SDK for Go を使用する開発者向けのツール」の補足

コマンドラインツールではありませんが、コードエディター「Visual Studio Code」はインストール済です。

- [Visual Studio Code - Code Editing. Redefined](https://code.visualstudio.com/)

[Azure DevOps](https://azure.microsoft.com/ja-jp/services/devops/) プロジェクトについては、別記事で投稿します。

依存関係管理ツール「[dep](https://github.com/golang/dep)」は、プロジェクトが終了しているので使いません。現在、Azure SDK for Go自体も脱dep化に取り組んでいる最中です。

## Azure CLI

Azure CLIのインストール手順は、次のサイトに用意されています。

- [Install the Azure CLI | Microsoft Docs](https://docs.microsoft.com/ja-jp/cli/azure/install-azure-cli)

私の開発環境はmacOSのため、サイト内の「Install on macOS」リンクをクリックして詳細を確認しました。

- [Install the Azure CLI for macOS | Microsoft Docs](https://docs.microsoft.com/ja-jp/cli/azure/install-azure-cli-macos)

### Homebrewのインストール

macOSでは、パッケージマネージャー「Homebrew（brewコマンド）」を使ってAzure CLIをインストールします。

- Homebrew公式サイト：[macOS（またはLinux）用パッケージマネージャー — Homebrew](https://brew.sh/index_ja)

Homebrew公式サイトに記載されているインストールコマンドをコピーし、ターミナルにペーストしてインストールを開始します。

```zsh
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```

インストールには管理者権限が必要のため、macOSにログインしたユーザーのパスワードの入力が促されます。ログインユーザーのパスワードを入力して[Enter]キーを押下します。

```zsh
Password:
```

インストールを続けるか中止するか問われます。[RETURN]または[Enter]キーを押下すると続行、それ以外のキーを押下すると中断されます。[Enter]キーを押下します。

```zsh
Press RETURN to continue or any other key to abort
```

インストールが完了したら、コマンドを使用できるかバージョン表示して確認します。

```zsh
% brew -v 
Homebrew 2.7.2
Homebrew/homebrew-core (git revision b692fd85; last commit 2021-01-11)
```

アンインストールする場合は、公式サイトのFAQドキュメントの該当項目をご確認ください。

- [FAQ — Homebrew Documentation - How do I uninstall Homebrew?](https://docs.brew.sh/FAQ#how-do-i-uninstall-homebrew)

### Azure CLIのインストール

brewを使ってAzure CLI（azコマンド）をインストールします。

サイトに記載されているインストールコマンドをコピーし、ターミナルにペーストしてインストールを開始します。

```zsh
% brew update && brew install azure-cli
```

インストールが完了したら、コマンドを使用できるかバージョン表示して確認します。

```zsh
% az version
{
  "azure-cli": "2.17.1",
  "azure-cli-core": "2.17.1",
  "azure-cli-telemetry": "1.0.6",
  "extensions": {}
}
```

アンインストールする場合は、brewコマンドのuninstall指定で行います。

```zsh
% brew uninstall azure-cli
```

### コマンドの最新化

#### Homebrew（brewコマンド）

本体を最新化するには、updateを指定します。

```zsh
% brew update
```

brewでインストールしたモジュール群を最新化するには、upgradeを指定します。

```zsh
% brew upgrade
```

#### Azure CLI（azコマンド）

本体を最新化するには、upgradeを指定します。

```zsh
% az upgrade
```

#### 両方

brew本体と、az本体および関連するモジュールをまとめて最新化するには、次のコマンドを実行します。

```zsh
$ brew update && brew upgrade azure-cli
```

## Azure SDK for Go

サイトに記載されているインストールコマンドをコピーし、ターミナルにペーストしてインストールまたは最新化を行います。

```zsh
% go get -u -d github.com/Azure/azure-sdk-for-go/...
```

この時、Azure/go-autorestもインストール＆最新化されます。