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 😐

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?

What is a good service to perform data transformation in Azure?πŸ€”

Hello friends and data marathoners!


I am excited to annonce my next Cloud Lunch and Learn tech meetup session with you.

During the previous session, you have learned about how to up-skill existing data and SQL skills with the new Data engineering mindset πŸ‘ŒπŸ‘

Updated: Check out the recorded event session on YouTube: https://youtu.be/h3AaL9AhuXI

I am glad to invite you all – to learn how to get started with Data Transformation services inΒ Microsoft Azure β„’Β 


Thanks you πŸ™ Cloud Lunch and Learn for organizing this session.

Event detail: 24 March @ 18:00 UTC
Open registration πŸ‘‰ https://lnkd.in/dNb5vUr#SharingIsCaring❀️

Fᴏʟʟᴏᴑ ᴍᴇ 🎯 α΄€Ι΄α΄… κœ±α΄›α΄€Κ€α΄› Κα΄α΄œΚ€ α΄„ΚŸα΄α΄œα΄… ☁ α΄Šα΄α΄œΚ€Ι΄α΄‡Κ – 𝐋𝐄𝐓’𝐒 π‚πŽπππ„π‚π“ πŸ‘
#microsoftazure#CloudLunchLearn#azuredata#upskilling#cloud#dataengineering#datatransformation#gettingstarted#continuouslearning