In dieser Anleitung wird beschrieben, wie Sie eine .NET Framework-Webanwendung in Compute Engine bereitstellen.
Diese Anleitung richtet sich an Entwickler und DevOps-Entwickler, die grundlegende Kenntnisse zu Microsoft .NET und Compute Engine haben.
Ziele
Stellen Sie eine ASP.NET Model-View-Controller (MVC)-Webanwendung, die .NET Framework 4 verwendet und unter Windows ausgeführt wird, in einer einzelnen Compute Engine-Instanz bereit.
In dieser Anleitung erfahren Sie, wie Sie die folgenden Aufgaben ausführen, um Ihr Ziel zu erreichen:
- Compute Engine-VM bereitstellen
- Load-Balancing einrichten
- ASP.NET-Anwendung bereitstellen
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Compute Engine-VM bereitstellen
In diesem Abschnitt wird beschrieben, wie Sie eine Linux-VM oder eine Windows Server-VM erstellen, auf der Microsoft IIS-Webserver (Internet Information Services) in Compute Engine ausgeführt werden.
Legen Sie Standardwerte für Ihre Projekt-ID und Compute Engine-Zone fest. So sparen Sie Zeit.
gcloud config set project PROJECT_ID gcloud config set compute/zone ZONE
Ersetzen Sie Folgendes:
PROJECT_IDdurch die ID Ihres Google Cloud -Projekts.- Ersetzen Sie
ZONEdurch den Namen der Zone, die Sie zum Erstellen von Ressourcen verwenden möchten. Wenn Sie nicht sicher sind, welche Zone Sie auswählen sollen, verwenden Sie die Zone, die geografisch am nächsten an Ihrem Standort liegt.
Beispiel:
gcloud config set project test-project-12345 gcloud config set compute/zone us-central1-a
Erstellen Sie eine VM-Instanz:
So erstellen Sie eine Windows Server-VM, auf der IIS ausgeführt wird:
Erstellen Sie ein Startskript für die VM-Instanz. Dieses Skript wird während der VM-Initialisierung ausgeführt und installiert IIS:
"# Install IIS Enable-WindowsOptionalFeature -Online -FeatureName `` NetFx4Extended-ASPNET45, `` IIS-WebServerRole, `` IIS-WebServer, `` IIS-CommonHttpFeatures, `` IIS-HttpErrors, `` IIS-HttpRedirect, `` IIS-ApplicationDevelopment, `` IIS-HealthAndDiagnostics, `` IIS-HttpLogging, `` IIS-LoggingLibraries, `` IIS-RequestMonitor, `` IIS-HttpTracing, `` IIS-Security, `` IIS-RequestFiltering, `` IIS-Performance, `` IIS-WebServerManagementTools, `` IIS-IIS6ManagementCompatibility, `` IIS-Metabase, `` IIS-DefaultDocument, `` IIS-ApplicationInit, `` IIS-NetFxExtensibility45, `` IIS-ISAPIExtensions, `` IIS-ISAPIFilter, `` IIS-ASPNET45, `` IIS-HttpCompressionStatic Install-WindowsFeature Web-Mgmt-Service # Install WebDeploy [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType] 'Ssl3,Tls12' (New-Object Net.WebClient).DownloadFile( 'https://download.microsoft.com/download/0/1/D/01DC28EA-638C-4A22-A57B-4CEF97755C6C/WebDeploy_amd64_en-US.msi', ""$env:Temp\webdeploy.msi"") & msiexec /qb! /i $env:Temp\webdeploy.msi | Out-Default " | Out-File -Encoding ASCII startup.ps1Erstellen Sie die VM-Instanz und führen Sie das Startscript
startup.ps1aus:gcloud compute instances create clouddemo-1 ` --image-family windows-2019 ` --image-project windows-cloud ` --machine-type n1-standard-2 ` --boot-disk-type pd-ssd ` --tags loadbalancer-backend ` --metadata-from-file sysprep-startup-script-ps1=startup.ps1
Überwachen Sie den Initialisierungsprozess der VM. Rufen Sie dazu die Ausgabe des seriellen Ports auf:
gcloud compute instances tail-serial-port-output clouddemo-1
Warten Sie etwa fünf Minuten, bis die Ausgabe
Instance setup finishedoderStartup finishedangezeigt wird, und drücken Sie dann STRG + C. Jetzt ist die Installation der Voraussetzungen abgeschlossen und die VM-Instanz kann verwendet werden.
Load-Balancing einrichten
Damit Ihre ASP.NET-App über das Internet verfügbar ist, müssen Sie einen HTTPS-Load-Balancer verwenden. Erstellen Sie eine Instanzgruppe und weisen Sie diese dem Load-Balancer zu, um Ihre VM-Instanz mit dem Load-Balancer zu verknüpfen:
Erstellen Sie eine nicht verwaltete Instanzgruppe und fügen Sie die VM-Instanz hinzu:
gcloud compute instance-groups unmanaged create clouddemo-1 gcloud compute instance-groups unmanaged add-instances clouddemo-1 --instances clouddemo-1
Erstellen Sie eine Systemdiagnose, die prüft, ob der Webserver ausgeführt wird:
gcloud compute http-health-checks create clouddemo-health ` --check-interval 5s ` --unhealthy-threshold 2 ` --request-path / gcloud compute instance-groups set-named-ports clouddemo-1 --named-ports=http:80Erstellen Sie einen Backend-Dienst für den Load-Balancer, der die HTTP-Systemdiagnose und die Instanzgruppe verwendet, die zuvor erstellt wurde:
gcloud compute backend-services create clouddemo-backend ` --http-health-checks clouddemo-health ` --port-name http ` --protocol HTTP ` --global gcloud compute backend-services add-backend clouddemo-backend ` --instance-group clouddemo-1 ` --global ` --instance-group-zone $(gcloud config get-value compute/zone)
Erstellen Sie ein Frontend für den Load-Balancer:
gcloud compute url-maps create clouddemo-map --default-service clouddemo-backend gcloud compute target-http-proxies create clouddemo-proxy --url-map clouddemo-map gcloud compute forwarding-rules create clouddemo-frontend --global --target-http-proxy clouddemo-proxy --ports 80
Erstellen Sie eine Firewallregel, die es dem Load-Balancer erlaubt, HTTP-Anfragen an Instanzen zu senden, die mit dem Tag
loadbalancer-backendannotiert sind.gcloud compute firewall-rules create loadbalancer-backend ` --source-ranges "130.211.0.0/22,35.191.0.0/16" ` --target-tags loadbalancer-backend ` --allow tcp:80,tcp:5000
Suchen Sie die IP-Adresse des Load-Balancers:
gcloud compute forwarding-rules describe clouddemo-frontend --global --format "value(IPAddress)"
Notieren Sie sich die IP-Adresse. Sie benötigen sie später noch einmal.
ASP.NET-Anwendung bereitstellen
Öffnen Sie eine PowerShell-Konsole.
Laden Sie das Beispiel-Repository aus GitHub herunter und entpacken Sie es oder klonen Sie es:
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git
Erstellen Sie das Bereitstellungspaket:
Wechseln Sie in das Verzeichnis, das die Beispielanwendung enthält:
cd dotnet-docs-samples\applications\clouddemo\net4
NuGet-Abhängigkeiten wiederherstellen:
nuget restore
Erstellen Sie die Lösung und verwenden Sie das
PackageProfile-Veröffentlichungsprofil, um ein WebDeploy-Bereitstellungspaket zu erstellen:msbuild /t:clean,rebuild CloudDemo.Mvc.sln /p:DeployOnBuild=true /p:PublishProfile=PackageProfile
Der Ordner
CloudDemo.Mvc\binenthält jetzt die DateiCloudDemo.Mvc.zip.
Kopieren Sie das Deployment-Paket auf die VM:
- Erstellen Sie einen Nutzernamen und ein Passwort für die VM-Instanz.
- Stellen Sie mithilfe von Remote Desktop eine Verbindung zur VM her und melden Sie sich mit dem Nutzernamen und dem Passwort an, den bzw. das Sie im vorherigen Schritt erstellt haben.
- Kopieren Sie die Datei
CloudDemo.Mvc.zipaus dem OrdnerCloudDemo.Mvc\binin einen temporären Speicherort auf der VM-Instanz. - Klicken Sie in der Remotedesktopsitzung mit der rechten Maustaste auf die Schaltfläche Start (oder drücken Sie Win + X) und klicken Sie auf Windows PowerShell (Administrator).
- Bestätigen Sie die Eingabeaufforderung für erhöhte Rechte durch Klicken auf Ja.
Stellen Sie das Bereitstellungspaket bereit:
&"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -source:package=
PACKAGE-verb:sync -dest:autoErsetzen Sie
PACKAGEdurch den Pfad zum Bereitstellungspaket.
Öffnen Sie auf Ihrem lokalen Computer einen Webbrowser und rufen Sie die folgende Adresse auf:
http://
LOADBALANCER_IP/Ersetzen Sie
LOADBALANCER_IPdurch die IP-Adresse, die Sie nach der Bereitstellung des Load-Balancers erhalten haben.Sie sehen jetzt die Demoanwendung und den Titel Diese App wird in Compute Engine ausgeführt.
Bereinigen
Nachdem Sie die Anleitung abgeschlossen haben, können Sie die erstellten Ressourcen bereinigen, damit sie keine Kontingente mehr nutzen und keine Gebühren mehr anfallen. In den folgenden Abschnitten erfahren Sie, wie Sie diese Ressourcen löschen oder deaktivieren.
Projekt löschen
Am einfachsten vermeiden Sie weitere Kosten, wenn Sie das zum Ausführen der Anleitung erstellte Projekt löschen.
Google Cloud -Projekt löschen:
gcloud projects delete PROJECT_ID
Einzelne Ressourcen löschen
Sie müssen alle Ressourcen, die für das Projekt erstellt wurden, einzeln löschen (z. B. Instanzgruppen, Systemdiagnosen, Backend-Dienste, HTTP-Proxy und Weiterleitungsregeln). Sie können die VM-Instanzen erst löschen, wenn Sie alle diese Ressourcen gelöscht haben.
Nächste Schritte
- Weitere Informationen zum Erstellen und Ausführen von VMs in der Google-Infrastruktur
- Sehen Sie sich die Best Practices im Google Cloud Well-Architected Framework an.
- Referenzarchitekturen, Diagramme und Best Practices zu Google Cloud kennenlernen. Weitere Informationen zu Cloud Architecture Center