Лабораторная работа Развертывание приложений в Windows Azure Версия: 0



страница1/3
Дата02.12.2016
Размер3.3 Mb.
Просмотров616
Скачиваний1
ТипОбзор
  1   2   3
\\w7-mkoldobsky\share\pkg\windowsazure.png

Практическая лабораторная работа


Развертывание приложений в Windows Azure


Версия: 2.0.0

Обновлено: 12/2/2016



содержание


Обзор 4

Упражнение 1: Развертывание приложения с использованием портала управления Windows Azure 7

Упражнение 2: Управление приложениями Windows Azure с помощью PowerShell 33

Упражнение 3: Использование Visual Studio для развертывания приложений 48

Упражнение 4: Безопасность Windows Azure с SSL 63

Заключение 83

Обзор

В этой практической лабораторной работе вы научитесь развертывать ваше приложение в Windows Azure. В лабораторной используется приложение myTODO – простое приложение для создания и управления списками, разработанное на ASP.NET MVC. Лабораторная содержит шаги, необходимые для подготовки необходимых компонентов на портале управления Windows Azure, загрузки пакета сервиса и дальнейшей конфигурации. Вы увидите, как можно тестировать ваше приложение в тестовом (staging) развертывании и как переводить приложение в реальное (production) развертывание, когда вы убедитесь, что оно работает так, как предполагается.





Изображение

Приложение myTODO, запущенное в Windows Azure

Также мы рассмотрим развертывание, обновление и конфигурирование приложений Windows Azure с помощью Service Management API. Вы воспользуетесь инструментарием по управлению сервисами Windows Azure Service Management Tools, «обёртывающим» API управления, для выполнения скриптов Windows Powershell. И, наконец, вы примените для задачи прямого развертывания с использованием Visual Studio инструменты Windows Azure Tools.

Вы также научитесь осуществлять защищённое SSL подключение к сервису в Windows Azure.

Цели


В этой практической лабораторной вы научитесь:

Использовать портал управления Windows Azure для создания аккаунтов хранилища и сервисов

Развертывать пакеты сервисов с использованием пользовательского интерфейса портала управления Windows Azure

Изменять значения настроек конфигурации развернутого приложения

Тестировать сервисы в отдельном тестовом (staging) развертывании перед переводом его в реальное (production)

Использовать Windows PowerShell для развертывания, обновления и конфигурирования сервисов Windows Azure с помощью кода

Использовать для развертывания сервиса из Visual Studio инструменты Windows Azure Tools

Обеспечивать безопасность приложений Windows Azure с SSL




Требования


Для выполнения лабораторной работы необходимо иметь следующее установленное ПО:

Microsoft .NET Framework 4.0

Microsoft Visual Studio 2010

ASP.NET MVC 2

Windows Azure Tools for Microsoft Visual Studio 1.6

IIS 7 (с ASP.NET, WCF HTTP Activation, Tracing)

Windows Azure Service Management CmdLets 1.0

Примечание: исходный код для командлетов управления сервисами Windows Azure расположен в папке Assets и устанавливается во время настройки.

Настройка


Для выполнения упражнений вы должны настроить соответствующим образом среду.

Откройте Windows Explorer и перейдите в подпапку лабораторной Source.

Щелкните два раза на файле Setup.cmd для запуска процесса настройки, который настроить среду и установит сниппеты кода Visual Studio, необходимые для лабораторной.

Если во время настройки появится диалоговое окно User Account Control, подтвердите действие.





    1. Примечание: Перед запуском скрипта настройки убедитесь, что у вас установлено всё, что необходимо для лабораторной.


Упражнения


Лабораторная включает в себя следующие упражнения:

Развертывание приложения с использованием портала управления Windows Azure

Использование PowerShell для управления приложениями Windows Azure

Развертывание приложений с помощью Visual Studio

Обеспечение безопасного подключения с SSL

Примерное время на выполнение лабораторной работы: 90 минут.



Примечание: При первом запуске Visual Studio вы должны выбрать один из предустановленных наборов настроек. Каждый набор настроек спроектирован с целью использования с различными стилями разработки и определяет расположение окон, поведение редактора, сниппеты кода IntelliSense и опции диалоговых окон. Данная лабораторная подразумевает использование набора настроек General Development Settings. Обратите внимание: если вы выберите другой набор настроек, могут быть различия с представленными описаниями.

Упражнение 1: Развертывание приложения с использованием портала управления Windows Azure

