Azure Static Web Apps – це безсерверна служба веб-хостингу для статичного веб-контенту, такого як файли HTML, CSS та JavaScript, а також безсерверних API на основі функцій Azure. Це спрощує розгортання, CI/CD та керування сучасними веб-додатками. У цій статті ми створимо перший Azure Static Web App з використанням технологій Vue.js для фронтенду та C# для API.
Для початку впевніться що у вас є обліковий запис в Azure та GitHub. Зареєструватись в Azure можна на офіційному сайті: https://azure.microsoft.com, для реєстрації в GitHub необхідно перейти за посиланням: https://github.com/join.
Спочатку давайте створимо копію, вже підготовлений репозиторій з фронтендом, в своєму обліковий запис GitHub. Для цього перейдіть за посиланням (https://github.com/ievgen-pavlenko/static-web-app-vue/generate) і ведіть назву для вашого нового репозиторію.
Після того як створили копію, ми можемо приступити до створення самого ресурсу в хмарі. Хочу звернути вашу увагу, що після створення ресурсу, в вашому репозиторії, створиться файл з налаштуванням GitHub Actions.
Для створення ресурсу виконайте наступні кроки:
- Увійдіть Azure portal
- Виберіть Create a Resource
- В поле пошуку введіть Static Web Apps
- Виберіть Static Web Apps
- Натисніть Create
- На вкладці Basics заповніть наступні данні:
Поле | Значення |
Subscription | Оберіть підпуску |
Resource group | static-web-app |
Name | static-web-app |
Plan type | Free |
Region for Azure Functions API and staging environments | Оберіть регіон розгортання |
Source | GitHub |
- Натисніть Sign in with GitHub та автентифікація за допомогою GitHub.
- Введіть натувні значення GitHub:.
Поле | Значення |
Organization | Виберіть потрібну організацію. |
Repository | Виберіть потрібний репозиторій. |
Branch | Оберіть main. |
- У розділі Build Details виберіть Vue.js зі спадного списку Build Presets default values.
- In the App location box, enter /.
- Leave the Api location box, /api.
- In the Output location box, enter dist.
- Натисніть кнопку Review + Create, щоб переконатися, що всі відомості правильні.
- Натисніть кнопку Create, щоб почати створення Azure Static Web App і підготувати GitHub Actions для розгортання.
- Після завершення розгортання натисніть на кнопку Go to resource.
- На сторінці ресурсу виберіть URL-посилання, щоб відкрити розгорнутий Azure Static Web App. Можливо, вам доведеться зачекати хвилину або дві, поки GitHub Actions завершить працювати.
Після успішного розгортання, сколонуємо ваш репозиторій локально і додамо Azure Functions. Для створення і тестування Azure Function знадобиться Azure Functions Core Tools та Azure Static Web Apps CLI
Щоб їх встановити необхідно виконати наступні команди
npm install -g azure-functions-core-tools@4
npm install -g @azure/static-web-apps-cli
після успішного встановлення в папці зі склонованим репозиторієм треба створи dotnet проект в якому буде зберігатись код для Azure Functions. Для цього в папці з проектом необхідно виконати наступну команду
func init api --dotnet
для того щоб додати нову Azure Function в папці api треба виконати
func new --name hello --template "HTTP trigger" --authlevel "anonymous"
Тепер змініть контент файлу App.vue на наступний код
<script setup>
import HelloWorld from './components/HelloWorld.vue'
import { onBeforeMount, ref } from 'vue'
const text = ref('You did it!')
onBeforeMount(async () => {
const response = await fetch('/api/hello');
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
text.value = await response.text()
})
</script>
<template>
<header>
<img alt="Vue logo" class="logo" src="./assets/logo.svg" width="125" height="125" />
<div class="wrapper">
<HelloWorld :msg="text" />
</div>
</header>
</template>
<style scoped>
header {
line-height: 1.5;
display: flex;
justify-content: center;
align-items: center;
}
.logo {
display: block;
margin: 0;
}
</style>
Тепер для того щоб перевірити чи все вірно, в корні репозиторію виконайте наступні команди:
npm install
npm run build
swa start dist --api-location api
Після цього можна відкрити браузер та зайти на http://localhost:4280.
Сайт повинен виглядати наступним чином:
Якщо все працює можна комітити і пушити зміни в GitHub, що призведе до запуску GitHub Actions і інсталяцію нової версії сайту
У ході даної статті, я розглянув процес створення та розгортання Azure Static Web Apps з використанням Vue.js для фронтенду та C# для API.
Залишити коментар