Павло Щербуха

Logo

Персональна освітня сорінка

Розробка на Node.js, VUE.js, Python, IBM Integration Bus (App Connect Ent) , ORACLE PL/SQL
30 January 2024

AZURE AZ-204 FOR DEVELOPERS

by Pavlo Shcherbukha

Про що цей блог

Мої кроки по вивченню курса azure az-204 базовий курс для розробника.

Тут багато прийдеться робити викристовуючи azure CLI. Як використовувати читати тута What is the Azure CLI?

1. AZ-204: Implement Azure App Service web apps

Лінк на модуль: AZ-204: Implement Azure App Service web apps

Отримати список можливих контейнерів для linux, куди можна встановлювати свої web app:

# az webapp list-runtimes --os-type linux

21e74f2efcf2:/# az webapp list-runtimes --os-type linux
[
  "DOTNETCORE:8.0",
  "DOTNETCORE:7.0",
  "DOTNETCORE:6.0",
  "NODE:20-lts",
  "NODE:18-lts",
  "NODE:16-lts",
  "PYTHON:3.12",
  "PYTHON:3.11",
  "PYTHON:3.10",
  "PYTHON:3.9",
  "PYTHON:3.8",
  "PHP:8.2",
  "PHP:8.1",
  "PHP:8.0",
  "JAVA:17-java17",
  "JAVA:11-java11",
  "JAVA:8-jre8",
  "JBOSSEAP:7-java17",
  "JBOSSEAP:7-java11",
  "JBOSSEAP:7-java8",
  "TOMCAT:10.0-java17",
  "TOMCAT:10.0-java11",
  "TOMCAT:10.0-jre8",
  "TOMCAT:9.0-java17",
  "TOMCAT:9.0-java11",
  "TOMCAT:9.0-jre8",
  "TOMCAT:8.5-java11",
  "TOMCAT:8.5-jre8"
]

Limitations

App Service on Linux does have some limitations: App Service on Linux isn’t supported on Shared pricing tier. The Azure portal shows only features that currently work for Linux apps. As features are enabled, they’re activated on the portal. When deployed to built-in images, your code and content are allocated a storage volume for web content, > backed by Azure Storage. The disk latency of this volume is higher and more variable than the latency of the ?> container filesystem. Apps that require heavy read-only access to content files may benefit from the custom > > container option, which places files in the container filesystem instead of on the content volume.

pic-01

pic-02

2. AZ-204: Implement Azure Functions

Лінк на модуль: AZ-204: Implement Azure Functions Якщо пройти тільки цей модуль - то, можливо, сертифікацію пройти і можна. Але жодної практичної задачі вирішити не вийде. Скоріше, буде навпаки, спеціалісту з сертифікатом буде дуже оромно, що сертифікат є, практично він щось зробити не може. Тому йдемо за класикою: робимо прототипи публікуємо їх на github і описуємо в блогах.

В цьому репозиторії зібрані практичні навички ( розроблено декілька прототипів) з розробки так би мовити “класичних” azure functions. Власний досвід вичення azure functions

Найбільш корисною мені здалася документація:

2.1. AZ-204: Implement simple Azure Functions using azure portal

Викоримтання azure portal є зручним, коли ти тільки починаєш вивчати azure function. Почнемо з Node.js шаблону. Розробка через портал створює функції по шаблону v3. Але вже є шаблон v4 і ві здається більш сучасним і звичним. Розробка через поратал вимагає постійно запущеного сервісу - що приводить до доаткових витрат. Також, немає повноцінного debug. Не сподобалось.

2.2. AZ-204: Implement simple Azure Functions using local developemnt with Visual Studio Code and azure plagin to it

Цей варіант здається найбільш прийнятним. Але треба розібратися з плагінами та емуляцією ресурсів, з якими треба інтегруватися За лінком описано як налагодити та запустити середовище розробки Quickstart: Create a JavaScript function in Azure using Visual Studio Code.

2.3. AZ-204: Implement simple Azure Functions using local developemnt with CLI and azure core tool

Цей варіант мені здався теж досить прийнятним. За лінком описано, як налагодити середовище розробки Quickstart: Create a JavaScript function in Azure from the command line.

Ну, з CLI є одна проблема - здається не можна робити debug. Але стоврити шаблон чи задеплоїти на ура. Тому прийдеться повернутися до режиму роботи з VSCode.

Тут про проблеми установки az-core-tool на Rasppberry PI ( які поки що так і не вирішені) - Azure functuins on ARM PROCESSOR (**azure function core tools**) Проблема в тому, що azure CLI давно існує і нормлаьно встановлюється на arm процесори. А от **azure function core tools** на arm процесори не встановлюється - тому поганенько. З цього приводу є issue: https://github.com/Azure/azure-functions-core-tools/issues/3112 , але так воно і не вирішено. Я пробував їх рекомендації: ```text mohsinonxrm commented Aug 10, 2023 • I've just built the binaries myself, you can try from here: https://github.com/mohsinonxrm/azure-functions-core-tools/releases/tag/4.23_arm64 Otherwise you can build it yourself as well but dotnet release -r linux-arm64 Next, you can use the azure function dotnet docker images: https://hub.docker.com/r/mohsinonxrm/azure-functions-dotnet/tags ``` але docker image теж не допомагає. Особливо коли розробка фунцій ведеться локально. Поки рішення немає Ну, в тому ж таки issue написано отаке ```text ross-p-smith commented Apr 8, 2024 We have had a little success forcing our devcontainers to be amd64 FROM --platform=linux/amd64 https://github.com/Azure-Samples/chat-with-your-data-solution-accelerator/blob/a16c5107062573403490f01819dd5bbde1b41cb1/.devcontainer/Dockerfile#L1 ``` але поки що я цим займатися не буду. Спробую дtсь на hyper-v віртуалку на ubuntu і спробую туди перенсення вивчення циф функцій. І ще цікавий пост тута: [running-azure-functions-in-docker-on-a-raspberry-pi-4](https://endjin.com/blog/2019/09/running-azure-functions-in-docker-on-a-raspberry-pi-4)

3. AZ-204: Develop solutions that use Blob storage

Лінк на модуль: AZ-204: Develop solutions that use Blob storage

В навчальному курсі викладено ну дуже мало. Це, по суті зміст з короткими коментарями, по можливостям BlobStorage. За цим лінокм знаходиться опис покрокової розробки прототипу, по переміщенню обєктів на (з) BlobStorage Розробка прототипу використання утілти копіювання файлів azcopy в парі з azure BlobStorage використовуючи авторизацію Service Principal. Але для цього прийшлося вивчити ще кучу додаткового матеріалу. Тобто пройти цей курс і зробити щось - то є дві великі різниці. Додаткові курси, що потрібні для створення цього прототипу:

4. AZ-204: Develop solutions that use Azure Cosmos DB

Лінк на модуль: AZ-204: Develop solutions that use Azure Cosmos DB

5. AZ-204: Implement containerized solutions

Лінк на модуль: AZ-204: Implement containerized solutions

6. AZ-204: Implement user authentication and authorization

Лінк на модуль: AZ-204: Implement user authentication and authorization

7. AZ-204: Implement secure Azure solutions

Лінк на модуль: AZ-204: Implement secure Azure solutions

8. AZ-204: Implement API Management

Лінк на модуль: AZ-204: Implement API Management

9. AZ-204: Develop event-based solutions

Лінк на модуль: AZ-204: Develop event-based solutions

10. AZ-204: Develop message-based solutions

Лінк на модуль: AZ-204: Develop message-based solutions

11. AZ-204: Develop message-based solutions

Лінк на модуль: AZ-204: Develop message-based solutions

12. AZ-204: Troubleshoot solutions by using Application Insights

Лінк на модуль: AZ-204: Troubleshoot solutions by using Application Insights

13. AZ-204: Implement caching for solutions

Лінк на модуль: AZ-204: Implement caching for solutions

tags: