Streamline Your Deployment Process with Azure Bicep & Azure Functions

Поделиться
HTML-код
  • Опубликовано: 11 июл 2024
  • Get the step-by-step tutorial and download the code from my site vtns.io/ytvazbicepazfunctutorial and check out my video showing how to implement CI/CD with GitHub Actions • CI/CD for Azure Functi...
    -------------------------------------------
    You've probably seen how to create #Azure resources using the Azure portal. But that's a manual process and easily screw-up-able when you need to repeat the resource creation for multiple projects, or when moving from dev to production, or deploying your customer's solution to their Azure subscription.
    Wouldn't it be better to script the resource creation and configuration process to ensure it's the same every time? What about versioning your resource configuration so it's part of your code?
    You can with #Infrastructure-as-Code, or IaC. #IaC is popular in the #DevOps world and fits nicely alongside a complete CI/CD process. It involves creating your resources from machine-readable files that can be versioned with your project in source control.
    In this video, I start with a blank slate and show you how to use Azure #Bicep, a domain-specific language from Microsoft to create Azure resources for an #AzureFunctions App.
    📚 Chapters
    -------------------------------------------
    00:00 : Introduction
    01:22 : What is Bicep?
    03:31 : Scenario overview
    03:52 : Create resources with the Azure Portal
    07:02 : Create resources with Bicep
    07:25 : Setup dev env for Bicep
    10:28 : Create a Bicep file
    12:25 : Create a storage account
    14:20 : Create App Insights
    15:29 : Create a hosting plan & function app
    17:30 : Create a function app slot
    18:45 : Set function app settings
    23:18 : Set output settings
    23:50 : Run the Bicep deployment
    🤓 LEARN MICROSOFT 365 FULL-STACK DEVELOPMENT WITH AC! 👇👇👇
    MY FREE MICROSOFT 365 EMAIL & SELF-PACED COURSES
    -------------------------------------------
    📺 Mastering the SharePoint Framework (Starter Bundle) vtns.io/ytvcoursemspfx
    ✉️ Explore & evaluate the SharePoint Framework vtns.io/ytvecourseexplorespfx
    ✉️ Understand the SharePoint Framework toolchain vtns.io/ytvecoursespfxtoolchain
    ✉️ Microsoft Teams App Development OnRamp vtns.io/ytvecoursemsteamsonramp
    MY SELF-PACED COURSES
    -------------------------------------------
    📺 Build Web Parts with the SharePoint Framework (SPFx) vtns.io/ytvcoursespfxwp
    📺 Extend the SharePoint UX with the SharePoint Framework (SPFx) Extensions vtns.io/ytvcoursespfxext
    📺 Extend Viva Connections with the SharePoint Framework Adaptive Card Extensions vtns.io/ytvcoursespfxace
    🔗 RESOURCES
    -------------------------------------------
    🔗 Want more Microsoft 365 app dev? 👉 • START HERE 👉 Microsoft...
    🔗 MS: Bicep overview docs.microsoft.com/azure/azur...
    🔗 MS: Azure CLI docs.microsoft.com/cli/azure/...
    🔗 VSCode Bicep Extension marketplace.visualstudio.com/...
    🔗 LINKS
    -------------------------------------------
    Subscribe to "The Full Stack Dev's Microsoft 365 Playbook" ✉️ vtns.io/ytvnewsletter - latest Microsoft 365 news & insights for developers
    LinkedIn ▶️ / andrewconnell
    Threads ▶️ www.threads.net/@andrewconnell1
    GitHub ▶️ github.com/andrewconnell & github.com/voitanos
    𝕏 | Twitter ▶️ / andrewconnell
    www.andrewconnell.com/links/
    Website ▶️ www.voitanos.io/
  • НаукаНаука

