Slide 1

Slide 1 text

Azure App Serviceと GitHubを連携してみた 株式会社セゾンテクノロジー 佐藤泰志

Slide 2

Slide 2 text

自己紹介 ▪ 名前 佐藤泰志(さとうやすし) ▪ 出身地 山形県 ▪ 職歴 運用保守(約7年)、システム開発(約2年)、 要件定義、設計(約4年) 2022年 セゾンテクノロジー中途入社 DX推進PJ参画 2023年 システム開発、 DX推進PJ支援、Azure運用業参画 2024年 航空システムテスト、システム開発、AWS運用業務参画

Slide 3

Slide 3 text

はじめに 以下の流れで実施した内容をまとめています。 ●プロジェクトのセットアップ ●コーディング(Java) ●GitHubへのプッシュ ●Azure Portalでの動作確認 特に苦労した点や成功した点を振り返りながら、 同様の課題に取り組む方々へ参考になればと思います。

Slide 4

Slide 4 text

取り組み当初 の状態 ●コマンドプロンプトでのGit操作が不明 コマンドプロンプトでのgitの使い方が分からず、 実行方法の調査や、コマンドの動作確認に時間がかかりました。 ●そもそもAzureとGitHubの連携方法が不明 AzureとGitHubをどのように連携するのか分からず、 設定方法の調査と調査後の動作確認を行うまで手間取りました。

Slide 5

Slide 5 text

Azure App Service とは? ●Microsoftが提供する「クラウドで簡単にWebアプリを作成、ホスト、管理で きるPaaSサービス」です。 ●特徴として以下があります。 ・簡単なデプロイ: Webアプリを数クリックで公開できる。 ・自動スケーリング: 使用状況に応じてサーバーを自動で増減する。 ・多言語対応: PHP、Python、Node.js、Javaなど、 複数の言語に対応。 ・セキュリティ機能: Azureのセキュリティを利用して、安全にアプリを運用。 ●イメージ アプリをすぐに展開できるプラットフォームのようなもので、 面倒なダウンロードや管理なしでサポートしてくれるイメージです。

Slide 6

Slide 6 text

GitHub とは? ● GitHubは「コードを管理し、誰でも協力して開発できるためのオンラインプ ラットフォーム」です。 ●特徴として以下があります。 ・バージョン管理: コードの変更履歴を自動で記録。 ・共同作業: 複数の開発者が同時に作業し、コードをまとめられる。 ・オープンソース: 誰でも参加できるプロジェクトが多数。 ・プルリクエスト: 特定の変更を提案し、他の開発者との 協力を可能にする機能。 ●イメージ 「協力してコードを作る工房」のようなもので、世界中の開発者が アイディアを共有し、一緒に進化していくことが出来るイメージです。

Slide 7

Slide 7 text

連携用ファイル の準備 以下を実施しています。 ●プロジェクトフォルダの作成( my-java-appの作成 ) ●index.jsp / web.xmlの作成( Hello, Azure App Service! を表示) ●mvnコマンドでプロジェクトの作成 ●mvnコマンドアプリケーションのビルド( my-java-app.warの作成) ●コマンドプロンプトでGitHubへのコミットとプッシュ

Slide 8

Slide 8 text

連携用ファイル の配置 ● Azureと連携するファイルとして、GitHubへ上記プッシュしています。

Slide 9

Slide 9 text

App Service 作成 ● Azureポータルへ接続 ● Marketplaceで「Webアプリ」をクリック Marketplaceで「Webアプリ」 「App Service」で検索すると 表示されます

Slide 10

Slide 10 text

App Service 作成 画面キャプチャを貼る ●各項目を記載し、 「確認および作成」をクリック する

Slide 11

Slide 11 text

App Service 作成 ● 「作成」をクリックする ●デプロイ完了後、「リソースに 移動」をクリックする

Slide 12

Slide 12 text

App Service 作成 ● 「既定のドメイン」をクリックする

Slide 13

Slide 13 text

App Service 作成 ● App Serviceが起動していることを確認

Slide 14

Slide 14 text

● 「デプロイセンター」をクリックする ●ソースのプルダウンメニューから「GitHub」をクリックする デプロイ設定 デプロイセンターを開く事が 分かるまでに2日程かかりました

