Упражнение. Анализ ограничений веб-приложения на основе опроса

Завершено

Перед изменением прототипа необходимо запустить его для проверки допущений. Прототип находится в репозитории исходного кода на GitHub.

Создание ресурсов Azure

  1. На отдельной вкладке или окне браузера вилку примера репозитория на сайте GitHub со следующей ссылкой: mslearn-advocates.azure-functions-and-signalr. Это позволяет отправлять изменения в собственную версию исходного кода. Это обязательный шаг для развертывания исходного кода в Azure позже в модуле.

  2. В терминале клонируйте репозиторий. В следующей команде замените MicrosoftDocs свою учетную запись:

    git clone https://github.com/MicrosoftDocs/mslearn-advocates.azure-functions-and-signalr stock-prototype
    
  3. Установите зависимости в папке setup-resources .

    cd stock-prototype/setup-resources && npm install
    

    Если вы получаете предупреждения о EBADENGINEних, их можно игнорировать.

  4. Войдите в Azure с помощью Azure CLI.

    az login
    
  5. Просмотрите подписки и задайте подписку Azure по умолчанию.

    Просмотр подписок.

    az account list --output json | jq -r '.[] | .name' | sort
    

    Чтобы задать подписку по умолчанию, замените YOUR-SUBSCRIPTION-ID идентификатор подписки из предыдущего выходных данных Azure CLI.

    az account set --subscription <YOUR-SUBSCRIPTION-ID>
    

    Эта подписка по умолчанию используется для создания ресурсов Azure.

  6. Создайте ресурсы Azure и отправьте примеры данных в базу данных. Процесс может занять несколько минут.

    bash create-start-resources.sh "<YOUR-SUBSCRIPTION-NAME>"
    

    Убедитесь, что имя заключено в двойные кавычки.

  7. Скопируйте необходимые сведения, они потребуются для запуска прототипа.

    Тип ресурса Переменная среды
    Azure Cosmos DB Называется COSMOSDB_CONNECTION_STRING
    Хранилище Azure Называется STORAGE_CONNECTION_STRING
    Группа ресурсов Называется RESOURCE_GROUP_NAME.
  8. Используйте скрипт Node.js для отправки примеров данных в базу данных с помощью следующей команды.

    npm start
    
  9. В терминале перейдите в корневую папку.

    cd ..
    

Установка зависимостей и запуск прототипа

  1. Установите зависимости.

    cd start/client && npm install && cd ../..
    cd start/server && npm install && cd ../..
    
  2. Если уведомление запрашивает выбор приложения функций Azure для рабочей области, выберите start/server. Это приложение-функция, которое будет использоваться для запуска серверного кода.

  3. Если вы получите уведомление об установке последних Функции Azure Core Tools, нажмите кнопку "Установить".

Получение URL-адресов клиента и сервера

При локальном запуске клиентские и серверные приложения должны знать, где найти друг друга. URL-адреса:

  • Клиент: http://localhost:3000
  • Сервер: http://localhost:7071

Обновление локальных параметров для приложения Функции Azure

Добавьте строка подключения в приложение Функции Azure прототипа.

  1. Создайте файл ./start/server/local.settings.json и вставьте следующий файл. Этот файл содержит параметры конфигурации для проекта локальных функций.

    {
      "IsEncrypted": false,
      "Values": {
        "AzureWebJobsStorage": "<STORAGE_CONNECTION_STRING>",
        "FUNCTIONS_WORKER_RUNTIME": "node",
        "AzureWebJobsFeatureFlags": "EnableWorkerIndexing",
        "COSMOSDB_CONNECTION_STRING": "<COSMOSDB_CONNECTION_STRING>"
      },
      "Host" : {
        "LocalHttpPort": 7071,
        "CORS": "http://localhost:3000",
        "CORSCredentials": true
      }
    }
    
  2. Обновите следующие переменные со значениями, скопированными выше.

    Свойство Значение
    AzureWebJobsStorage Замените служба хранилища строка подключения.
    COSMOSDB_CONNECTION_STRING Замените строка подключения Cosmos DB.

    Теперь приложение "Функции" может получать запросы от клиента, а затем подключаться к базе данных и правильно управлять триггером таймера.

Добавление локальных параметров для клиентского приложения

Добавьте URL-адрес сервера в клиентское приложение прототипа.

Откройте ./start/client и создайте .env файл со следующим содержимым.

BACKEND_URL=http://localhost:7071

Запуск серверного приложения

  1. В терминале запустите приложение Функции Azure.

    cd start/server && npm start
    
  2. Подождите, пока терминал не отобразит конечные точки API.

    Functions:
    
            getStocks: [GET] http://localhost:7071/api/getStocks
    
            setPrice: timerTrigger
    

Выполнение клиентского приложения

  1. В новом терминале запустите клиентское приложение.

    cd start/client && npm start
    
    
  2. Когда появится уведомление о запуске приложения, нажмите кнопку "Открыть в браузере ", чтобы использовать прототип.

    Снимок экрана: уведомление Visual Studio Code, чтобы открыть браузер.

  3. Расположите окна браузера, чтобы вы могли видеть терминал и прототип цен на акции одновременно.

  4. В окне браузера прототипа откройте средства разработчика браузера. Обратите внимание, что браузер выполняет запрос к API каждые 5 секунд для всех данных, даже если данные не изменились.

  5. В окне браузера просмотрите выходные данные для приложения Функции Azure. Одна цена акций меняется каждую минуту. Когда цена в API изменяется, следующий клиент извлекает все данные, включая это изменение.

    Снимок экрана: терминал Visual Studio Code с выходными данными консоли изменения цен на акции.

  6. В начальных и начальных терминалах сервера остановите приложения с помощью ctrl + C или убейте терминал, выбрав значок корзины.

В этом уроке вы запустили прототип. Хотя клиент успешно работает, он не работает. Хотя каждый отдельный клиент может не заметить это с таким небольшим количеством акций, что изменится по мере роста количества акций и числа клиентов, извлекаемых с сервера. Прототип можно улучшить. Давайте узнаем, как в следующем уроке.