Комментарии • 26

  • @Andrew_Connell
    @Andrew_Connell  23 дня назад

    Get the step-by-step tutorial and download the code from my site vtns.io/ytvazbicepazfunctutorial and check out my video showing how to implement CI/CD with GitHub Actions ruclips.net/video/36R1pzPuLvs/видео.html

  • @andersjuul8310
    @andersjuul8310 3 месяца назад +1

    Absolutely gold! Just what a Bicep newbee needs! I had gotten off to a good start but beyond getting things working, I pick up in this video some good direction for Doing It Right. I'll be sure to watch your other videos. Thanks a bunch!

  • @zoltannemeth8864
    @zoltannemeth8864 2 года назад +2

    Thanks Andrew. This an excellent way to educate and inform people trying to learn these skills. One of the very best Azure videos available anywhere. In fact, far superior to the videos I have seen from Microsoft. (They should compensate you for your high quality work, in my opinion). Thanks for creating this, please create more videos in this format. Thank you!

  • @TomerShaiman
    @TomerShaiman 8 месяцев назад +1

    Great Stuff ! Looking forward to seeing how to deploy an actual app ( either NodeJS / C# / Python) to this App .

    • @Andrew_Connell
      @Andrew_Connell  7 месяцев назад

      Have you seen my other related video? I show exactly how I do this with GitHub Actions for a NodeJS based Azure Function App) - ruclips.net/video/36R1pzPuLvs/видео.html

  • @ljunq
    @ljunq 4 месяца назад +1

    Great series. Well thought out and very clear. Do you cover running a bicep file multiple times and creating resources only if they don't already exist or changing them if they do exist?

    • @Andrew_Connell
      @Andrew_Connell  4 месяца назад +1

      Yup... Bicep (& ARM) templates are considered desired-state-configuration (DSC). In other words, if the resource you describe is NOT present, it's created. If it is present but doesn't match what's in the template, it's updated to reflect the changes. If it is present & identical to the template, it's ignored.

  • @imran2860
    @imran2860 Год назад +1

    awesome knowledge

  • @GrumpyWookieDotCom
    @GrumpyWookieDotCom 2 года назад +3

    Great video - very interesting to see BICEP. The keyboard tick/tack is kinda distracting, I couldn’t concentrate on your explanation ! (Can you mute/drop the keyboard noises…?)

    • @Andrew_Connell
      @Andrew_Connell  2 года назад +2

      Thanks! I thought the keyboard would be a little fun, but a few people have said the same thing. Noted for future videos... thanks for the feedback!

  • @Kolbein837
    @Kolbein837 2 года назад +4

    Great video, but having a hard time concentrating on what you say over the generic keyboard typing sounds. :)

    • @Andrew_Connell
      @Andrew_Connell  2 года назад +1

      Thanks Kolbein... and noted. I've removed those from future videos.

  • @kunalgaurav7683
    @kunalgaurav7683 9 месяцев назад +1

    Thanks a lot for this video. Its really educational. I am very new to azure and cloud technology . I am facing an issue where my visual studio code terminal is running PowerShell as default. What are you using in your terminal. I have already installed Azure CLI and also have bicep extension in VS code application.

    • @Andrew_Connell
      @Andrew_Connell  9 месяцев назад

      You're welcome! My preferred shell & prompt are Oh My ZSH & the Starship theme. For a terminal, I use Hyper (but Hyper isn't what's used in the VSCode integrated terminal... that's coming from OMZ & Starship).

  • @adamkimberley2575
    @adamkimberley2575 2 года назад

    This is helping me a ton, thanks! But I'm a little puzzled over the 'functionSlotConfig' resource you create at 00:19:50 which contains the names of the parameters that are slot specific. What would happen if you left this out and just had the two config resources you declare in the appsettings-config.bicep file? Aren't they enough to get your two sets of config parameters deployed? Thanks again!

    • @Andrew_Connell
      @Andrew_Connell  2 года назад

      Glad it's helping Adam! The reason why you want to specify the parameters to be slot specific is because if you don't, when you swap the slots, the setting won't "stick" to the slot. So, it's not as much of an issue with the setting of the values, rather it's an issue when you run a slot swap.

  • @adamkimberley2575
    @adamkimberley2575 2 года назад +2

    Thanks - very useful video! The music at the start and the keyboard clicking is distracting, but otherwise perfect!

    • @adamkimberley2575
      @adamkimberley2575 2 года назад

      Not sure if it would be popular enough to warrant its own video, but it would be great to see a follow-up video on how the process of deploying the Functions themselves works with Bicep. From the documentation, it looks like it's possible to deploy the individual Functions inside the Function App resource using Bicep, there's not an awful lot about how to actually do this and when it should be done this way instead of using a ZIP deployment.

    • @Andrew_Connell
      @Andrew_Connell  2 года назад

      Did you by chance see the other video linked at the end of this one where I show all the workflows used to implement the CICD and deployment process?

    • @adamkimberley2575
      @adamkimberley2575 2 года назад

      @@Andrew_Connell Ah sorry, I missed that. I'll check that out!

  • @user-xj8rs6we5t
    @user-xj8rs6we5t Год назад

    Hi Andrew, I have a question. I have a requirement that I have to create a webapp with different number of deployment slots(could be 2 or 3 or 4) and for all deployment slots including production slot I want to set different 'appsettings' and 'sticky appsettings' . According to the video I came to know that we can create production and staging slots only for Azure function apps and web apps. Can you explain me more on this ?

    • @Andrew_Connell
      @Andrew_Connell  Год назад

      The production and staging slots are just two I use in this video. You can create more than that and then apply your workflow logic to each one.

  • @Tataque78
    @Tataque78 2 года назад

    In your bicep file you define the "kind" as "functionapp", which deploys a linux function app. What is the value for "kind" if I want to deploy a Windows function app?

    • @Andrew_Connell
      @Andrew_Connell  2 года назад +1

      For the Function App, the 'kind' is still 'functionapp'... the platform is defined by the hosting plan. For Windows, you can use something like this:
      resource hostingPlan 'Microsoft.Web/serverfarms@2021-03-01' = {
      name: hostingPlanName
      location: location
      sku: {
      name: 'Y1'
      tier: 'Dynamic'
      }
      properties: {}
      }