Ćwiczenie — pisanie kodu w celu wdrożenia aplikacji internetowej
W tej lekcji użyjesz narzędzi deweloperskich do utworzenia kodu dla początkowej aplikacji internetowej.
Tworzenie nowego projektu internetowego
Najważniejszym narzędziem interfejsu wiersza polecenia platformy .NET jest dotnet
. Za pomocą tego polecenia utworzysz nowy projekt internetowy platformy ASP.NET Core.
Uruchom następujące polecenie, aby utworzyć nową aplikację ASP.NET Core Model-View Cotroller (MVC) o nazwie "BestBikeApp":
dotnet new mvc --name BestBikeApp
Polecenie tworzy nowy folder o nazwie "BestBikeApp" do przechowywania projektu.
Opcjonalne testowanie aplikacji internetowej
Aplikację można przetestować lokalnie na platformie Azure. Aby to zrobić, wykonaj następujące kroki:
Uruchom następujące polecenia, aby skompilować i uruchomić aplikację internetową w tle:
cd BestBikeApp dotnet run &
Powinny zostać wyświetlone dane wyjściowe podobne do następującego przykładu:
[1] <process-number> <username> [ ~/BestBikeApp ]$ Building... warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] No XML encryptor configured. Key {b4a2970c-215c-4eb2-92b4-c28d021158c6} may be persisted to storage in unencrypted form. info: Microsoft.Hosting.Lifetime[14] Now listening on: http://localhost:<port> info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0] Hosting environment: Development info: Microsoft.Hosting.Lifetime[0] Content root path: /home/cephas_lin/BestBikeApp
W danych wyjściowych zanotuj wartości <numeru> procesu i< portu.>
Uruchom następujące polecenie, aby przejść do aplikacji internetowej, zastępując <port portem> zanotowany w ostatnim kroku.
curl -kL http://localhost:<port>/
Powinien zostać wyświetlony kod HTML kończący się następującymi wierszami:
<div class="text-center"> <h1 class="display-4">Welcome</h1> <p>Learn about <a href="https://learn.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p> </div> </main> </div> <footer b-b5g3qljvtd class="border-top footer text-muted"> <div b-b5g3qljvtd class="container"> © 2024 - BestBikeApp - <a href="/Home/Privacy">Privacy</a> </div> </footer> <script src="/lib/jquery/dist/jquery.min.js"></script> <script src="/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script> <script src="/js/site.js?v=hRQyftXiu1lLX2P9Ly9xa4gHJgLeR1uGN5qegUobtGo"></script> </body> </html>
Używając <zanotowany wcześniej numeru> procesu, zatrzymaj dotnet:
kill <process-number>
Aby utworzyć początkową aplikację internetową, używamy programu Maven, powszechnie używanego narzędzia do zarządzania projektami i kompilowania dla aplikacji Java. Użyjemy szablonu maven-archetype-webapp
do wygenerowania kodu dla naszej aplikacji internetowej.
Uruchom następujące polecenia w usłudze Azure Cloud Shell, aby utworzyć nową aplikację internetową:
cd ~ mvn archetype:generate -DgroupId=example.demo -DartifactId=helloworld -DinteractiveMode=false -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.5
Teraz uruchom następujące polecenia, aby przejść do nowego katalogu aplikacji „helloworld” i utworzyć pakiet aplikacji na potrzeby wdrożenia:
cd helloworld mvn package
Po zakończeniu działania polecenia uruchom następujące polecenia, aby otworzyć katalog docelowy i wyświetlić jego zawartość:
cd target ls
Masz teraz plik o nazwie helloworld.war
, który jest pakietem aplikacji internetowej, który zamierzamy wdrożyć w usłudze App Service.
Aby utworzyć początkową aplikację internetową Node.js, użyjemy środowiska Node Menedżer pakietów (npm
) wraz z kodem JavaScript w celu uruchomienia rzeczywistego przetwarzania strony internetowej.
Uruchom następujące polecenia w terminalu, aby utworzyć nowy
package.json
plik opisujący naszą aplikację Node.js:cd ~ mkdir helloworld cd helloworld cat >package.json <<EOL { "name": "helloworld", "version": "1.0.0", "scripts": { "start": "node index.js" } } EOL
Nowy package.json
plik zostanie utworzony w bieżącym folderze. Powinien on znajdować się w bieżącym folderze, jeśli zostanie wprowadzony ls
w oknie terminalu. Do uruchomienia logiki witryny internetowej potrzebujemy pliku JavaScript. W tym podstawowym przykładzie potrzebujemy tylko jednego pliku: index.js
.
Utwórz plik, uruchamiając następujące polecenie w terminalu:
cat >index.js <<EOL const http = require('http'); const server = http.createServer(function(request, response) { response.writeHead(200, { "Content-Type": "text/html" }); response.end("<html><body><h1>Hello World!</h1></body></html>"); }); const port = process.env.PORT || 1337; server.listen(port); console.log(\`Server running at http://localhost:\${port}\`); EOL
Opcjonalne testowanie aplikacji internetowej
Uruchamiając aplikację internetową helloworld, możesz sprawdzić, czy działa lokalnie, otwierając drugą sesję powłoki poleceń.
Na nowej karcie przeglądarki przejdź do adresu https://shell.azure.com/.
W podstawowej sesji powłoki poleceń uruchom następujące polecenia, aby uruchomić aplikację internetową w tle:
cd ~/helloworld npm start &
Powinny zostać wyświetlone dane wyjściowe podobne do następującego przykładu:
[1] <process-number> > helloworld@1.0.0 start > node index.js Server running at http://localhost:1337
W danych wyjściowych zanotuj wartość parametru <process-number>.
W tej samej sesji usługi Cloud Shell uruchom następujące polecenie, aby przejść do aplikacji internetowej.
curl -kL http://localhost:1337/
Powinny zostać wyświetlone następujące dane wyjściowe:
<html><body><h1>Hello World!</h1></body></html>
Używając <zanotowany wcześniej numeru> procesu, zatrzymaj węzeł:
kill <process-number>
Aby utworzyć początkową aplikację internetową, użyjemy platformy web-application platformy Flask.
Uruchom następujące polecenia w usłudze Azure Cloud Shell, aby skonfigurować środowisko wirtualne i zainstalować platformę Flask w profilu:
python3 -m venv venv source venv/bin/activate pip install flask
Uruchom następujące polecenia, aby utworzyć i przełączyć się do nowego katalogu aplikacji internetowej:
mkdir ~/BestBikeApp cd ~/BestBikeApp
Utwórz nowy plik o nazwie application.py z podstawową odpowiedzią HTML:
cat >application.py <<EOL from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "<html><body><h1>Hello Best Bike App!</h1></body></html>\n" EOL
Aby wdrożyć aplikację na platformie Azure, należy zapisać listę wymagań aplikacji wprowadzonych w pliku requirements.txt . W tym celu uruchom następujące polecenie:
pip freeze > requirements.txt
Opcjonalne testowanie aplikacji internetowej
Aplikację można przetestować lokalnie na platformie Azure, gdy jest uruchomiona.
Uruchom następujące polecenia, aby uruchomić aplikację internetową w tle:
cd ~/BestBikeApp export FLASK_APP=application.py flask run &
Powinny zostać wyświetlone dane wyjściowe podobne do następującego przykładu:
[1] <process-number> * Serving Flask app 'application.py' * Debug mode: off WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Running on http://127.0.0.1:5000 Press CTRL+C to quit
W danych wyjściowych zanotuj wartość parametru <process-number>. Ponieważ proces jest uruchomiony w tle, nie można zamknąć przy użyciu CTRL+C. Należy zatrzymać go przy użyciu numeru procesu.
Uruchom następujące polecenie, aby przejść do aplikacji internetowej.
curl -kL http://localhost:5000/
Powinny zostać wyświetlone następujące dane wyjściowe HTML:
<html><body><h1>Hello Best Bike App!</h1></body></html>
Korzystając z <zanotowanych wcześniej numerów> procesu, zatrzymaj platformę Flask:
kill <process-number>