はじめに
先日からAzure Web Appsをお勉強することをやっています。今回は、先日GAとなったApp Service 内のコンテナーからネットワーク共有としての Azure Storageにアクセスすることをやってみます。具体的には、Railsアプリのログ出力先をAzureファイル共有に指定して、ログが出力されることを確認します。
これまでの内容は以下を参照してください。
- Azure Web Appsお勉強メモ(1)Azure Web AppsにてRailsアプリを動かす(2021年6月版) - miyohide's blog
- Azure Web Appsお勉強メモ(2)Azure Web AppsにてデプロイするDockerイメージをGitHub Actionsで作成してAzure Container Registryにpushする - miyohide's blog
- Azure Web Appsお勉強メモ(3)Azure Web AppsにてデプロイするDockerイメージをGitHub Actionsで作成してAzure Container Registryにpushする(2) - miyohide's blog
- Azure Web Appsお勉強メモ(4)Azure Web AppsにてデプロイするDockerイメージをAzure DevOpsで生成してAzure Container Registryに登録する - miyohide's blog
- Azure Web Appsお勉強メモ(5)Azure Web AppsにてデプロイしたDockerイメージにSSH接続する - miyohide's blog
- Azure Web Appsお勉強メモ(6)Azure Container RegistryにpushしたらAzure Web Appsにデプロイする - miyohide's blog
- Azure Web Appsお勉強メモ(7)データベース接続情報などをAzure Key Vaultから取得する - miyohide's blog
主に参考となる記事
以下のドキュメントを参考に進めていきます。
日本語版では2021年8月29日時点でまだ「プレビュー」という記載があるのですが、英語版ではAzure Portal上での設定方法もあるので、今回は英語版のもので進めていきます。
Azureファイル共有を作成する
Azure Portal上からAzureファイル共有を作成します。
今回はRailsのログを格納することを目的としていますので「railslogs」を作成します。
その後、logs
ディレクトリを作成し、その下にファイルを出力するようにします。
マウントする
Azure Web Appsからマウント設定をします。パスのマッピングのところをクリックして「新しいAzure Storageマウント」をクリックします。
必要な項目を入力します。
マウントできているか確認します。Dockerイメージの中にSSHログインの機能を設定していたらdf -h
コマンドを発行できます。SSHログインの機能については以前やりました。
実際にdf -h
を実行してみると、マウントされていることがわかります。
Railsのログの出力先を設定する
Railsのログ出力先の変更は、config/environments/production.rb
に対して以下の設定を追加することで実現します。
config.paths['log'] = "/mylogs/logs/production.log"
以下を参考にしました。
今回は、マウントポイントの下にlogs
というディレクトリを作成して、その下にproduction.log
を出力するようにします。
動作確認
Azure Web AppsにデプロイしたRailsアプリにアクセスして、ログがAzureファイル共有に出力されることを確認します。アプリにアクセスすると...pruduction.log
が出力されていることが確認できました。
ログも確認しましたが、見慣れた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)