Slide 15

Slide 15 text

●各項目を設定する デプロイ設定 この設定で落ち着くまでに 3時間程調査しました

Slide 16

Slide 16 text

デプロイ設定 ● 「アプリに対して SCM 基本認証が無効になっています。」の メッセージをクリックする ● 「SCM基本認証の発行資格」をオンにする この設定で落ち着くまでに さらに1時間程かかりました

Slide 17

Slide 17 text

●SCM基本認証 Azure App Serviceへ、GitHubやFTPを通じて、 アプリケーションへアクセスする際の認証方法です。 ●ユーザー割り当てID Azure上のリソースにおいて、特定のユーザーに 対してアクセス権を設定するための機能のことです。 デプロイ設定

Slide 18

Slide 18 text

デプロイ設定 ● 「保存」をクリックする ●デプロイセンター画面で「概要」をクリックする 一度保存を忘れてしまい やり直ししました

Slide 19

Slide 19 text

App Service 動作確認 ● App Service画面で、「既定のドメイン」をクリックする ●画面が表示されたことを確認

Slide 20

Slide 20 text

まとめ Azure App ServiceとGitHubを連携する過程で、 さまざまな課題に直面しましたが、自分なりにクリアすることで、 得られた経験は大きな財産となりました。 今回実施した経験を基に、次回はさらに効率よく進められるようにしたいと 考えており、今後も挑戦していきます。

Slide 21

Slide 21 text

Appendex

Slide 22

Slide 22 text

プロジェクト ディレクトリの 構成 ●今回は以下のフォルダ構成としました。 my-java-app/ ├── WEB-INF/ │ └── web.xml └── index.jsp

Slide 23

Slide 23 text

index.jsp の中身 ●今回作成したindex.jspの中身です。 ●タイトル、ブラウザに文字列が表示されるだけの単純なWeb アプリケーションになりますが、気合入れて作りました。 <%@ page contentType="text/html; charset=UTF-8" language="java" %> My Java Web App

Hello, Azure App Service!

Hello World Azure App Service

ここがブラウザで 表示されます

Slide 24

Slide 24 text

web.xml の内容 ● web.xmlの中身です。 ●ソースコードをどのように動作させるかをマッピングするファイルです。 今回で言うと、リクエスト処理時に、index.jspが処理されるように記載しています。 jsp /index.jsp jsp /index.jsp ここでjspを定義しています ここでindex.jspが処理 されるようにマッピングしてい ます

Slide 25

Slide 25 text

プロジェクト の作成 ● Javaを簡単にビルドして動作させるために、以下のMavenコマンドを実行 しました。 mvn archetype:generate -DgroupId=com.example.app - DartifactId=my-java-app -DarchetypeArtifactId=maven- archetype-webapp -DinteractiveMode=false ● Mavenは、Javaプロジェクトを構築(ビルド)、フォルダ構成管理、ツール やライブラリの依存関係の自動管理を行うためのツールです。 ●上記コマンドの実行により、指定したグループ名(com.example.app) とプロジェクト名(my-java-app)を持つWebアプリのフォルダ構成を自動 的に作成しました。 フォルダ階層とxmlなどを 作成するだけなので すんなり通りました

Slide 26

Slide 26 text

アプリケーショ ンのビルド ● GitHubへプッシュするためのパッケージ作成のため、以下のコマンドを 実行しました。 mvn clean package ●上記のコマンドを実行することで、もし古いビルドファイルがあれば整理 し、新しいビルドファイルとしてをパッケージとして作成することになります。 ●今回実行した結果、「my-java-app.war」というパッケージが作成 されました。 warファイル作成時のフォルダの参 照エラー等、エラーが多く解消まで 1日程かかりました

Slide 27

Slide 27 text

GitHubへの プッシュ ●コマンドプロンプトにて、以下のコマンドを順番に実行し、 作成した資材をGitHubへプッシュしました。 git status git init git add . git commit -m "Add initial Java application files" git remote add origin https://github.com/Yasushi- Satou/my-java-ap git push -u origin master git status git log P.8の状態になりました Gitコマンドが分かるまで 2時間ほどかかりました

Slide 28

Slide 28 text

ご清聴ありがとうございました