Azure Web Appsお勉強メモ(8)App Service 内のコンテナーからネットワーク共有としての Azure Storageにアクセスする

はじめに

先日からAzure Web Appsをお勉強することをやっています。今回は、先日GAとなったApp Service 内のコンテナーからネットワーク共有としての Azure Storageにアクセスすることをやってみます。具体的には、Railsアプリのログ出力先をAzureファイル共有に指定して、ログが出力されることを確認します。

azure.microsoft.com

これまでの内容は以下を参照してください。

主に参考となる記事

以下のドキュメントを参考に進めていきます。

docs.microsoft.com

日本語版では2021年8月29日時点でまだ「プレビュー」という記載があるのですが、英語版ではAzure Portal上での設定方法もあるので、今回は英語版のもので進めていきます。

docs.microsoft.com

Azureファイル共有を作成する

Azure Portal上からAzureファイル共有を作成します。

docs.microsoft.com

今回はRailsのログを格納することを目的としていますので「railslogs」を作成します。

f:id:miyohide:20210829143710p:plain

その後、logsディレクトリを作成し、その下にファイルを出力するようにします。

マウントする

Azure Web Appsからマウント設定をします。パスのマッピングのところをクリックして「新しいAzure Storageマウント」をクリックします。

f:id:miyohide:20210829144216p:plain

必要な項目を入力します。

f:id:miyohide:20210829144117j:plain

マウントできているか確認します。Dockerイメージの中にSSHログインの機能を設定していたらdf -hコマンドを発行できます。SSHログインの機能については以前やりました。

miyohide.hatenablog.com

実際にdf -hを実行してみると、マウントされていることがわかります。

f:id:miyohide:20210829144736j:plain

Railsのログの出力先を設定する

Railsのログ出力先の変更は、config/environments/production.rbに対して以下の設定を追加することで実現します。

  config.paths['log'] = "/mylogs/logs/production.log"

以下を参考にしました。

stackoverflow.com

今回は、マウントポイントの下にlogsというディレクトリを作成して、その下にproduction.logを出力するようにします。

動作確認

Azure Web AppsにデプロイしたRailsアプリにアクセスして、ログがAzureファイル共有に出力されることを確認します。アプリにアクセスすると...pruduction.logが出力されていることが確認できました。

f:id:miyohide:20210829145852p:plain

ログも確認しましたが、見慣れたRailsのログでした。

(省略)
I, [2021-08-29T04:46:57.463024 #1]  INFO -- : [3621dd8c-e93b-4772-89f8-92626e664110] Started POST "/todos" for xxx.xxx.xxx.xxx at 2021-08-29 04:46:57 +0000
I, [2021-08-29T04:46:57.471267 #1]  INFO -- : [3621dd8c-e93b-4772-89f8-92626e664110] Processing by TodosController#create as HTML
I, [2021-08-29T04:46:57.480300 #1]  INFO -- : [3621dd8c-e93b-4772-89f8-92626e664110]   Parameters: {"authenticity_token"=>"[FILTERED]", "todo"=>{"title"=>"title1", "body"=>"body1"}, "commit"=>"Create Todo"}
I, [2021-08-29T04:46:57.718283 #1]  INFO -- : [3621dd8c-e93b-4772-89f8-92626e664110] Redirected to https://app-foobar.azurewebsites.net/todos/1
I, [2021-08-29T04:46:57.725135 #1]  INFO -- : [3621dd8c-e93b-4772-89f8-92626e664110] Completed 302 Found in 240ms (ActiveRecord: 229.1ms | Allocations: 1790)