I found it a little bit tricky using objects within parameter files, for example the SKU object for Azure SQL DB. After watching this, I got the gist of it and was able to get my template to work, thanks a lot.
I avoid using objects as input parameters. It's just a management hell later on. But sometimes there isn't simply a better option. If I can, I avoid them.
@@AdamMarczakYTThanks for the reply. I am a DBA and the reason I am using them is that I am trying to make a Git Repo with a basic template for all the types of databases we will deploy. For any new infra we deploy, I intend to just clone this template repo, modify it and run it through the pipeline. (Using a CI DevOps methodology). Would you recommend another approach for my scenario to avoid using these object parameters?
In general I'd say no. But there are some cool features that in certain cases make CLI better than powershell. For example --generate-ssh-keys for vm creation automatically generates SSH key for azure VM, in powershell you have to do this on your own. AZ INTERACTIVE is super cool for learning command line, no such mode in the powershell. I tend to use both for my work. :)
Hi Adam, thank you for this great video! What are your thoughts on building the azure infrastructure with Terraform instead of ARM templates? Would you cover this topic too in future?
NICE VIDEO - I did notice one oddity though... @ 6:07 you just got done creating a SEPARATE storage.parameters.json file which contains the "parameters" section... ... but then you LEFT the entire "parameters" sections back in the ORIGINAL ARM template storage.json as well :-O This leads to an interesting dilemma/question: WHICH "parameters" section does Azure consider AUTHORITATIVE (which one WINS) ? Time for a follow-up video ;-O Keep up the create videos ! -Mark in North Aurora IL (USA)
Hej Adam. Great video. Where is your video where you talk about accessing KeyVaults secrets in a parameters.json file? I know how to do it but wanted to see how you handle different environments. Do you generally always create a single parameters.[envName].json per environment? What if you could have 1 single parameters.json file for all environments and pass in the environment varibales via Azure DevOps pipeline?
Hey! thanks! I don't have key vault backed parameters video up yet unfortunately. I will add it to the lis, thanks! I actually mix param files but yes I have one param files for entire environment as I have many templates I try to use powershell to extract parameters I need for specific template.
Adam Marczak - Azure for Everyone I have gone from parameter.[ENV].json to having a single parameters.json file for all environments. I take in environment name as parameter and then I concat that as a suffix and store it in a variable in the template.json. That works out better for me.
Hi Adam, Hope you are doing good. How do i pass the paramters from powershell to ARM template and invoke it which is stored in blob storage. For example, how to pass the below parametes to JSON arm template. Thanks in Advance. $Parameters = @{ "clusterName"=${clusterName} "location"="westeurope" "managedIdentity"=${managedIdentity_Id} "clusterVersion"="3.6"
Hey, thanks! I am doing good. Hope you are too. If you need to pass parameters from powershell object then use TemplateParameterObject cmdlet parameter. reference: docs.microsoft.com/en-us/powershell/module/az.resources/new-azresourcegroupdeployment?view=azps-3.7.0
Hi Adam - great video! Thanks for sharing this. I’m working on passing azure key vault secret in azure database for postgreSql. Do u have any good reference video ?
Hey there. I'm not sure I understand. What exactly do you want to do? Both of those services are storage services, that means they typically have a middleware service in between which consists business logic. What is you scenario?
You don't need all these, just download the templates before you hit the create (do not download it when it's already created, it won't work because it got already other interfaces). You open the template, create new and add the templates (you only need the template.json), when you deploy, you edit the parameters and copy the parameters from the download parameter.json, then you deploy! crap!!!
In dev resource group I have multiple resources like function apps, logic apps,api connection, logic apps calling key vaults, service bus queues, liquid maps. How I can deploy entire resource to defferent environment resource groups using ARM template.for each environment I am using different key vaults, service bus queue, liquid maps are different how I can automate these changes. Note: developer creating these resources in azure portal for Dev environment,I need to automate using azuredevops If you have any idea call me 7989154106
Hey just create template, create parameters for things that change from environment to environment, store those in parameter files or pull dynamically using PowerShell/CLI. But it's too generic question to answer. If your developer already created resource try export template and fix it from there but it's quite difficult if you never wrote ARM templates before. docs.microsoft.com/en-us/azure/azure-resource-manager/templates/export-template-portal
@@AdamMarczakYT generally if I export resources from entire resource group,it has template.json and parameters.json.i don't want to edit template.json to maintain consistency across environments.in templates for each environment we are different keyvaults, service bus queues with extension environment name and liquid maps also extension with environment name,for Dev and itg we are using same service bus and integration account but queues and maps are different,how I can automate deployment.pleas help me in this scenario.if you are able to connect call also fine
I'm sorry but this is too complex for to explain using youtube comments. But I can''t connect with you because I don't do consulting work in my free time because I barely have any time left. I'm sure you will figure it out! Hope the video helps with getting the right direction.
I found it a little bit tricky using objects within parameter files, for example the SKU object for Azure SQL DB. After watching this, I got the gist of it and was able to get my template to work, thanks a lot.
I avoid using objects as input parameters. It's just a management hell later on. But sometimes there isn't simply a better option. If I can, I avoid them.
@@AdamMarczakYTThanks for the reply. I am a DBA and the reason I am using them is that I am trying to make a Git Repo with a basic template for all the types of databases we will deploy. For any new infra we deploy, I intend to just clone this template repo, modify it and run it through the pipeline. (Using a CI DevOps methodology). Would you recommend another approach for my scenario to avoid using these object parameters?
Super. This is what I was looking for to start with for ARM template deployment.
Good work Adam as usual!
Thanks George! :)
Nicely explained dear Adam !! Keep it up...
Thanks! 😃 I will!
Awesome, exactly the stuff I was looking for! Thanks. :)
Glad I could help!
Hi Adam,How to create a storage account with file share with output as connection strings.
Hi Adam. Thank you so much for these videos.They are fantastic.:)
HI Adam, Since ARM has so many inbuilt integrations with Azure, why would we use TF ?
Hi Adam ,thanks for the video
Hi Adam, I have a question. Once I deploy it, then I need to make some changes to my logic app. Do I need to do some manual steps?
Thanks a lot, helped me in my project.
Great video. Thanks a lot Adam. Waiting for your other trainings :)
More are coming! Thanks!
Is there an advantage to using Azure CLI vs. PowerShell?
In general I'd say no. But there are some cool features that in certain cases make CLI better than powershell. For example --generate-ssh-keys for vm creation automatically generates SSH key for azure VM, in powershell you have to do this on your own. AZ INTERACTIVE is super cool for learning command line, no such mode in the powershell.
I tend to use both for my work. :)
Hi Adam, thank you for this great video!
What are your thoughts on building the azure infrastructure with Terraform instead of ARM templates? Would you cover this topic too in future?
Thanks. Terraform is something that is definitely on my list! Thanks for watching :)
NICE VIDEO - I did notice one oddity though...
@ 6:07 you just got done creating a SEPARATE storage.parameters.json file which contains the "parameters" section...
... but then you LEFT the entire "parameters" sections back in the ORIGINAL ARM template storage.json as well :-O
This leads to an interesting dilemma/question: WHICH "parameters" section does Azure consider AUTHORITATIVE (which one WINS) ?
Time for a follow-up video ;-O
Keep up the create videos !
-Mark in North Aurora IL (USA)
Is there any additional cost to use template deployment?
No additional cost! All the tools like CLI, PowerShell, SDks etc also use the same API. They are all free because Azure Resource Manager is free.
Hej Adam. Great video. Where is your video where you talk about accessing KeyVaults secrets in a parameters.json file? I know how to do it but wanted to see how you handle different environments. Do you generally always create a single parameters.[envName].json per environment? What if you could have 1 single parameters.json file for all environments and pass in the environment varibales via Azure DevOps pipeline?
Hey! thanks! I don't have key vault backed parameters video up yet unfortunately. I will add it to the lis, thanks! I actually mix param files but yes I have one param files for entire environment as I have many templates I try to use powershell to extract parameters I need for specific template.
Adam Marczak - Azure for Everyone I have gone from parameter.[ENV].json to having a single parameters.json file for all environments. I take in environment name as parameter and then I concat that as a suffix and store it in a variable in the template.json. That works out better for me.
how we pass the URL in arm template as parameter
again, thank you for the great video.
My pleasure!
Hi Adam, Hope you are doing good.
How do i pass the paramters from powershell to ARM template and invoke it which is stored in blob storage. For example, how to pass the below parametes to JSON arm template. Thanks in Advance.
$Parameters = @{
"clusterName"=${clusterName}
"location"="westeurope"
"managedIdentity"=${managedIdentity_Id}
"clusterVersion"="3.6"
}
Hey, thanks! I am doing good. Hope you are too.
If you need to pass parameters from powershell object then use TemplateParameterObject cmdlet parameter.
reference: docs.microsoft.com/en-us/powershell/module/az.resources/new-azresourcegroupdeployment?view=azps-3.7.0
@@AdamMarczakYT Thanks so much for the prompt reply!!
Hi Adam - great video! Thanks for sharing this. I’m working on passing azure key vault secret in azure database for postgreSql. Do u have any good reference video ?
Hey there. I'm not sure I understand. What exactly do you want to do? Both of those services are storage services, that means they typically have a middleware service in between which consists business logic. What is you scenario?
how to create 100 VM's at time using ARM
template in azure ?
Thank you
You're welcome
You don't need all these, just download the templates before you hit the create (do not download it when it's already created, it won't work because it got already other interfaces). You open the template, create new and add the templates (you only need the template.json), when you deploy, you edit the parameters and copy the parameters from the download parameter.json, then you deploy! crap!!!
In dev resource group I have multiple resources like function apps, logic apps,api connection, logic apps calling key vaults, service bus queues, liquid maps.
How I can deploy entire resource to defferent environment resource groups using ARM template.for each environment I am using different key vaults, service bus queue, liquid maps are different how I can automate these changes.
Note: developer creating these resources in azure portal for Dev environment,I need to automate using azuredevops
If you have any idea call me 7989154106
Hey just create template, create parameters for things that change from environment to environment, store those in parameter files or pull dynamically using PowerShell/CLI. But it's too generic question to answer. If your developer already created resource try export template and fix it from there but it's quite difficult if you never wrote ARM templates before.
docs.microsoft.com/en-us/azure/azure-resource-manager/templates/export-template-portal
@@AdamMarczakYT generally if I export resources from entire resource group,it has template.json and parameters.json.i don't want to edit template.json to maintain consistency across environments.in templates for each environment we are different keyvaults, service bus queues with extension environment name and liquid maps also extension with environment name,for Dev and itg we are using same service bus and integration account but queues and maps are different,how I can automate deployment.pleas help me in this scenario.if you are able to connect call also fine
I am trying to automate using azuredevops
I'm sorry but this is too complex for to explain using youtube comments. But I can''t connect with you because I don't do consulting work in my free time because I barely have any time left. I'm sure you will figure it out! Hope the video helps with getting the right direction.
@@AdamMarczakYT thanks Adam,I am beginner in arm template ,I need to focus more