In dieser Übung werden wir einen Storage Account in Azure deployen. Unser Ziel ist es, eine lokal verfügbare HTML Datei als Blob in Azure Blobstorage zu deployen.
- Ein neues Pulumi Azure-Native Typescript Projekt mit Namen
lab3
erstellen. Bei Auswahl der Azure-RegionWestEurope
verwenden. - Einen neuen Stack
dev
hinzufügen. - Im Terminal überprüfen, dass die azure-cli verfügbar ist:
az version
- Führe
az login
aus und melde Dich mit Deinem Azure Account an. Solltest Du mehrere Subscriptions haben, kannst Du mitaz account list
alle anzeigen lassen und mitaz account set -s <subscriptionId>
auswählen.
Wir wollen eine HTML-Datei als statische Website in Azure BlobStorage zur Verfügung stellen und die Url der neu deployten Website als Output unseres Pulumi Programms exportieren. Verwendet einfach dieses simple HTML Snippet und fügt es in eine index.html
ins Projektverzeichnis ein.
<!DOCTYPE html>
<html>
<head>
<title>Pulumi Workshop Static Website</title>
<meta charset="utf-8">
</head>
<body>
<h1>Static website deployed with pulumi!</h1>
</body>
</html>
Imports hinzufügen und Projekt- und Stackname abfragen:
import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure-native";
import { enums } from "@pulumi/azure-native/types";
const stackName = ...;
const projectName = ...;
Eine Azure ResourceGroup erstellen.
const resourceGroup = new azure.resources.ResourceGroup(`${stackName}-${projectName}`);
StorageAccount, BlobContainer und HTML-Blob in dieser ResourceGroup erstellen (Azure BlobStorage).
const storageAccount = new azure.storage.StorageAccount("storage", {
kind: azure.storage.Kind.StorageV2,
resourceGroupName: ...,
sku: {
name: azure.storage.SkuName.Standard_LRS
},
allowBlobPublicAccess: ...
});
const storageContainer = new azure.storage.BlobContainer("content", {
containerName: ... // ContainerName soll {storageAccountName}-content sein
accountName: ...,
publicAccess: enums.storage.PublicAccess.Container,
resourceGroupName: ...
});
const website = new azure.storage.Blob("website", {
... // Tip: Für die source könnt Ihr ein pulumi.asset.FileAsset verwenden
});
Die Url des HTML-Blobs wird als Output exportiert.
export const websiteUrl = website.url;
💪 Aufgaben
- Vervollständige das Codegerüst und erzeuge einen Blob mit der zuvor erstellten
index.html
. - Führe
pulumi up
aus und überprüfe, dass unter der ausgegebenen Url das HTML abrufbar ist. - Überprüfe außerdem im Azure-Portal, welche Resourcen erzeugt wurden und wie deren Namen lauten.
- Ändere die HTML Datei und deploye ein Update.