Error on Bicep module – on Azure CLI (2.22.0) for Windows 10

If you are seeing “fromisoformat” error while running az bicep version or any other az bicep command – you are not alone πŸ™‚

Check this open issue reported on GitHub by community member – https://github.com/Azure/azure-cli/issues/17718


After updating to the latest Azure CLI (2.22.0) for Windows 10, I am now seeing the same error as others have reported:

Any command such as “az bicep version” is producing the following error:

The command failed with an unexpected error.
Here is the traceback and detailed error:
type object 'datetime.datetime' has no attribute 'fromisoformat'
Traceback (most recent call last):
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\knack/cli.py", line 231, in invoke
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/init.py", line 657, in execute
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/init.py", line 720, in _run_jobs_serially
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/init.py", line 691, in _run_job
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/init.py", line 328, in call
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/init.py", line 807, in default_command_handler
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/command_modules/resource/custom.py", line 3294, in build_bicep_file
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/command_modules/resource/_bicep.py", line 63, in run_bicep_command
File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/command_modules/resource/_bicep.py", line 152, in _load_bicep_version_check_result_from_cache
AttributeError: type object 'datetime.datetime' has no attribute 'fromisoformat'

Is there a temp workaround?

One of the workarounds is to uninstalled Azure CLI 2.22.0 , and then install the prior version 2.21.0. You could confirm 2.21.0 version is working for you by running the same command.

Hope this will be helpful for you, as i faced with this issue hours before my demo to #GlobalAzure 2021 😐

Are you ready to start your Bicep transformation journey in Azure?

Hello friends,

I am getting ready bits and pieces of the presentation and demo code for the #GlobalAzure 2021 event.

This is going to be my second year in a row, presenting at this global event, and I am pumped to contribute with two new sessions this year.

Feel free to check out the details of each session and links here .

Session banner for upcoming presentation on Global Azure 2021

WHY bother to transfrom your exising Azure ARM templates into Bicep?

  • Easy to understand and maintain code for your Azure infrastructure
  • Day zero support for all resource types & API versions
  • Nice transparent abstractionΒ for the underlying platform
  • Awesome Tooling – VS Code extension for Bicep
  • Deep integration with other Azure Services
  • Preflight validation – both Bicep/ARM does preflight validation on entire template
  • Provides high level of confidence that your code is ‘syntactically valid’ before deploying
  • Support – starting from v.03, Bicep is 100% supported by Microsoft Support Plans

This time, I am looking forward to share level 200 talk and demos, where we will ALL deep dive into challenges of transforming exisiting ARM templates into Azure Bicep.

We will inspect the ARM JSON decompiler, which comes with Azure Bicep and how to make it work your way.

Stay tunes, i hope to see you all during the event!

Transfrom your Azure ARM into Bicep during the Global Azure 2021

Global Azure 2021 event in mid-April.

Hello eveyone,
I am very happy to share exciting news with all of you.

Few days ago, i have receieved an email confirming acceptance of my both Azure sessions for the Global Azure 2021 event. I am truely trilled to present on April 16th and 17th following two sesions for eveyone live:

I am looking forward for your participiation, and tune in to learn about latest developments in Microsoft Azure.

In my first session i will share the following new session with you.

Abstract of the presentation as is:

Infrastructure as a Code (IaC) is important strategy to manage your digital estate in any cloud environment. Simplifying management of your infrastructure while re-using code is even better. In Microsoft Azure, we have ARM (Azure Resource Manager) templates that could declaratively define your cloud project infrastructure.

However, it is not easy to author ARM JSON templates and maintain them when your project grows and requires changes. In this demo heavy session, we will introduce the Azure Bicep language and demonstrate how it simplifies authoring ARM templates for your Azure infrastructure. We will author a manageable, readable, and modularized Azure infrastructure code, while using familiar tools.

TheCloudMarathoner πŸ™‚

Please let me know, what topics are you interested in?

GitOps = IaC + MRs + CI/CD

The biggest benefit in using Git and infrastructure-as-code (IaC) is that you can now use continuous integration and deployment. With tools like GitHub actions, you can automatically deploy and/or update infrastructure code and automatically apply it to your cloud environment. Resources that have been added to the infrastructure code are created automatically and made ready for use.

The resources that were changed are updated in your cloud environment and resources that are removed from the infrastructure code are automatically spun down and deleted. This allows you to write code, commit it to your Git repository, and take full advantage of all the benefits of the DevOps process.

GitOps

GitOps uses a Git repository as the single source of truth for infrastructure definitions. Simply put, a Git repository is a “.git” folder in a project that tracks all changes made to files in a project. Infrastructure as code (IaC) is the practice of keeping all infrastructure configuration tracked and saved as code files. The actual desired state may or may not be stored as code, depending your approach and organizational policies.

MRs

GitOps uses merge requests as the change process for all infrastructure updates. The merge request (MR) is where teams can collaborate via reviews and comments. The MR could also have a formal approval for changes to take place. A merge commits to your “main” branch is a potential changelog for a later audit and/or troubleshooting when needed.

CI/CD

GitOps automates infrastructure updates using a Git workflow with continuous integration and continuous delivery (CI/CD). When new code is merged, the CI/CD pipeline enacts the change in the environment. Any configuration drift, such as manual changes or errors, is overwritten by GitOps automation so the environment converges on the desired state defined in the Git.
GitHub actions uses CI/CD pipelines to manage and implement GitOps automation.

GitOps isn’t a black box anymore. It just takes IaC tools you already know and wraps them in a DevOps-style workflow. This approach provides a better revision tracking, fewer costly errors, and quick, automated infrastructure deployments that can be repeated for on any environment.

By adopting GitOps in your organization, you could improve the developer experience because often-dreaded releases become fully automated. This will allow developers to focus on their code. Teams eliminate or minimize manual steps and make deployments repeatable and reliable.

You could also improve security and standardization by utilizing GitOps.
By practicing GitOps, developers have no need to manually access cloud resources and additional security checks can be put in place at the code level in CI/CD pipelines.

I hope you like the GitOps approach and please let me know, what are you working on. Or how you could relate your work to GitOps?

Why “Start small and Expand” approach is good for your company business?

As cloud☁️ journey matures, each company 🏨 knows that service
requirements and needs will be changing. As cloud providers add new features and products, the new market opportunities and possibilities will rise.

There are several reasons why you would want to pursue the cloud landing zones. Using the start small and expand landing zone, you could get started with cloud adoption at a low-risk pace, and build up the security, governance, and regulatory policies over time.

As a benefit, with “start small and expand” you can use Azure Resource Manager templates and Azure Policy to create a CI/CD pipelines for subscriptions with Azure Blueprints.

As an ongoing improvement effort, you could expand and improve the landing zone with the Cloud Adoption Framework enterprise-scale design guidelines from Microsoft Azure β„’

Get started by learning “What is an Azure landing zone?” πŸ‘‰ https://lnkd.in/eD7xtWV #SharingIsCaring❀️

Fᴏʟʟᴏᴑ 🎯 theΒ #cloudmarathonerΒ β›…πŸƒβ€β™‚οΈπŸƒβ€β™€οΈ on LinkedIn α΄€Ι΄α΄… 𝐋𝐄𝐓’𝐒 π‚πŽπππ„π‚π“ πŸ‘

What is “Cloud native”, how you could define it?


So what is “Cloud Native”? πŸ€”πŸ‘€/

My approach is to hit on Re-FRESH β™» before thinking about Cloud Native; as it is an evolving space that at minimum includes following components:


βœ”οΈ Modern Design
βœ”οΈ Microservices
βœ”οΈ Containers
βœ”οΈ Backbone Services
βœ”οΈ Automation

By the way, check out the official CNCF definition (Cloud Native Computing Foundation) definition for clarity.

Cloud-native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.

These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.

CNCF

More on this topic πŸ‘‰ https://lnkd.in/eUkgs9P#SharingIsCaring❀️

Fᴏʟʟᴏᴑ ᴍᴇ 🎯 α΄€Ι΄α΄… κœ±α΄›α΄€Κ€α΄› Κα΄α΄œΚ€ α΄„ΚŸα΄α΄œα΄… ☁ α΄Šα΄α΄œΚ€Ι΄α΄‡Κ – 𝐋𝐄𝐓’𝐒 π‚πŽπππ„π‚π“ πŸ‘