В этом упражнении вы развернете в Windows Azure приложение myTODO, используя портал управления Windows Azure. Для этого необходимо подготовить соответствующие компоненты, загрузить пакет приложения в тестовое (staging) развертывания и провести настройку. После этого вы запустите приложение в тестовом развертывании, проверив его работоспособность. Удостоверившись, что приложение работает так, как предполагается, вы переведете приложение в реальное развертывание.



    1. Примечание: Для выполнения упражнения вам необходимо зарегистрировать аккаунт Windows Azure и приобрести подписку

    2. Инструкция - Provisioning Windows Azure.



Задание 1 – Создание аккаунта хранилищ и сервисного компонента

Приложение, развертываемое в этом упражнении, требует наличия вычислительных ресурсов и сервисов хранилища. В этом задании вы создадите новый аккаунт хранилища Windows Azure для возможности сохранения приложением данных в долговременное хранилище. Кроме этого вы определите сервисный компонент для выполнения вашего приложения.

Откройте в веб-браузере http://windows.azure.com и войдите в систему, используя ваш Windows Live ID, к которому привязан аккаунт Windows Azure.

c:\users\administrator\desktop\pkg\labs\introductiontowindowsazurevs2010\lab - copy\word\media\image29.png

Изображение

Вход на портал управления Windows Azure

Создайте новый аккаунт хранилища, в котором будут храниться данные приложения. В меню Windows Azure нажмите New Storage Account.





Изображение

Создание нового аккаунта хранилища

В появившемся диалоговом окне Create a New Storage Account выберите в выпадающем списке Choose a subscription вашу подписку.





Изображение

Выбор подписки для размещения аккаунта хранилища

В текстовом поле Enter a URL введите имя вашего аккаунта хранилища, например, <yourname>mytodo, где <yourname> является уникальным именем. Windows Azure использует это значение для создания URL точек входа для сервисов аккаунта хранилища.





Изображение

Выбор URL для нового аккаунта хранилища

Примечание: имя, используемое для аккаунта хранилища, должно соответствовать DNS-имени и стандартам именования DNS. Более того, имя является публично видимым и должно быть уникальным. Портал проверяет доступность, уникальность и соответствие правилам имени. Если имя не пройдёт проверку, будет выведено сообщение об ошибке.

d:\root\users\mvazquez\desktop\waz portal screenshots\enter a url error - guestbook.png

Выберите Create or choose an affinity group и нажмите в выпадающем списке Create a new affinity group.





Изображение

Создание новой аффинной группы

Примечание: новая аффинная группа необходима для размещения сервиса и аккаунта хранилища в одном месте, что обеспечивает высокую пропускную способность и низкую латентность между приложением и данными, которые оно использует.

В диалоговом окне Create a New Affinity Group введите в текстовое поле Affinity Group Name имя аффинной группы, выберите расположение (Location) в выпадающем списке и нажмите OK.





Изображение

Создание новой аффинной группы

Вернувшись в диалоговое окно Create a New Storage Account, нажмите Create для создания нового аккаунта хранилища. Подождите окончания процесса инициализации аккаунта и обновления «дерева» Storage Accounts. Обратите внимание, что панель свойств Properties показывает URL, ассоциированный с каждым сервисом в аккаунте хранилища. Запишите публичное имя аккаунта хранилища – первый сегмент URL ваших точек входа.





Изображение

Аккаунт хранилища успешно создан

Нажмите кнопку View, расположенную рядом с Primary access key в панели свойств Properties. В диалоговом окне View Storage Access Keys нажмите Copy to Clipboard (рядом с Primary Access Key). Это значение понадобится для конфигурирования приложения.





Изображение

Получение ключей к аккаунту хранилища

Примечание: Первичный Primary Access Key и вторичный ключи доступа Secondary Access Key предоставляют общий секретный ключ, который можно использовать для доступа к хранилищу. Вторичный ключ аналогичен первичному и необходим для целей резервирования. Вы можете пересоздать каждый из ключей в случае скомпрометирования одного из них.

Создайте вычислительный сервис, который будет выполнять код вашего приложения. На левой панели нажмите Hosted Services и нажмите кнопку New Hosted Service, расположенную в меню.





Изображение

Создание нового сервиса

В диалоговом окне Create a new Hosted Service выберите вашу подписку из выпадающего списка Choose a subscription.





Изображение

Выбор подписки

Введите имя сервиса в текстовое поле Enter a name for your service и укажите URL, введя соответствующее значение Enter a URL prefix for your service, например, mytodo, где должно быть уникальным именем. Windows Azure использует это значение для создания URL точек входа в сервис.





Изображение

Настройка URL и аффинной группы сервиса

Примечание: Если это возможно, используйте одинаковое имя для аккаунта хранилища и сервиса. Однако вы должны будете выбрать другое имя, если одно из них будет недоступно.

Примечание: Портал производит проверку доступности и соответствия правилам имени. Если имя не пройдёт проверку, будет выведено сообщение об ошибке.

Выберите в выпадающем списке Create or choose an affinity group аффинную группу, которую вы создали ранее для аккаунта хранилища.





Изображение

Выбор аффинной группы

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

Укажите Do not Deploy.



Примечание: Несмотря на то, что вы можете создать и развернуть ваше приложение в Windows Azure одной операцией, заполнив секцию Deployment Options, в этой лабораторной вы выполните развертывание в следующем задании.

Нажмите OK для создания сервиса и подождите, пока не завершится процесс инициализации.



c:\users\mvazquez\appdata\local\temp\snaghtml85cddb.png

Изображение

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

Не закрывайте окно браузера.

Задание 2 – Развертывание приложение с помощью портала управления Windows Azure

Вычислительный сервис – это сервис, выполняющий ваш код в среде Windows Azure. Этот сервис имеет две ячейки развертывания – тестовую (staging) и реальную (production). Тестовое развертывание позволяет протестировать ваше приложение в среде Windows Azure перед развертыванием в реальное.

В этом задании вы создадите пакет сервиса для приложения myTODO и развернете его в тестовое развертывание, используя портал управления Windows Azure.

Откройте Microsoft Visual Studio 2010 в режиме администратора: в Start | All Programs | Microsoft Visual Studio 2010 нажмите правой кнопкой мыши на ярлыке Microsoft Visual Studio 2010 и выберите Run as Administrator.

В меню File выберите Open и Project/Solution. В диалоговом окне Open Project перейдите в папке Ex1-DeployingWithWindowsAzurePortal\Begin в папке лабораторной Source, выберите MyTodo.sln, исходя из используемого вами языка программирования (Visual C# или Visual Basic) и нажмите Open.

Решение состоит из следующих проектов:



MyTodo

Стандартный «облачный» проект, настроенный с использованием одной web-роли под названием MyTodo.WebUx

MyTodo.Data.WindowsAzure

Проект-библиотека, содержащий контракты данных для приложения MyTodo.WebUx для хранилища таблиц

AspProviders

Реализация провайдеров ASP.NET Membership, Role, и SessionState для хранилища Azure Storage

MyTodo.WebUx

Web-роль, содержащая ASP.NET MVC приложение MyTODO в Windows Azure

Убедитесь, что в пакете сервиса присутствует сборка System.Web.Mvc. Чтобы сделать это, для проекта на Visual C#, разверните в Solution Explorer узел References для проекта MyTodo.WebUx, нажмите правой кнопкой мыши на сборке System.Web.Mvc и выберите Properties. Для проекта на Visual Basic нажмите правой кнопкой мыши на проекте MyTodo.WebUx и нажмите Properties. В окне свойств Project Properties переключитесь на вкладку References , выберите System.Web.Mvc и нажмите F4.

Чтобы добавить сборку в пакет сервиса, в окне свойств Properties сборки System.Web.Mvc убедитесь, что опция Copy Local указана как True. Если опция указана как False, переопределите ее значение на True.



Изображение

Включение сборок в пакет сервиса, развертываемый в Windows Azure

Примечание: Вам необходимо определить Copy Local = True для всех сборок, не установленных в Windows Azure по умолчанию, для того, чтобы они были развернуты вместе с вашим приложением.

Измените размер виртуальной машины, которая будет использоваться для вашего приложения. Чтобы сделать это, в Solution Explorer разверните в проекте MyTodo узел Roles и два раза щелкните на роли MyTodo.WebUX, чтобы открыть окно свойств. На странице Configuration найдите опцию VM Size, расположенную в секции Instances, и укажите в выпадающем меню размер Extra small.



c:\users\user\appdata\local\temp\snaghtml9d3bf1.png

Изображение

Настройка размера виртуальной машины

Примечание: При создании сервисной модели вы можете определить размер виртуальной машины, который будет применен к виртуальным машинам, на которых будут развернуты экземпляры вашего сервиса, на основании требований к ресурсам. Размер виртуальной машины определяет количество ядер процессора, количество ОЗУ, размер локальной файловой системы и сетевую пропускную способность.

Для настройки хранилища перед развертыванием откройте файл ServiceConfiguration.cscfg внутри сервиса MyTodo. Замените «болванку» [YOUR_ACCOUNT_NAME] на имя вашего аккаунта хранилища Storage Account Name, которое вы выбрали при настройке аккаунта хранилища в Задании 1. Если вы следовали рекомендации, имя должно следовать правилу <yourname>mytodo, где <yourname> - уникальное имя. Замените обе «болванки» в файле, одну для DataConnectionString и вторую для Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString.

Замените «болванку» [YOUR_ACCOUNT_KEY] на первичный ключ доступа Primary Access Key, который вы записали ранее при создании аккаунта хранилища в Задании 1. Убедитесь, что вы заменили обе «болванки», для каждой строки подключения.



Изображение

Настройка строк подключения к аккаунту хранилища

Определите версию гостевой операционной системы Windows Azure Guest Operating System, которая будет запущена на виртуальных машинах вашего сервиса. Чтобы сделать это, щелкните два раза на файле ServiceConfiguration.cscfg в проекте MyTodo, чтобы открыть этот файл в XML-редакторе. После этого добавьте к корневому элементу ServiceConfiguration атрибут osVersion и определите его значение в WA-GUEST-OS-1.8_201010-01, как показано на изображении ниже.



Примечание: Значение, использующееся в данном случае для атрибута osVersion – пример того, как можно выбрать, какая версия ОС будет использоваться в вашем приложении. Вы можете выбрать «высшую» версию.



Изображение

Настройка версии гостевой операционной системы для виртуальных машин приложения

Примечание: Windows Azure Fabric выполняет гостевую ОС с вашим развернутым приложением. Эта гостевая ОС регулярно обновляется. Иногда обновление гостевой ОС может привести к проблемам с вашим приложением. С помощью атрибута osVersion вы можете убедиться, что ваше приложение работает на версии гостевой ОС, которая совместима с версией Windows Azure SDK, с которой разрабатывалось приложение. Вы можете тестировать различные значения osVersion перед переводом в реальное развертывание.

Для настройки версии ОС необходимо напрямую редактировать файл определения сервиса, так как текущая версия Windows Azure Tools for Microsoft Visual Studio не поддерживает определение версии ОС с помощью пользовательского интерфейса.

Windows Azure предоставляет функциональность автообновления, которая автоматически обновляет сервис для использования последних версий ОС, что позволяет быть уверенным, что ваш сервис работает в среде с последними обновлениями безопасности. Этот режим определен по умолчанию, если вы не определяете атрибут osVersion. Для перевода сервиса в режим автообновления определите значение osVersion в “*”.

Подробная информация о доступных версиях гостевых ОС Windows Azure Guest OS Versions and SDK Compatibility Matrix.

Нажмите CTRL + S для сохранения изменений в сервисной модели

Создайте пакет сервиса, щелкнув правой кнопкой на проекте «облачного» сервиса и выбрав Package.

В диалоговом окне Package Windows Azure Application нажмите Package и подождите, пока Visual Studio создаст пакет. После создания пакета Visual Studio покажет окно, содержащее папку с созданными файлами. Закройте окно, убедившись, что пакет создан.

c:\users\user\appdata\local\temp\snaghtml3d112d.png

Изображение

Создание пакета сервиса в Visual Studio

Откройте в веб-браузере страницу Summary в проекте, созданном в предыдущем задании.

На портале выберите созданный ранее сервис и нажмите в меню New Staging Deployment.

Примечание: Вычислительный сервис – это сервис, выполняющий ваш код в среде Windows Azure. Этот сервис имеет две ячейки развертывания – тестовую (staging) и реальную (production). Тестовое развертывание позволяет протестировать ваше приложение в среде Windows Azure перед развертыванием в реальное.

c:\users\mvazquez\appdata\local\temp\snaghtml87584f.png

Изображение

Страница Summary вычислительного сервиса

В диалоговом окне Create a new Deployment, чтобы определить Package location, нажмите Browse Locally, перейдите в папку с созданным в шаге 10 пакетов и выберите MyTodo.cspkg.



Примечание: Файл .cspkg является архивом, содержащим исполняемые файлы и файлы, необходимые для запуска сервиса. В этом случае это ASP.NET MVC приложение myTODO. Visual Studio создаёт пакет сервиса при Package на вашем проекте Windows Azure.

Чтобы выбрать Configuration File, нажмите Browse Locally и выберите ServiceConfiguration.cscfg в той же папке, что и в предыдущем шаге.



Примечание: Файл .cscfg содержит настройки конфигурации приложения, включая количество экземпляров, которое мы будем менять позже.

Введите метку для имени развертывания Deployment name, например, v1.0.



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



Изображение

Настройка развертывания пакета сервиса

Нажмите OK для инициирования развертывания. Обратите внимание на появившееся предупреждение. Нажмите See more details для просмотра сообщения.



c:\users\administrator\desktop\pkg\labs\introductiontowindowsazurevs2010\lab - copy\word\media\image48.png

Изображение

Просмотр сообщения

Примечание: В этом случае сообщение-предупреждение гласит о том, что количество экземпляров для сервиса равно одному экземпляру. Так делать не рекомендуется, поскольку в таком случае не предоставляются гарантии по доступности сервиса. В следующем задании вы увеличите количество экземпляров.

c:\users\administrator\desktop\pkg\labs\introductiontowindowsazurevs2010\lab - copy\word\media\image49.png

Нажмите Yes и отправьте запрос о развертывании. Обратите внимание, что пакет начал загружаться и портал показывает текущий статус процесса развертывания.





Изображение

Загрузка пакета сервиса через портал управления Windows Azure

Дождитесь окончания процесса развертывания, который может занять несколько минут. Вы уже загрузили пакет и он находится в состоянии Ready. Обратите внимание, что портал назначил для развертывания собственное DNS-имя, включающее уникальный идентификатор. Скоро вы сможете получить доступ по этому URL для тестирования приложения и определения корректности его работы.



Примечание: Во время развертывания Windows Azure анализирует файл конфигурации и копирует сервис на выделенное количество машин, после чего запускает экземпляры. В это время также настраиваются балансировщики нагрузки, сетевые устройства и мониторинг.



Изображение

Пакет успешно развернут

Задание 3 – Настройка количества экземпляров

Перед тестированием развернутого приложения вам необходимо настроить его. В этом задании вы измените конфигурацию уже загруженного сервиса и увеличите количество выделенных экземпляров.

В Hosted Services выберите сервис MyTodo и нажмите в меню Configure.





Изображение

Настройка конфигурации приложения

В диалоговом окне Configure Deployment выберите Edit current configuration, найдите в конфигурации MyTodo.WebUX элемент Instances и измените значение атрибута count на 2.





Изображение

Настройка количества экземпляров

Примечание: Конфигурация является XML-документом, содержащим значения настроек, определенных в файле определения сервиса. Его стандартное содержимое определяется ServiceConfiguration.cscfg, загруженным ранее при развертывании пакета в Задании 2.

Примечание: Настройка Instances определяет количество ролей, запускаемых Windows Azure и используемая для масштабирования сервиса. Для подписки на основе токенов – на данный момент доступной только в странах, где не производится биллинг – это количество ограничено двумя экземплярами. Однако в коммерческом предложении вы можете изменить это количество на любое количество, за которое будете готовы платить.

Нажмите OK для обновления конфигурации и дождитесь применения сервисом обновленных настроек.





Изображение

Обновление количества экземпляров роли

Примечание: Во время применения настроек портал отображает статус "Updating deployment...".

Задание 4 – Тестирование приложения в тестовом(staging) развертывании

В этом задании вы запустите приложения в тестовой среде и получите доступ к нему по URL для определения корректности его выполнения.

В Hosted Services выберите сервис MyTodo и нажмите на ссылку в правой панели под DNS name.



c:\users\administrator\desktop\pkg\labs\introductiontowindowsazurevs2010\lab - copy\word\media\image55.png

Изображение

Запуск приложения в тестовом развертывании

Примечание: URL выглядит как <guid>.cloudapp.net, где <guid> - некоторый случайный идентификатор, отличающийся от адреса, который получит приложение при развертывании в реальной среде. Хотя ячейки развертывания и разделены между собой, физических различий между ними нет – все определяется тем, куда подключен балансировщик нагрузки.

Примечание: В будущем вы сможете иметь несколько «виртуальных» площадок, например, для тестов, препродакшна, etc...

Нажмите Start для подготовки приложения к первому запуску, что потребует создания нового аккаунта. Перейдите в меню регистрации.





Изображение

Приложение в тестовом развертывании

Заполните информацию об аккаунте – имя пользователя, e-mail и пароль, и нажмите Register.



Примечание: Информация аккаунтов содержится в аккаунте хранилища, созданном ранее. Данные не делятся между списками дел.



Изображение

Создание нового аккаунта

Приложение определит списки, имеющиеся в наличии. Так как это первый запуск, списки отсутствуют.





Изображение

Приложение готово для использования

Если хотите исследовать возможности приложения, создайте новый список дел и введите информацию о делах.

Задание 5 – Перевод приложения в реальное развертывание

Определив корректность работы приложения с помощью тестового развертывания, можно переводить его в реальное развертывание. При развертывании приложения в реальной среде Windows Azure перенастраивает балансировщики нагрузки, обеспечивая доступ к приложению по URL реального развертывания.

В Hosted Services выберите сервис MyTodo и нажмите в меню Swap VIP.



Изображение

Перевод приложения в ячейку реального развертывания

В диалоговом окне Swap VIPs нажмите OK для перемены местами тестового и реального развертываний.





Изображение

Перевод приложения в реальное развертывание

Нажмите на ссылку DNS name для открытия сайта в реальном развертывании в новом окне браузера и обратите внимание на ссылку в адресной строке браузера.





Изображение

Приложение, запущенное в реальном развертывании

Примечание: Если вы получаете при входе на сайт DNS-ошибку 404, подождите пару минут и попробуйте еще – возможно, DNS-имя ещё не готово. Windows Azure создает DNS-имена динамически и применение этих изменений может занять несколько минут.

Примечание: Даже если развертывание находится в статусе suspended, Windows Azure всё ещё держит выделенные для каждого экземпляра виртуальные машины в рабочем состоянии, таким образом начисляя за них счёт. После окончания тестирования приложения вам необходимо удалить развертывание из Windows Azure во избежание дополнительных затрат. Чтобы удалить выполняемое развертывание, перейдите в Hosted Services, выберите ячейку развертывания с сервисом, тестовую или реальную, и нажмите в меню Stop. После остановки сервиса нажмите в меню Delete для удаления сервиса.

Упражнение 2: Управление приложениями Windows Azure с помощью PowerShell



  1. Обычно в течение жизненного цикла приложения оно испытывает изменения, после которых необходимо обновлять развернутое приложение. В предыдущем упражнении вы увидели, как можно использовать для развертывания портал управления Windows Azure. В качестве альтернативы Service Management API предоставляет программный доступ к большей части функциональности портала управления. С использованием SMAPI вы можете управлять вашими аккаунтами хранилища и сервисами, развертываниями и аффинными группами.

  2. Командлеты управления сервисами PowerShell являются «обёрткой» над Service Management API. Эти командлеты упрощают автоматизацию развертывания, обновления и масштабирования ваших приложений в Windows Azure. С помощью конвейерной архитектуры команд вы можете писать сложные скрипты, использующие в качестве входа одной команды выходные данные от другой.

  3. В этом упражнении вы научитесь развертывать и обновлять приложение в Windows Azure используя командлеты управления сервисами.

Задание 1 – Создание самоподписанного сертификата (опционально)

Чтобы убедиться в том, что доступ к SMAPI безопасен, вы можете «привязать» к вашей подписке сертификат. Сервис управления использует сертификаты для аутентификации запросов. Вы можете использовать либо самоподписанный сертификат, либо сертификат, подписанный центром сертификации. Подходит любой действительный сертификат X.509 v3 с длиной ключа как минимум равной 2048 бит.

В этом задании вы создадите сертификат, который сможете загрузить на портал управления Windows Azure. Этот шаг является опциональным, если у вас уже есть сертификат, подписанный центром сертификации.

Откройте в режиме администратора командную строку Visual Studio Command Prompt. Для этого: в Start | All Programs | Microsoft Visual Studio 2010 | Visual Studio Tools | Visual Studio Command Prompt (2010) щелкните правой кнопкой мыши на ярлыке Visual Studio 2010 Command Prompt и выберите Run as administrator.

Измените текущую папку на папку, где вы хотите хранить файл вашего сертификата.

В строке ввода введите следующую команду, которая создаст файл сертификата.



Visual Studio Command Prompt

makecert -r -pe -n "CN=AzureMgmt" -a sha1 -len 2048 -ss My "AzureMgmt.cer"

Примечание: Эта команда создает новый самоподписанный сертификат с длиной ключа 2048 бит и записывает его в файл "AzureMgmt.cer", находящийся в текущей директории, и сохраняет его в My certificate текущего пользователя.





Задание 2 – Подготовка аккаунта Windows Azure

Для использования SMAPI вам необходимо загрузить сертификат в ваш аккаунт Windows Azure для обеспечения аутентификации. Кроме этого, для использования API управления и командлетов PowerShell необходимо предоставить дополнительные данные, такие как имя сервиса, отпечаток (thumbprint) сертификата и ID подписки вашего аккаунта Windows Azure.

В этом задании вы загрузите сертификат в ваш аккаунт Windows Azure и получите необходимую информацию, включая отпечаток сертификата и ID подписки.

Перейдите на https://windows.azure.com и зайдите в систему используя ваш Windows Live ID.

Нажмите Hosted Services, Storage Accounts & CDN, выберите в левой панели Management Certificates. Нажмите в меню кнопку Add Certificate.

c:\users\admini~1\appdata\local\temp\1\snaghtml1e111bf.png

Изображение

Управление сертификатами на портале управления Windows Azure

Выберите вашу подписку и загрузите новый сертификат с вашего локального хранилища. Для этого нажмите Browse, найдите файл вашего сертификата и нажмите OK.





Изображение

Добавление нового сертификата управления

Примечание: Service Management API принимает любой действительный сертификат X.509 v3 с длиной ключа не менее 2048 бит. Вы можете использовать либо самоподписанный сертификат, созданный ранее, либо сертификат, подписанный центром сертификации.

Если вы загружаете самоподписанный сертификат на портал сразу же после его создания, портал может отказать вам в связи с различиями между временем, установленным на вашем компьютере и установленным на сервере (так как время на сервере может быть «впереди» значения даты сертификата Valid From). Если при загрузке сертификата вы получаете ошибку ”Certificate is not yet valid”, вы можете либо подождать несколько минут для синхронизации времени либо перезапросить сертификат, используя команду makecert с указанием даты, находящейся в прошлом.

Обратите внимание на значение в поле Thumbprint для установленного только сертификата и на значение в поле Subscription Id. Вы можете сделать это, щелкнув на корневом узле Subscription.



Изображение

Свойства сертификата



Изображение

Свойства подписки

Выберите в левой панели Hosted Services. Щелкните на сервисе MyTodo v1.0. Вы можете получить имя сервиса с помощью ссылки DNS name, находящейся в Properties и имеющей формат http://<ИМЯ_СЕРВИСА>.cloudapp.net.





Изображение

Получение DNS-имени сервиса

Примечание: Вы воспользуетесь полями Thumbprint, Subscription ID, Service Name в следующем задании при развертывании сервиса.

Можно скопировать эти значения в блокнот.



Задание 3 – Загрузка пакета сервиса с использованием Windows PowerShell

В предыдущем упражнении вы загружали пакет сервиса для приложения myTODO, используя портал управления Windows Azure. В этом задании вы загрузите пакет с использованием командлетов управления сервисами PowerShell.

Запустите Microsoft Visual Studio 2010 в режиме администратора. Для этого в Start | All Programs | Microsoft Visual Studio 2010 щелкните правой кнопкой мыши на ярлыке Microsoft Visual Studio 2010 и выберите Run as administrator.

В меню File нажмите Open и Project/Solution. В диалоговом окне Open Project перейдите в Ex2-DeployingWithPowerShell\Begin в папке лабораторной Source, выберите соответствующий вашему языку программирования (Visual C#/Visual Basic) MyTodo.sln и нажмите Open.

Настройте строки подключения к хранилищу. Для этого разверните в проекте MyTodo узел Roles и щелкните два раза на роли MyTodo.WebUX. В окне свойств роли выберите вкладку Settings, отметьтье настройку DataConnectionString, убедитесь, что значение ее свойства Type установлено в ConnectionString и нажмите на иконку с троеточием.



Изображение

Определение строк подключения к аккаунту хранилища

В диалоговом окне Storage Connection String выберите Enter storage credentials. Заполните имя аккаунта Account Name и ключ доступа Account Key и нажмите OK.



c:\users\user\appdata\local\temp\snaghtml245dfd3d.png

Изображение

Настройка имени аккаунта хранилища и ключа доступа

Примечание: Эти данные доступны в секции вашего аккаунта хранилища Summary на портале управления Windows Azure. Вы используете те же самые настройки, что и в упражнении 1, когда вы развертывали и настраивали приложение.В этом случае, так как приложение уже работало в Windows Azure, вы обновляли конфигурацию на портале управления.

Повторите последовательность действий для настройки Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString используя ту же информацию.

Для создания пакета сервиса щелкните правой кнопкой мыши на проекте «облачного» сервиса и нажмите Package. В диалоговом окне Package Windows Azure Application нажмите Package и подождите окончания процесса создания. Когда пакет будет готов, Visual Studio откроет окно с содержимым папки с созданным пакетом. Закройте окно.

Откройте командную строку Windows PowerShell. В Windows Vista, Windows Server 2008, и поздних версиях Windows в меню Start откройте All Programs | Accessories | Windows PowerShell, и выберите Windows PowerShell. В Windows XP и Windows Server 2003, в меню Start откройте Programs | Accessories | Windows PowerShell и выберите Windows PowerShell.

В строке ввода введите следующую команду для добавления поддержки в текущей сессии командлетов управления сервисами Windows Azure.


      1. PowerShell

Add-PSSnapin AzureManagementToolsSnapIn

Измените текущую папку на папку, где вы создали пакет сервиса для приложения myTODO в шаге 6.

Введите команду ниже. Используйте аргументы, убедившись, что вы заменили «болванки» правильными значениями вашего аккаунта, определенные в задании 1 в этом упражнении.

PowerShell

New-Deployment -serviceName <YOUR_SERVICE_NAME_LOWER_CASE> -subscriptionId <YOUR_SUBSCRIPTION_ID> -certificate (get-item cert:\CurrentUser\MY\<YOUR_CERTIFICATE_THUMBPRINT>) -slot staging –package <PACKAGE_LOCATION> -configuration <CONFIGURATION_LOCATION> -label "v2.0" –storageServiceName <YOUR_STORAGE_SERVICE_NAME_LOWER_CASE>





<YOUR_SERVICE_NAME_LOWER_CASE>

Выбранное в упражнении имя сервиса, не его метка.



ID подписки вашего аккаунта Windows Azure.



Значение отпечатка (в высшем регистре) для загруженного ранее сертификата.

< PACKAGE_LOCATION>

Локальный путь к файлу или URL блоба в хранилище Azure, содержащий пакет сервиса.

< CONFIGURATION_LOCATION>

Локальный путь к файлу или публичный URL блоба, содержащий файл конфигурации сервиса.

<YOUR_STORAGE_SERVICE_NAME_LOWER_CASE>

Имя аккаунта хранилища.



Примечание: Команда, показанная выше, использует для загрузки пакета сервиса и создания нового развертывания в тестовой среде командлет New-Deployment. Для развертывания назначается метка "v2.0".

Обратите внимание, что параметр certificate ожидает объект сертификата. Для получения необходимого сертификата вы можете использовать get-item и провайдера сертификатов PowerShell для получения сертификата по его отпечатку. Убедитесь, что вы указали отпечаток в высшем регистре.



Важно: Командлет New-Deployment подразумевает, что имена вычислительного сервиса и сервиса хранилища одинаковы. Если это не так, вы можете указать -StorageServicename <YOUR_SERVICE_NAME_LOWER_CASE>, заменив «болванку» на имя сервиса хранилища.

Например, для развертывания сервиса с именем “yournametodo”, используя аккаунт с ID подписки 12abb234-45c9-4b37-8179-e7d88617cb5e, отпечатком сертификата 6062B026CF12FE6CD1E3A2CE22893E5CD1DA59C7, пакетом MyTodo.cspkg, файлом конфигурации ServiceConfiguration.cscfg, и меткой развертывания v2.0 можно использовать следующую команду.





Изображение

Команда New-Deployment

Нажмите ENTER для выполнения команды. Так как операция New-Deployment является асинхронной, управление будет возвращено сразу, операция же продолжит выполняться в «фоне».





Изображение

Развертывание нового пакета сервиса Windows Azure используя PowerShell

На портале управления Windows Azure откройте Summary и обратите внимание на статус развертывания в тестовой среде - "Updating deployment...". Процесс может занять некоторое время, после чего статус будет обозначен как Stopped.



Примечание: Обычно нет необходимости использовать портал управления для наблюдения за статусом операций развертывания. Здесь показан лишь факт того, что вы можете использовать API для тех же целей, что и портал. В следующем задании вы увидите, как использовать командлет для ожидания окончания процесса развертывания и получения его статуса.

Оставьте открытыми Microsoft Visual Studio и консоль PowerShell.

Задание 4 – Обновление развертывания с использованием Windows PowerShell

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

Вернитесь в Microsoft Visual Studio.

Откройте master-страницу приложения: в Solution Explorer щелкните два раза на Site.Master в папке Views\Shared в проекте MyTodo.WebUx. Переключитесь в режим редактирования кода.

Вставьте новый заголовок в «подвал» страницы: перейдите в конец master-страницы и обновите сведения о копирайте на “(Deployed with the PowerShell CmdLets)”.

HTML

...




  1   2   3


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал