tag:blogger.com,1999:blog-62930993632891062572024-03-18T07:16:45.226+01:00The Microsoft PlatformFreek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.comBlogger505125tag:blogger.com,1999:blog-6293099363289106257.post-66225562208288756532024-02-07T08:21:00.001+01:002024-02-07T09:39:04.354+01:00Publish Bicep modules to registries with the source.<figure class="lj lk ll lm ln lo lg lh paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 40px auto 0px;"><div class="lp lq ee lr bg ls" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 679.988px; z-index: auto;" tabindex="0"><div class="lg lh li" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1341px;"><picture style="box-sizing: inherit;"><img alt="" class="bg ko lt c" height="334" loading="eager" role="presentation" src="https://miro.medium.com/v2/resize:fit:945/1*kLWBmYT_Cs6yIHdT4BxymQ.png" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 679.988px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="e708" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">Bicep offers the ability to store your modules in a registry in Azure. This is based on storing them in an Azure Container Registry (ACR).</p><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="97fd" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">This approach offers several advantages, especially regarding DevOps practices, version control, shared access, and reusability.</p><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="1b3c" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">Let’s consider the module below, which creates several Azure Virtual Desktop (AVD)- related resources, such as host pools, workspaces, and application groups.</p><figure class="mt mu mv mw mx lo lg lh paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lp lq ee lr bg ls" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 679.988px; z-index: auto;" tabindex="0"><div class="lg lh ms" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 910px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/format:webp/0*wLUP4ZUukiiiME31 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/0*wLUP4ZUukiiiME31 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/0*wLUP4ZUukiiiME31 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/0*wLUP4ZUukiiiME31 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/0*wLUP4ZUukiiiME31 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/0*wLUP4ZUukiiiME31 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/0*wLUP4ZUukiiiME31 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*wLUP4ZUukiiiME31 640w, https://miro.medium.com/v2/resize:fit:720/0*wLUP4ZUukiiiME31 720w, https://miro.medium.com/v2/resize:fit:750/0*wLUP4ZUukiiiME31 750w, https://miro.medium.com/v2/resize:fit:786/0*wLUP4ZUukiiiME31 786w, https://miro.medium.com/v2/resize:fit:828/0*wLUP4ZUukiiiME31 828w, https://miro.medium.com/v2/resize:fit:1100/0*wLUP4ZUukiiiME31 1100w, https://miro.medium.com/v2/resize:fit:1400/0*wLUP4ZUukiiiME31 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg ko lt c" height="755" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:945/0*wLUP4ZUukiiiME31" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 679.988px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="9d2f" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">Publishing your modules to an ACR is quite easy. In this example, I’ll use Azure CLI. First, create an ACR in case you don’t have one yet. Since an ACR is just another resource in Azure, you can use Bicep to create one, as shown below.</p><figure class="mt mu mv mw mx lo lg lh paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lp lq ee lr bg ls" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 679.988px; z-index: auto;" tabindex="0"><div class="lg lh my" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1060px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/format:webp/0*nCh-dJ2wF_e-1iZS 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/0*nCh-dJ2wF_e-1iZS 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/0*nCh-dJ2wF_e-1iZS 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/0*nCh-dJ2wF_e-1iZS 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/0*nCh-dJ2wF_e-1iZS 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/0*nCh-dJ2wF_e-1iZS 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/0*nCh-dJ2wF_e-1iZS 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*nCh-dJ2wF_e-1iZS 640w, https://miro.medium.com/v2/resize:fit:720/0*nCh-dJ2wF_e-1iZS 720w, https://miro.medium.com/v2/resize:fit:750/0*nCh-dJ2wF_e-1iZS 750w, https://miro.medium.com/v2/resize:fit:786/0*nCh-dJ2wF_e-1iZS 786w, https://miro.medium.com/v2/resize:fit:828/0*nCh-dJ2wF_e-1iZS 828w, https://miro.medium.com/v2/resize:fit:1100/0*nCh-dJ2wF_e-1iZS 1100w, https://miro.medium.com/v2/resize:fit:1400/0*nCh-dJ2wF_e-1iZS 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg ko lt c" height="215" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:945/0*nCh-dJ2wF_e-1iZS" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 679.988px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="b166" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">Now use the publish command, provide the bicep module you want to publish, and provide the target location, the ACR, and where you want to store it.</p><figure class="mt mu mv mw mx lo lg lh paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lp lq ee lr bg ls" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 679.988px; z-index: auto;" tabindex="0"><div class="lg lh mz" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1308px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/format:webp/0*oKIUMwNy6aw6Yq7q 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/0*oKIUMwNy6aw6Yq7q 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/0*oKIUMwNy6aw6Yq7q 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/0*oKIUMwNy6aw6Yq7q 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/0*oKIUMwNy6aw6Yq7q 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/0*oKIUMwNy6aw6Yq7q 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/0*oKIUMwNy6aw6Yq7q 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*oKIUMwNy6aw6Yq7q 640w, https://miro.medium.com/v2/resize:fit:720/0*oKIUMwNy6aw6Yq7q 720w, https://miro.medium.com/v2/resize:fit:750/0*oKIUMwNy6aw6Yq7q 750w, https://miro.medium.com/v2/resize:fit:786/0*oKIUMwNy6aw6Yq7q 786w, https://miro.medium.com/v2/resize:fit:828/0*oKIUMwNy6aw6Yq7q 828w, https://miro.medium.com/v2/resize:fit:1100/0*oKIUMwNy6aw6Yq7q 1100w, https://miro.medium.com/v2/resize:fit:1400/0*oKIUMwNy6aw6Yq7q 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg ko lt c" height="39" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:945/0*oKIUMwNy6aw6Yq7q" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 679.988px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="74d6" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">The result looks like the below: a container repository is visible under repositories.</p><figure class="mt mu mv mw mx lo lg lh paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lp lq ee lr bg ls" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 679.988px; z-index: auto;" tabindex="0"><div class="lg lh na" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1437px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/format:webp/0*8O6CxCn9BICA1MnM 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/0*8O6CxCn9BICA1MnM 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/0*8O6CxCn9BICA1MnM 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/0*8O6CxCn9BICA1MnM 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/0*8O6CxCn9BICA1MnM 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/0*8O6CxCn9BICA1MnM 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/0*8O6CxCn9BICA1MnM 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*8O6CxCn9BICA1MnM 640w, https://miro.medium.com/v2/resize:fit:720/0*8O6CxCn9BICA1MnM 720w, https://miro.medium.com/v2/resize:fit:750/0*8O6CxCn9BICA1MnM 750w, https://miro.medium.com/v2/resize:fit:786/0*8O6CxCn9BICA1MnM 786w, https://miro.medium.com/v2/resize:fit:828/0*8O6CxCn9BICA1MnM 828w, https://miro.medium.com/v2/resize:fit:1100/0*8O6CxCn9BICA1MnM 1100w, https://miro.medium.com/v2/resize:fit:1400/0*8O6CxCn9BICA1MnM 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg ko lt c" height="266" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:945/0*8O6CxCn9BICA1MnM" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 679.988px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="9293" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">You can now start using modules inside your Bicep templates. In the example below, I’m referencing the module stored in the ACR that creates the Azure Virtual Desktop resources.</p><figure class="mt mu mv mw mx lo lg lh paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lp lq ee lr bg ls" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 679.988px; z-index: auto;" tabindex="0"><div class="lg lh nb" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1482px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/format:webp/0*4XG5LU6Q4l2_o6px 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/0*4XG5LU6Q4l2_o6px 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/0*4XG5LU6Q4l2_o6px 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/0*4XG5LU6Q4l2_o6px 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/0*4XG5LU6Q4l2_o6px 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/0*4XG5LU6Q4l2_o6px 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/0*4XG5LU6Q4l2_o6px 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*4XG5LU6Q4l2_o6px 640w, https://miro.medium.com/v2/resize:fit:720/0*4XG5LU6Q4l2_o6px 720w, https://miro.medium.com/v2/resize:fit:750/0*4XG5LU6Q4l2_o6px 750w, https://miro.medium.com/v2/resize:fit:786/0*4XG5LU6Q4l2_o6px 786w, https://miro.medium.com/v2/resize:fit:828/0*4XG5LU6Q4l2_o6px 828w, https://miro.medium.com/v2/resize:fit:1100/0*4XG5LU6Q4l2_o6px 1100w, https://miro.medium.com/v2/resize:fit:1400/0*4XG5LU6Q4l2_o6px 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg ko lt c" height="156" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:945/0*4XG5LU6Q4l2_o6px" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 679.988px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="2c15" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">Today, you already have the ability in VScode to view the source of the module; simply hit F12, and you are provided with the source.</p><figure class="mt mu mv mw mx lo lg lh paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lp lq ee lr bg ls" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 679.988px; z-index: auto;" tabindex="0"><div class="lg lh nc" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 952px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/format:webp/0*S3ezPf1SVlfzEbG7 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/0*S3ezPf1SVlfzEbG7 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/0*S3ezPf1SVlfzEbG7 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/0*S3ezPf1SVlfzEbG7 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/0*S3ezPf1SVlfzEbG7 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/0*S3ezPf1SVlfzEbG7 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/0*S3ezPf1SVlfzEbG7 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*S3ezPf1SVlfzEbG7 640w, https://miro.medium.com/v2/resize:fit:720/0*S3ezPf1SVlfzEbG7 720w, https://miro.medium.com/v2/resize:fit:750/0*S3ezPf1SVlfzEbG7 750w, https://miro.medium.com/v2/resize:fit:786/0*S3ezPf1SVlfzEbG7 786w, https://miro.medium.com/v2/resize:fit:828/0*S3ezPf1SVlfzEbG7 828w, https://miro.medium.com/v2/resize:fit:1100/0*S3ezPf1SVlfzEbG7 1100w, https://miro.medium.com/v2/resize:fit:1400/0*S3ezPf1SVlfzEbG7 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg ko lt c" height="569" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:945/0*S3ezPf1SVlfzEbG7" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 679.988px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="11d5" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">This is, however, the transpiled version based on ARM Templates in JSON. Wouldn’t you rather want to see the Bicep module instead? You now can.</p><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="7875" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">There is an experimental feature called publishSource that you can add to your bicepconfig.json. Afterward, you can add the option — with-source to your publish command.</p><figure class="mt mu mv mw mx lo lg lh paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lp lq ee lr bg ls" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 679.988px; z-index: auto;" tabindex="0"><div class="lg lh nd" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1475px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/format:webp/0*2CCA9_Kk3K78TuTB 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/0*2CCA9_Kk3K78TuTB 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/0*2CCA9_Kk3K78TuTB 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/0*2CCA9_Kk3K78TuTB 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/0*2CCA9_Kk3K78TuTB 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/0*2CCA9_Kk3K78TuTB 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/0*2CCA9_Kk3K78TuTB 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*2CCA9_Kk3K78TuTB 640w, https://miro.medium.com/v2/resize:fit:720/0*2CCA9_Kk3K78TuTB 720w, https://miro.medium.com/v2/resize:fit:750/0*2CCA9_Kk3K78TuTB 750w, https://miro.medium.com/v2/resize:fit:786/0*2CCA9_Kk3K78TuTB 786w, https://miro.medium.com/v2/resize:fit:828/0*2CCA9_Kk3K78TuTB 828w, https://miro.medium.com/v2/resize:fit:1100/0*2CCA9_Kk3K78TuTB 1100w, https://miro.medium.com/v2/resize:fit:1400/0*2CCA9_Kk3K78TuTB 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg ko lt c" height="43" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:945/0*2CCA9_Kk3K78TuTB" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 679.988px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="f51e" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">Based on the header image of this article, what country will I be visiting this month? Reply to this post with your answer to win a copy of my book!</p><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="1f2b" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">When you now press F12 you can see the original Bicep module containing our AVD resources! 💪 When you hover over the file name, you can see the source location, the ACR, module name, and version.</p><figure class="mt mu mv mw mx lo lg lh paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lp lq ee lr bg ls" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 679.988px; z-index: auto;" tabindex="0"><div class="lg lh ne" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1238px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/format:webp/0*fxcHEcljSg2YHOE- 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/0*fxcHEcljSg2YHOE- 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/0*fxcHEcljSg2YHOE- 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/0*fxcHEcljSg2YHOE- 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/0*fxcHEcljSg2YHOE- 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/0*fxcHEcljSg2YHOE- 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/0*fxcHEcljSg2YHOE- 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*fxcHEcljSg2YHOE- 640w, https://miro.medium.com/v2/resize:fit:720/0*fxcHEcljSg2YHOE- 720w, https://miro.medium.com/v2/resize:fit:750/0*fxcHEcljSg2YHOE- 750w, https://miro.medium.com/v2/resize:fit:786/0*fxcHEcljSg2YHOE- 786w, https://miro.medium.com/v2/resize:fit:828/0*fxcHEcljSg2YHOE- 828w, https://miro.medium.com/v2/resize:fit:1100/0*fxcHEcljSg2YHOE- 1100w, https://miro.medium.com/v2/resize:fit:1400/0*fxcHEcljSg2YHOE- 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg ko lt c" height="484" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:945/0*fxcHEcljSg2YHOE-" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 679.988px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="b1fd" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">This makes working with Aure Container Registries a lot more convenient!</p><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="51ee" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">📖 Looking to get started with Bicep? I authored and published the book <a class="af nf" href="https://www.amazon.com/Getting-started-Bicep-Infrastructure-Azure/dp/B098WK3MR7" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">Getting started with Bicep: Infrastructure as code on Azure</a></p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-45484729887843698202024-01-14T09:43:00.003+01:002024-01-14T09:43:52.312+01:00Exporting and importing variables between Bicep files: compileTimeImports<p> <img alt="" class="bg ko lt c" height="410" loading="eager" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*chovpoVuuYDohxrA" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></p><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="19a2" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">Infrastructure as Code (IaC) has revolutionized how we manage and provision IT infrastructure. Azure’s adoption of this concept through Bicep, a domain-specific language, has made it easier and more efficient.</p><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="7707" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">In case you’re (still) wondering what Bicep is, it is an open-source language developed by Microsoft for declaratively deploying Azure resources. It aims to simplify the authoring experience and provide a cleaner syntax compared to ARM templates. Bicep files are transpiled into ARM templates, making it a powerful yet user-friendly tool for Azure deployments.</p><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="980f" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">In this blog, I cover how to use a feature (experimental) that allows you to export and import variables, user-defined functions, and user-defined types.</p><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="a44d" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">It has been in the Bicep builds for some time, but it’s a very useful feature, and I have never published on this before. Before you dive deeper into the functionality of exporting and importing variables between Bicep files, it’s important to highlight that this feature is currently experimental. To use this experimental feature of exporting and importing variables in Bicep, you need to enable it explicitly. This is done by modifying the bicepconfig.json. The configuration to add or modify is compileTimeImports, which should be set to true.</p><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="4462" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">Now consider the Bicep module below. This module deploys a few Azure Virtual Desktop (AVD) resources like a host pool, application group, and workpace.</p><figure class="mt mu mv mw mx lo lg lh paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lp lq ee lr bg ls" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="lg lh ms" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1241px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/format:webp/0*bkzakIOEmV5-DDkL 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/0*bkzakIOEmV5-DDkL 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/0*bkzakIOEmV5-DDkL 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/0*bkzakIOEmV5-DDkL 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/0*bkzakIOEmV5-DDkL 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/0*bkzakIOEmV5-DDkL 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/0*bkzakIOEmV5-DDkL 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*bkzakIOEmV5-DDkL 640w, https://miro.medium.com/v2/resize:fit:720/0*bkzakIOEmV5-DDkL 720w, https://miro.medium.com/v2/resize:fit:750/0*bkzakIOEmV5-DDkL 750w, https://miro.medium.com/v2/resize:fit:786/0*bkzakIOEmV5-DDkL 786w, https://miro.medium.com/v2/resize:fit:828/0*bkzakIOEmV5-DDkL 828w, https://miro.medium.com/v2/resize:fit:1100/0*bkzakIOEmV5-DDkL 1100w, https://miro.medium.com/v2/resize:fit:1400/0*bkzakIOEmV5-DDkL 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg ko lt c" height="431" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*bkzakIOEmV5-DDkL" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="8df5" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">Note that you can use the @export() decorator. This makes the variable ‘prefix’ importable by other Bicep files or Bicep modules. As a result, we reuse the value without declaring it across multiple files. This is a simple example, but you can imagine adding multiple variables or even user-defined functions and user-defined types.</p><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="a1d8" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">You can now use the exported variables in other Bicep files in a couple of different ways. To import a single value, use the import state as shown below. You use the keyword Import, followed by the name of the variable, followed by the source Bicep file. Super easy, right? You can now use the ‘prefix’ variable inside this Bicep file. In this example, we use it in line 23 to generate a name for the network interface.</p><figure class="mt mu mv mw mx lo lg lh paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lp lq ee lr bg ls" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="lg lh my" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1006px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/format:webp/0*MD8vqT-QYNQQ8SHL 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/0*MD8vqT-QYNQQ8SHL 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/0*MD8vqT-QYNQQ8SHL 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/0*MD8vqT-QYNQQ8SHL 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/0*MD8vqT-QYNQQ8SHL 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/0*MD8vqT-QYNQQ8SHL 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/0*MD8vqT-QYNQQ8SHL 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*MD8vqT-QYNQQ8SHL 640w, https://miro.medium.com/v2/resize:fit:720/0*MD8vqT-QYNQQ8SHL 720w, https://miro.medium.com/v2/resize:fit:750/0*MD8vqT-QYNQQ8SHL 750w, https://miro.medium.com/v2/resize:fit:786/0*MD8vqT-QYNQQ8SHL 786w, https://miro.medium.com/v2/resize:fit:828/0*MD8vqT-QYNQQ8SHL 828w, https://miro.medium.com/v2/resize:fit:1100/0*MD8vqT-QYNQQ8SHL 1100w, https://miro.medium.com/v2/resize:fit:1400/0*MD8vqT-QYNQQ8SHL 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg ko lt c" height="696" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*MD8vqT-QYNQQ8SHL" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="25aa" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">If you want to import it using another name or alias, simply use the method below. You can now use the variable by referring to the alias you defined. In this case, ‘i_prefix’.</p><figure class="mt mu mv mw mx lo lg lh paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lp lq ee lr bg ls" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="lg lh mz" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1021px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/format:webp/0*HIDUDkDtVJjRJ85p 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/0*HIDUDkDtVJjRJ85p 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/0*HIDUDkDtVJjRJ85p 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/0*HIDUDkDtVJjRJ85p 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/0*HIDUDkDtVJjRJ85p 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/0*HIDUDkDtVJjRJ85p 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/0*HIDUDkDtVJjRJ85p 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*HIDUDkDtVJjRJ85p 640w, https://miro.medium.com/v2/resize:fit:720/0*HIDUDkDtVJjRJ85p 720w, https://miro.medium.com/v2/resize:fit:750/0*HIDUDkDtVJjRJ85p 750w, https://miro.medium.com/v2/resize:fit:786/0*HIDUDkDtVJjRJ85p 786w, https://miro.medium.com/v2/resize:fit:828/0*HIDUDkDtVJjRJ85p 828w, https://miro.medium.com/v2/resize:fit:1100/0*HIDUDkDtVJjRJ85p 1100w, https://miro.medium.com/v2/resize:fit:1400/0*HIDUDkDtVJjRJ85p 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg ko lt c" height="686" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*HIDUDkDtVJjRJ85p" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="ca74" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">You can, of course, also import multiple variables at once using the code above by referring to them all individually.</p><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="f15b" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">Finally, an even easier way is to import all exported variables by using the ‘*’ sign as shown below. You can now use ‘imported’ as the name and specify the variable after the ‘.’ sign, and the Bicep VSCode extension even picks up on this, providing you with an auto-complete.💪</p><figure class="mt mu mv mw mx lo lg lh paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lp lq ee lr bg ls" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="lg lh na" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1070px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/format:webp/0*5SPcObdXg4_2BdRF 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/0*5SPcObdXg4_2BdRF 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/0*5SPcObdXg4_2BdRF 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/0*5SPcObdXg4_2BdRF 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/0*5SPcObdXg4_2BdRF 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/0*5SPcObdXg4_2BdRF 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/0*5SPcObdXg4_2BdRF 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*5SPcObdXg4_2BdRF 640w, https://miro.medium.com/v2/resize:fit:720/0*5SPcObdXg4_2BdRF 720w, https://miro.medium.com/v2/resize:fit:750/0*5SPcObdXg4_2BdRF 750w, https://miro.medium.com/v2/resize:fit:786/0*5SPcObdXg4_2BdRF 786w, https://miro.medium.com/v2/resize:fit:828/0*5SPcObdXg4_2BdRF 828w, https://miro.medium.com/v2/resize:fit:1100/0*5SPcObdXg4_2BdRF 1100w, https://miro.medium.com/v2/resize:fit:1400/0*5SPcObdXg4_2BdRF 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg ko lt c" height="655" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*5SPcObdXg4_2BdRF" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="283b" style="background-color: white; box-sizing: inherit; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;"><span style="color: #242424;">The great thing is you can also import inside .Bicepparam files in the same way. In the example below, I import the values and use them as values for my parameter files. If you are new to Bicepparm files, follow </span><a class="af nb" href="https://www.linkedin.com/feed/update/urn:li:activity:7074992717021224960/" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">a previous article where I explain how this works</a>.</p><figure class="mt mu mv mw mx lo lg lh paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lp lq ee lr bg ls" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="lg lh nc" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 999px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/format:webp/0*ZMIXwhA7Tjm28mxn 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/0*ZMIXwhA7Tjm28mxn 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/0*ZMIXwhA7Tjm28mxn 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/0*ZMIXwhA7Tjm28mxn 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/0*ZMIXwhA7Tjm28mxn 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/0*ZMIXwhA7Tjm28mxn 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/0*ZMIXwhA7Tjm28mxn 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*ZMIXwhA7Tjm28mxn 640w, https://miro.medium.com/v2/resize:fit:720/0*ZMIXwhA7Tjm28mxn 720w, https://miro.medium.com/v2/resize:fit:750/0*ZMIXwhA7Tjm28mxn 750w, https://miro.medium.com/v2/resize:fit:786/0*ZMIXwhA7Tjm28mxn 786w, https://miro.medium.com/v2/resize:fit:828/0*ZMIXwhA7Tjm28mxn 828w, https://miro.medium.com/v2/resize:fit:1100/0*ZMIXwhA7Tjm28mxn 1100w, https://miro.medium.com/v2/resize:fit:1400/0*ZMIXwhA7Tjm28mxn 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg ko lt c" height="338" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*ZMIXwhA7Tjm28mxn" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="5a0d" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;">It might seem like a simple feature, but to me, it is a super welcome addition to the language. It avoids declaring certain variables or types multiple times and improves reusing code. I like it, and the possibilities and use cases are endless! What do you think?</p><p class="pw-post-body-paragraph lu lv fr lw b lx ly lz ma mb mc md me mf mg mh mi mj mk ml mm mn mo mp mq mr fk bj" data-selectable-paragraph="" id="5aaf" style="background-color: white; box-sizing: inherit; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2.14em 0px -0.46em; word-break: break-word;"><span style="color: #242424;">📖 Looking to get started with Bicep? I authored and published the book </span><a class="af nb" href="https://www.amazon.com/Getting-started-Bicep-Infrastructure-Azure/dp/B098WK3MR7" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank"><span style="color: #2b00fe;">Getting started with Bicep: Infrastructure as code on Azure</span></a></p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-15203583270864579652023-07-30T12:08:00.000+02:002023-07-30T12:08:01.942+02:00Bicep Deployment Pane: Validate, What-If and Deploy at your fingertips!<p> <img alt="" class="bg lk ll c" height="362" loading="eager" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/1*QkxggJIQpwekInH8Sdz09g.png" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></p><h1 class="lm ln fo be lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj bj" data-selectable-paragraph="" id="7666" style="background-color: white; box-sizing: inherit; color: #242424; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 24px; letter-spacing: -0.016em; line-height: 30px; margin: 1.95em 0px -0.28em;">Introduction</h1><p class="pw-post-body-paragraph mk ml fo mm b mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh fh bj" data-selectable-paragraph="" id="f1d8" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">The Bicep VS Code extension keeps on improving. Besides validation, intellisense, code navigation, generating param files, the visualizer and much more, I tested a new experimental feature this weekend. The deployment pane!</p><p class="pw-post-body-paragraph mk ml fo mm b mn ni mp mq mr nj mt mu mv nk mx my mz nl nb nc nd nm nf ng nh fh bj" data-selectable-paragraph="" id="5293" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">I could not have thought about a better name for this feature as it literally is a pane in VSCode that helps you with the deployment of a Bicep template.</p><p class="pw-post-body-paragraph mk ml fo mm b mn ni mp mq mr nj mt mu mv nk mx my mz nl nb nc nd nm nf ng nh fh bj" data-selectable-paragraph="" id="4381" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">You can of course already easily perform deployment, validation, and what-If using PowerShell and the AZ CLI. Even a deployment can also be kicked off directly from the VSCode by performing a right-click on any Bicep file as shown below.</p><figure class="no np nq nr ns lf kx ky paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lg lh eb li bg lj" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kx ky nn" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1090px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*cbCqFrJOdrPxGIyv 640w, https://miro.medium.com/v2/resize:fit:720/0*cbCqFrJOdrPxGIyv 720w, https://miro.medium.com/v2/resize:fit:750/0*cbCqFrJOdrPxGIyv 750w, https://miro.medium.com/v2/resize:fit:786/0*cbCqFrJOdrPxGIyv 786w, https://miro.medium.com/v2/resize:fit:828/0*cbCqFrJOdrPxGIyv 828w, https://miro.medium.com/v2/resize:fit:1100/0*cbCqFrJOdrPxGIyv 1100w, https://miro.medium.com/v2/resize:fit:1400/0*cbCqFrJOdrPxGIyv 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*cbCqFrJOdrPxGIyv 640w, https://miro.medium.com/v2/resize:fit:720/0*cbCqFrJOdrPxGIyv 720w, https://miro.medium.com/v2/resize:fit:750/0*cbCqFrJOdrPxGIyv 750w, https://miro.medium.com/v2/resize:fit:786/0*cbCqFrJOdrPxGIyv 786w, https://miro.medium.com/v2/resize:fit:828/0*cbCqFrJOdrPxGIyv 828w, https://miro.medium.com/v2/resize:fit:1100/0*cbCqFrJOdrPxGIyv 1100w, https://miro.medium.com/v2/resize:fit:1400/0*cbCqFrJOdrPxGIyv 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lk ll c" height="186" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*cbCqFrJOdrPxGIyv" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph mk ml fo mm b mn ni mp mq mr nj mt mu mv nk mx my mz nl nb nc nd nm nf ng nh fh bj" data-selectable-paragraph="" id="845d" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">This article walks through the Bicep Deployment Pane feature, providing Validate, What-If and Deploy at your fingertips in VSCode!</p><h1 class="lm ln fo be lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj bj" data-selectable-paragraph="" id="fcaa" style="background-color: white; box-sizing: inherit; color: #242424; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 24px; letter-spacing: -0.016em; line-height: 30px; margin: 1.95em 0px -0.28em;">Bicep Deployments pane example</h1><p class="pw-post-body-paragraph mk ml fo mm b mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh fh bj" data-selectable-paragraph="" id="69dd" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">Lets consider the Bicep template as shown below. If you have been following my previous blog posts, this will look familiar. It’s a simple Bicep template that deploys an Azure Virtual Desktop (AVD) host pool.</p><figure class="no np nq nr ns lf kx ky paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lg lh eb li bg lj" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kx ky nt" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1199px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*ENZeA0ZY6MPNZDIj 640w, https://miro.medium.com/v2/resize:fit:720/0*ENZeA0ZY6MPNZDIj 720w, https://miro.medium.com/v2/resize:fit:750/0*ENZeA0ZY6MPNZDIj 750w, https://miro.medium.com/v2/resize:fit:786/0*ENZeA0ZY6MPNZDIj 786w, https://miro.medium.com/v2/resize:fit:828/0*ENZeA0ZY6MPNZDIj 828w, https://miro.medium.com/v2/resize:fit:1100/0*ENZeA0ZY6MPNZDIj 1100w, https://miro.medium.com/v2/resize:fit:1400/0*ENZeA0ZY6MPNZDIj 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*ENZeA0ZY6MPNZDIj 640w, https://miro.medium.com/v2/resize:fit:720/0*ENZeA0ZY6MPNZDIj 720w, https://miro.medium.com/v2/resize:fit:750/0*ENZeA0ZY6MPNZDIj 750w, https://miro.medium.com/v2/resize:fit:786/0*ENZeA0ZY6MPNZDIj 786w, https://miro.medium.com/v2/resize:fit:828/0*ENZeA0ZY6MPNZDIj 828w, https://miro.medium.com/v2/resize:fit:1100/0*ENZeA0ZY6MPNZDIj 1100w, https://miro.medium.com/v2/resize:fit:1400/0*ENZeA0ZY6MPNZDIj 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lk ll c" height="582" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*ENZeA0ZY6MPNZDIj" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph mk ml fo mm b mn ni mp mq mr nj mt mu mv nk mx my mz nl nb nc nd nm nf ng nh fh bj" data-selectable-paragraph="" id="2878" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Let’s imagine I now want to deploy this to Azure. Before deploying it however, I want to validate my template first to make sure the ARM engine is able to process it, and let’s also perform a What-If first.</p><p class="pw-post-body-paragraph mk ml fo mm b mn ni mp mq mr nj mt mu mv nk mx my mz nl nb nc nd nm nf ng nh fh bj" data-selectable-paragraph="" id="5759" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">In case you’re not familiar with What-If, it allows you to preview the potential changes that will occur in the Azure resources as part of your template before actually applying those changes. It’s a great way to assess the impact of your intended deployment actions without making any actual modifications to the resources.</p><h1 class="lm ln fo be lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj bj" data-selectable-paragraph="" id="1f3e" style="background-color: white; box-sizing: inherit; color: #242424; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 24px; letter-spacing: -0.016em; line-height: 30px; margin: 1.95em 0px -0.28em;">How to open the Bicep Deployment Pane</h1><p class="pw-post-body-paragraph mk ml fo mm b mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh fh bj" data-selectable-paragraph="" id="6331" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">There are 2 easy ways to open the Bicep Deployment pane. Right-click any Bicep template and select ‘Show Deployment Pane’ or choose to open it to side. The latter is my favorite option.</p><figure class="no np nq nr ns lf kx ky paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lg lh eb li bg lj" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kx ky nu" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1052px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*A7OLlDU5SRExjc-7 640w, https://miro.medium.com/v2/resize:fit:720/0*A7OLlDU5SRExjc-7 720w, https://miro.medium.com/v2/resize:fit:750/0*A7OLlDU5SRExjc-7 750w, https://miro.medium.com/v2/resize:fit:786/0*A7OLlDU5SRExjc-7 786w, https://miro.medium.com/v2/resize:fit:828/0*A7OLlDU5SRExjc-7 828w, https://miro.medium.com/v2/resize:fit:1100/0*A7OLlDU5SRExjc-7 1100w, https://miro.medium.com/v2/resize:fit:1400/0*A7OLlDU5SRExjc-7 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*A7OLlDU5SRExjc-7 640w, https://miro.medium.com/v2/resize:fit:720/0*A7OLlDU5SRExjc-7 720w, https://miro.medium.com/v2/resize:fit:750/0*A7OLlDU5SRExjc-7 750w, https://miro.medium.com/v2/resize:fit:786/0*A7OLlDU5SRExjc-7 786w, https://miro.medium.com/v2/resize:fit:828/0*A7OLlDU5SRExjc-7 828w, https://miro.medium.com/v2/resize:fit:1100/0*A7OLlDU5SRExjc-7 1100w, https://miro.medium.com/v2/resize:fit:1400/0*A7OLlDU5SRExjc-7 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lk ll c" height="179" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*A7OLlDU5SRExjc-7" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph mk ml fo mm b mn ni mp mq mr nj mt mu mv nk mx my mz nl nb nc nd nm nf ng nh fh bj" data-selectable-paragraph="" id="1012" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Or, with any Bicep template open, click on this new Cloud icon at the upper-right corner of the VSCode editor.</p><figure class="no np nq nr ns lf kx ky paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="kx ky nv" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 452px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 452px" srcset="https://miro.medium.com/v2/resize:fit:640/0*aI2tux4oAyJWwBIl 640w, https://miro.medium.com/v2/resize:fit:720/0*aI2tux4oAyJWwBIl 720w, https://miro.medium.com/v2/resize:fit:750/0*aI2tux4oAyJWwBIl 750w, https://miro.medium.com/v2/resize:fit:786/0*aI2tux4oAyJWwBIl 786w, https://miro.medium.com/v2/resize:fit:828/0*aI2tux4oAyJWwBIl 828w, https://miro.medium.com/v2/resize:fit:1100/0*aI2tux4oAyJWwBIl 1100w, https://miro.medium.com/v2/resize:fit:904/0*aI2tux4oAyJWwBIl 904w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 452px" srcset="https://miro.medium.com/v2/resize:fit:640/0*aI2tux4oAyJWwBIl 640w, https://miro.medium.com/v2/resize:fit:720/0*aI2tux4oAyJWwBIl 720w, https://miro.medium.com/v2/resize:fit:750/0*aI2tux4oAyJWwBIl 750w, https://miro.medium.com/v2/resize:fit:786/0*aI2tux4oAyJWwBIl 786w, https://miro.medium.com/v2/resize:fit:828/0*aI2tux4oAyJWwBIl 828w, https://miro.medium.com/v2/resize:fit:1100/0*aI2tux4oAyJWwBIl 1100w, https://miro.medium.com/v2/resize:fit:904/0*aI2tux4oAyJWwBIl 904w" style="box-sizing: inherit;"></source><img alt="" class="bg lk ll c" height="245" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:678/0*aI2tux4oAyJWwBIl" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 452px;" width="452" /></picture></div></figure><p class="pw-post-body-paragraph mk ml fo mm b mn ni mp mq mr nj mt mu mv nk mx my mz nl nb nc nd nm nf ng nh fh bj" data-selectable-paragraph="" id="c1a6" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Below is what you are presented with. I’ve zoomed out a little to give you a better idea of the overall experience, and we’ll zoom into each section of the deployment pane now as well.</p><figure class="no np nq nr ns lf kx ky paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lg lh eb li bg lj" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kx ky nw" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1488px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*wRRQiJOCqMbCAxPg 640w, https://miro.medium.com/v2/resize:fit:720/0*wRRQiJOCqMbCAxPg 720w, https://miro.medium.com/v2/resize:fit:750/0*wRRQiJOCqMbCAxPg 750w, https://miro.medium.com/v2/resize:fit:786/0*wRRQiJOCqMbCAxPg 786w, https://miro.medium.com/v2/resize:fit:828/0*wRRQiJOCqMbCAxPg 828w, https://miro.medium.com/v2/resize:fit:1100/0*wRRQiJOCqMbCAxPg 1100w, https://miro.medium.com/v2/resize:fit:1400/0*wRRQiJOCqMbCAxPg 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*wRRQiJOCqMbCAxPg 640w, https://miro.medium.com/v2/resize:fit:720/0*wRRQiJOCqMbCAxPg 720w, https://miro.medium.com/v2/resize:fit:750/0*wRRQiJOCqMbCAxPg 750w, https://miro.medium.com/v2/resize:fit:786/0*wRRQiJOCqMbCAxPg 786w, https://miro.medium.com/v2/resize:fit:828/0*wRRQiJOCqMbCAxPg 828w, https://miro.medium.com/v2/resize:fit:1100/0*wRRQiJOCqMbCAxPg 1100w, https://miro.medium.com/v2/resize:fit:1400/0*wRRQiJOCqMbCAxPg 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lk ll c" height="389" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*wRRQiJOCqMbCAxPg" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><h1 class="lm ln fo be lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj bj" data-selectable-paragraph="" id="9d91" style="background-color: white; box-sizing: inherit; color: #242424; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 24px; letter-spacing: -0.016em; line-height: 30px; margin: 1.95em 0px -0.28em;">Selecting a deployment scope</h1><p class="pw-post-body-paragraph mk ml fo mm b mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh fh bj" data-selectable-paragraph="" id="4d24" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">Before being able to perform a what-if, validate, or deploy you first need to define the deployment scope. Click ‘Pick Scope’ to start defining the deployment scope. After authentication, you are able to select the subscription and the resource group of your desired deployment.</p><figure class="no np nq nr ns lf kx ky paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lg lh eb li bg lj" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kx ky nx" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1738px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*U2a80sdiC40lZCGy 640w, https://miro.medium.com/v2/resize:fit:720/0*U2a80sdiC40lZCGy 720w, https://miro.medium.com/v2/resize:fit:750/0*U2a80sdiC40lZCGy 750w, https://miro.medium.com/v2/resize:fit:786/0*U2a80sdiC40lZCGy 786w, https://miro.medium.com/v2/resize:fit:828/0*U2a80sdiC40lZCGy 828w, https://miro.medium.com/v2/resize:fit:1100/0*U2a80sdiC40lZCGy 1100w, https://miro.medium.com/v2/resize:fit:1400/0*U2a80sdiC40lZCGy 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*U2a80sdiC40lZCGy 640w, https://miro.medium.com/v2/resize:fit:720/0*U2a80sdiC40lZCGy 720w, https://miro.medium.com/v2/resize:fit:750/0*U2a80sdiC40lZCGy 750w, https://miro.medium.com/v2/resize:fit:786/0*U2a80sdiC40lZCGy 786w, https://miro.medium.com/v2/resize:fit:828/0*U2a80sdiC40lZCGy 828w, https://miro.medium.com/v2/resize:fit:1100/0*U2a80sdiC40lZCGy 1100w, https://miro.medium.com/v2/resize:fit:1400/0*U2a80sdiC40lZCGy 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lk ll c" height="220" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*U2a80sdiC40lZCGy" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><h1 class="lm ln fo be lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj bj" data-selectable-paragraph="" id="9428" style="background-color: white; box-sizing: inherit; color: #242424; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 24px; letter-spacing: -0.016em; line-height: 30px; margin: 1.95em 0px -0.28em;">Defining parameter values</h1><p class="pw-post-body-paragraph mk ml fo mm b mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh fh bj" data-selectable-paragraph="" id="a49e" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">Next, define the values for the parameters of the Bicep template. In this example, a template is used that contains a lot of default values, those are prepopulated in this section and you are able to modify those at this point and provide values for any parameters that are declared without default values. Also note that Boolean values are nicely shown as a checkbox, and parameters that have allowed values defined, are presented with dropdown boxes to easily perform a selection.</p><figure class="no np nq nr ns lf kx ky paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lg lh eb li bg lj" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kx ky ny" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1141px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*GRaNHUp4CrLMHxNo 640w, https://miro.medium.com/v2/resize:fit:720/0*GRaNHUp4CrLMHxNo 720w, https://miro.medium.com/v2/resize:fit:750/0*GRaNHUp4CrLMHxNo 750w, https://miro.medium.com/v2/resize:fit:786/0*GRaNHUp4CrLMHxNo 786w, https://miro.medium.com/v2/resize:fit:828/0*GRaNHUp4CrLMHxNo 828w, https://miro.medium.com/v2/resize:fit:1100/0*GRaNHUp4CrLMHxNo 1100w, https://miro.medium.com/v2/resize:fit:1400/0*GRaNHUp4CrLMHxNo 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*GRaNHUp4CrLMHxNo 640w, https://miro.medium.com/v2/resize:fit:720/0*GRaNHUp4CrLMHxNo 720w, https://miro.medium.com/v2/resize:fit:750/0*GRaNHUp4CrLMHxNo 750w, https://miro.medium.com/v2/resize:fit:786/0*GRaNHUp4CrLMHxNo 786w, https://miro.medium.com/v2/resize:fit:828/0*GRaNHUp4CrLMHxNo 828w, https://miro.medium.com/v2/resize:fit:1100/0*GRaNHUp4CrLMHxNo 1100w, https://miro.medium.com/v2/resize:fit:1400/0*GRaNHUp4CrLMHxNo 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lk ll c" height="613" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*GRaNHUp4CrLMHxNo" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph mk ml fo mm b mn ni mp mq mr nj mt mu mv nk mx my mz nl nb nc nd nm nf ng nh fh bj" data-selectable-paragraph="" id="0709" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">You can also point to a parameters file instead by clicking ‘Pick Parameters File’. Once a parameters file is selected, the deployment pane adapts to this as shown below. From this point, you are still able to modify the values by clicking ‘Edit Parameters’.</p><figure class="no np nq nr ns lf kx ky paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lg lh eb li bg lj" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kx ky nz" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 826px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*IdNf0rY_HVocV-eL 640w, https://miro.medium.com/v2/resize:fit:720/0*IdNf0rY_HVocV-eL 720w, https://miro.medium.com/v2/resize:fit:750/0*IdNf0rY_HVocV-eL 750w, https://miro.medium.com/v2/resize:fit:786/0*IdNf0rY_HVocV-eL 786w, https://miro.medium.com/v2/resize:fit:828/0*IdNf0rY_HVocV-eL 828w, https://miro.medium.com/v2/resize:fit:1100/0*IdNf0rY_HVocV-eL 1100w, https://miro.medium.com/v2/resize:fit:1400/0*IdNf0rY_HVocV-eL 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*IdNf0rY_HVocV-eL 640w, https://miro.medium.com/v2/resize:fit:720/0*IdNf0rY_HVocV-eL 720w, https://miro.medium.com/v2/resize:fit:750/0*IdNf0rY_HVocV-eL 750w, https://miro.medium.com/v2/resize:fit:786/0*IdNf0rY_HVocV-eL 786w, https://miro.medium.com/v2/resize:fit:828/0*IdNf0rY_HVocV-eL 828w, https://miro.medium.com/v2/resize:fit:1100/0*IdNf0rY_HVocV-eL 1100w, https://miro.medium.com/v2/resize:fit:1400/0*IdNf0rY_HVocV-eL 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lk ll c" height="671" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*IdNf0rY_HVocV-eL" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph mk ml fo mm b mn ni mp mq mr nj mt mu mv nk mx my mz nl nb nc nd nm nf ng nh fh bj" data-selectable-paragraph="" id="3514" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Before moving on the next section containing deployment actions, the deployment pane also prevents you from continuing with deployment actions in case the template contains errors.</p><figure class="no np nq nr ns lf kx ky paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lg lh eb li bg lj" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kx ky oa" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1648px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*JL6k2Fk-xJaCgBRh 640w, https://miro.medium.com/v2/resize:fit:720/0*JL6k2Fk-xJaCgBRh 720w, https://miro.medium.com/v2/resize:fit:750/0*JL6k2Fk-xJaCgBRh 750w, https://miro.medium.com/v2/resize:fit:786/0*JL6k2Fk-xJaCgBRh 786w, https://miro.medium.com/v2/resize:fit:828/0*JL6k2Fk-xJaCgBRh 828w, https://miro.medium.com/v2/resize:fit:1100/0*JL6k2Fk-xJaCgBRh 1100w, https://miro.medium.com/v2/resize:fit:1400/0*JL6k2Fk-xJaCgBRh 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*JL6k2Fk-xJaCgBRh 640w, https://miro.medium.com/v2/resize:fit:720/0*JL6k2Fk-xJaCgBRh 720w, https://miro.medium.com/v2/resize:fit:750/0*JL6k2Fk-xJaCgBRh 750w, https://miro.medium.com/v2/resize:fit:786/0*JL6k2Fk-xJaCgBRh 786w, https://miro.medium.com/v2/resize:fit:828/0*JL6k2Fk-xJaCgBRh 828w, https://miro.medium.com/v2/resize:fit:1100/0*JL6k2Fk-xJaCgBRh 1100w, https://miro.medium.com/v2/resize:fit:1400/0*JL6k2Fk-xJaCgBRh 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lk ll c" height="358" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*JL6k2Fk-xJaCgBRh" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph mk ml fo mm b mn ni mp mq mr nj mt mu mv nk mx my mz nl nb nc nd nm nf ng nh fh bj" data-selectable-paragraph="" id="905d" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Furthermore, in case you change a value you can also easily revert back to the default value by selecting ‘Reset to default’.</p><figure class="no np nq nr ns lf kx ky paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="kx ky ob" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 441px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 441px" srcset="https://miro.medium.com/v2/resize:fit:640/0*7cRmNBEB2SZSFekt 640w, https://miro.medium.com/v2/resize:fit:720/0*7cRmNBEB2SZSFekt 720w, https://miro.medium.com/v2/resize:fit:750/0*7cRmNBEB2SZSFekt 750w, https://miro.medium.com/v2/resize:fit:786/0*7cRmNBEB2SZSFekt 786w, https://miro.medium.com/v2/resize:fit:828/0*7cRmNBEB2SZSFekt 828w, https://miro.medium.com/v2/resize:fit:1100/0*7cRmNBEB2SZSFekt 1100w, https://miro.medium.com/v2/resize:fit:882/0*7cRmNBEB2SZSFekt 882w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 441px" srcset="https://miro.medium.com/v2/resize:fit:640/0*7cRmNBEB2SZSFekt 640w, https://miro.medium.com/v2/resize:fit:720/0*7cRmNBEB2SZSFekt 720w, https://miro.medium.com/v2/resize:fit:750/0*7cRmNBEB2SZSFekt 750w, https://miro.medium.com/v2/resize:fit:786/0*7cRmNBEB2SZSFekt 786w, https://miro.medium.com/v2/resize:fit:828/0*7cRmNBEB2SZSFekt 828w, https://miro.medium.com/v2/resize:fit:1100/0*7cRmNBEB2SZSFekt 1100w, https://miro.medium.com/v2/resize:fit:882/0*7cRmNBEB2SZSFekt 882w" style="box-sizing: inherit;"></source><img alt="" class="bg lk ll c" height="163" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:662/0*7cRmNBEB2SZSFekt" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 441px;" width="441" /></picture></div></figure><h1 class="lm ln fo be lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj bj" data-selectable-paragraph="" id="0ffd" style="background-color: white; box-sizing: inherit; color: #242424; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 24px; letter-spacing: -0.016em; line-height: 30px; margin: 1.95em 0px -0.28em;">Validate, What-if, and deploy!</h1><p class="pw-post-body-paragraph mk ml fo mm b mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh fh bj" data-selectable-paragraph="" id="c736" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">Let’s move to the action section and cover the options to perform a what-if, validate, and deploy action from within the deployment pane.</p><p class="pw-post-body-paragraph mk ml fo mm b mn ni mp mq mr nj mt mu mv nk mx my mz nl nb nc nd nm nf ng nh fh bj" data-selectable-paragraph="" id="a89d" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Click Validate to perform a validation of the template. Amongst another checks, the validate option looks at whether the declared variables and parameters are all used, ensures that nothing is returned from the template that might be sensitive, and that no hard-coded values are used.</p><p class="pw-post-body-paragraph mk ml fo mm b mn ni mp mq mr nj mt mu mv nk mx my mz nl nb nc nd nm nf ng nh fh bj" data-selectable-paragraph="" id="1277" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">In this case the template is validated and shows the result succeeded.</p><figure class="no np nq nr ns lf kx ky paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lg lh eb li bg lj" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kx ky oc" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 997px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*W3gU_exGHFwR38Rc 640w, https://miro.medium.com/v2/resize:fit:720/0*W3gU_exGHFwR38Rc 720w, https://miro.medium.com/v2/resize:fit:750/0*W3gU_exGHFwR38Rc 750w, https://miro.medium.com/v2/resize:fit:786/0*W3gU_exGHFwR38Rc 786w, https://miro.medium.com/v2/resize:fit:828/0*W3gU_exGHFwR38Rc 828w, https://miro.medium.com/v2/resize:fit:1100/0*W3gU_exGHFwR38Rc 1100w, https://miro.medium.com/v2/resize:fit:1400/0*W3gU_exGHFwR38Rc 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*W3gU_exGHFwR38Rc 640w, https://miro.medium.com/v2/resize:fit:720/0*W3gU_exGHFwR38Rc 720w, https://miro.medium.com/v2/resize:fit:750/0*W3gU_exGHFwR38Rc 750w, https://miro.medium.com/v2/resize:fit:786/0*W3gU_exGHFwR38Rc 786w, https://miro.medium.com/v2/resize:fit:828/0*W3gU_exGHFwR38Rc 828w, https://miro.medium.com/v2/resize:fit:1100/0*W3gU_exGHFwR38Rc 1100w, https://miro.medium.com/v2/resize:fit:1400/0*W3gU_exGHFwR38Rc 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lk ll c" height="250" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*W3gU_exGHFwR38Rc" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph mk ml fo mm b mn ni mp mq mr nj mt mu mv nk mx my mz nl nb nc nd nm nf ng nh fh bj" data-selectable-paragraph="" id="243b" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">If we introduce a parameter in the template that is not being used. The validate step point this out and the option ‘Show JSON’ allows you to get more details on the location of the error.</p><figure class="no np nq nr ns lf kx ky paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lg lh eb li bg lj" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kx ky od" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 949px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*itBvDkTrDqCgROXA 640w, https://miro.medium.com/v2/resize:fit:720/0*itBvDkTrDqCgROXA 720w, https://miro.medium.com/v2/resize:fit:750/0*itBvDkTrDqCgROXA 750w, https://miro.medium.com/v2/resize:fit:786/0*itBvDkTrDqCgROXA 786w, https://miro.medium.com/v2/resize:fit:828/0*itBvDkTrDqCgROXA 828w, https://miro.medium.com/v2/resize:fit:1100/0*itBvDkTrDqCgROXA 1100w, https://miro.medium.com/v2/resize:fit:1400/0*itBvDkTrDqCgROXA 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*itBvDkTrDqCgROXA 640w, https://miro.medium.com/v2/resize:fit:720/0*itBvDkTrDqCgROXA 720w, https://miro.medium.com/v2/resize:fit:750/0*itBvDkTrDqCgROXA 750w, https://miro.medium.com/v2/resize:fit:786/0*itBvDkTrDqCgROXA 786w, https://miro.medium.com/v2/resize:fit:828/0*itBvDkTrDqCgROXA 828w, https://miro.medium.com/v2/resize:fit:1100/0*itBvDkTrDqCgROXA 1100w, https://miro.medium.com/v2/resize:fit:1400/0*itBvDkTrDqCgROXA 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lk ll c" height="738" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*itBvDkTrDqCgROXA" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph mk ml fo mm b mn ni mp mq mr nj mt mu mv nk mx my mz nl nb nc nd nm nf ng nh fh bj" data-selectable-paragraph="" id="5c09" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Next, you can run a what-if directly from the deployment pane. This performs the same actions when using -WhatIf in the PowerShell CmdLet New-AzResourceGroupDeployment, or when adding what-if to the AZ CLI command.</p><p class="pw-post-body-paragraph mk ml fo mm b mn ni mp mq mr nj mt mu mv nk mx my mz nl nb nc nd nm nf ng nh fh bj" data-selectable-paragraph="" id="fafd" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">The deployment pane shows the result of the what-if command, in this case indicating a new resource will be created.</p><figure class="no np nq nr ns lf kx ky paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lg lh eb li bg lj" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kx ky nw" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1488px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*qhSj5tPO4b_cSRa0 640w, https://miro.medium.com/v2/resize:fit:720/0*qhSj5tPO4b_cSRa0 720w, https://miro.medium.com/v2/resize:fit:750/0*qhSj5tPO4b_cSRa0 750w, https://miro.medium.com/v2/resize:fit:786/0*qhSj5tPO4b_cSRa0 786w, https://miro.medium.com/v2/resize:fit:828/0*qhSj5tPO4b_cSRa0 828w, https://miro.medium.com/v2/resize:fit:1100/0*qhSj5tPO4b_cSRa0 1100w, https://miro.medium.com/v2/resize:fit:1400/0*qhSj5tPO4b_cSRa0 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*qhSj5tPO4b_cSRa0 640w, https://miro.medium.com/v2/resize:fit:720/0*qhSj5tPO4b_cSRa0 720w, https://miro.medium.com/v2/resize:fit:750/0*qhSj5tPO4b_cSRa0 750w, https://miro.medium.com/v2/resize:fit:786/0*qhSj5tPO4b_cSRa0 786w, https://miro.medium.com/v2/resize:fit:828/0*qhSj5tPO4b_cSRa0 828w, https://miro.medium.com/v2/resize:fit:1100/0*qhSj5tPO4b_cSRa0 1100w, https://miro.medium.com/v2/resize:fit:1400/0*qhSj5tPO4b_cSRa0 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lk ll c" height="387" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*qhSj5tPO4b_cSRa0" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph mk ml fo mm b mn ni mp mq mr nj mt mu mv nk mx my mz nl nb nc nd nm nf ng nh fh bj" data-selectable-paragraph="" id="b8cb" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Not such an exciting What-If result of course, but if we would for example make some changes in a subsequent deployment, the What-If result becomes more interesting and shows the changes that would be applied if the template was to be deployed.</p><figure class="no np nq nr ns lf kx ky paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lg lh eb li bg lj" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kx ky nw" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1488px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*gboACQl8aynCiX10 640w, https://miro.medium.com/v2/resize:fit:720/0*gboACQl8aynCiX10 720w, https://miro.medium.com/v2/resize:fit:750/0*gboACQl8aynCiX10 750w, https://miro.medium.com/v2/resize:fit:786/0*gboACQl8aynCiX10 786w, https://miro.medium.com/v2/resize:fit:828/0*gboACQl8aynCiX10 828w, https://miro.medium.com/v2/resize:fit:1100/0*gboACQl8aynCiX10 1100w, https://miro.medium.com/v2/resize:fit:1400/0*gboACQl8aynCiX10 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*gboACQl8aynCiX10 640w, https://miro.medium.com/v2/resize:fit:720/0*gboACQl8aynCiX10 720w, https://miro.medium.com/v2/resize:fit:750/0*gboACQl8aynCiX10 750w, https://miro.medium.com/v2/resize:fit:786/0*gboACQl8aynCiX10 786w, https://miro.medium.com/v2/resize:fit:828/0*gboACQl8aynCiX10 828w, https://miro.medium.com/v2/resize:fit:1100/0*gboACQl8aynCiX10 1100w, https://miro.medium.com/v2/resize:fit:1400/0*gboACQl8aynCiX10 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lk ll c" height="410" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*gboACQl8aynCiX10" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph mk ml fo mm b mn ni mp mq mr nj mt mu mv nk mx my mz nl nb nc nd nm nf ng nh fh bj" data-selectable-paragraph="" id="56cd" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">And finally, when clicking Deploy, the Bicep template is deployed to Azure, and the result including the defined output are also shown in the deployment pane!</p><figure class="no np nq nr ns lf kx ky paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lg lh eb li bg lj" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kx ky nw" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1488px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*Qih9-rjCkdfQHYrf 640w, https://miro.medium.com/v2/resize:fit:720/0*Qih9-rjCkdfQHYrf 720w, https://miro.medium.com/v2/resize:fit:750/0*Qih9-rjCkdfQHYrf 750w, https://miro.medium.com/v2/resize:fit:786/0*Qih9-rjCkdfQHYrf 786w, https://miro.medium.com/v2/resize:fit:828/0*Qih9-rjCkdfQHYrf 828w, https://miro.medium.com/v2/resize:fit:1100/0*Qih9-rjCkdfQHYrf 1100w, https://miro.medium.com/v2/resize:fit:1400/0*Qih9-rjCkdfQHYrf 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*Qih9-rjCkdfQHYrf 640w, https://miro.medium.com/v2/resize:fit:720/0*Qih9-rjCkdfQHYrf 720w, https://miro.medium.com/v2/resize:fit:750/0*Qih9-rjCkdfQHYrf 750w, https://miro.medium.com/v2/resize:fit:786/0*Qih9-rjCkdfQHYrf 786w, https://miro.medium.com/v2/resize:fit:828/0*Qih9-rjCkdfQHYrf 828w, https://miro.medium.com/v2/resize:fit:1100/0*Qih9-rjCkdfQHYrf 1100w, https://miro.medium.com/v2/resize:fit:1400/0*Qih9-rjCkdfQHYrf 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lk ll c" height="438" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*Qih9-rjCkdfQHYrf" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><h1 class="lm ln fo be lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi mj bj" data-selectable-paragraph="" id="8e69" style="background-color: white; box-sizing: inherit; color: #242424; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 24px; letter-spacing: -0.016em; line-height: 30px; margin: 1.95em 0px -0.28em;">Concluding</h1><p class="pw-post-body-paragraph mk ml fo mm b mn mo mp mq mr ms mt mu mv mw mx my mz na nb nc nd ne nf ng nh fh bj" data-selectable-paragraph="" id="809e" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">I think the deployment pane is a great way to have validate, what-if and deploy options at your fingertips. Of course all of these actions can also be performed using AZ CLI, PowerShell and other methods, but having this directly integrated into VSCode just makes life easier.</p><p class="pw-post-body-paragraph mk ml fo mm b mn ni mp mq mr nj mt mu mv nk mx my mz nl nb nc nd nm nf ng nh fh bj" data-selectable-paragraph="" id="2319" style="background-color: white; box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Deployment Pane is an experimental feature at this point. To test drive the functionality, make sure to use a recent preview build (is used 0.19.84) and enable the feature in the extension settings as shown below.</p><figure class="no np nq nr ns lf kx ky paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lg lh eb li bg lj" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kx ky oe" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1834px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*yZYvlC2LC2hpGxps 640w, https://miro.medium.com/v2/resize:fit:720/0*yZYvlC2LC2hpGxps 720w, https://miro.medium.com/v2/resize:fit:750/0*yZYvlC2LC2hpGxps 750w, https://miro.medium.com/v2/resize:fit:786/0*yZYvlC2LC2hpGxps 786w, https://miro.medium.com/v2/resize:fit:828/0*yZYvlC2LC2hpGxps 828w, https://miro.medium.com/v2/resize:fit:1100/0*yZYvlC2LC2hpGxps 1100w, https://miro.medium.com/v2/resize:fit:1400/0*yZYvlC2LC2hpGxps 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*yZYvlC2LC2hpGxps 640w, https://miro.medium.com/v2/resize:fit:720/0*yZYvlC2LC2hpGxps 720w, https://miro.medium.com/v2/resize:fit:750/0*yZYvlC2LC2hpGxps 750w, https://miro.medium.com/v2/resize:fit:786/0*yZYvlC2LC2hpGxps 786w, https://miro.medium.com/v2/resize:fit:828/0*yZYvlC2LC2hpGxps 828w, https://miro.medium.com/v2/resize:fit:1100/0*yZYvlC2LC2hpGxps 1100w, https://miro.medium.com/v2/resize:fit:1400/0*yZYvlC2LC2hpGxps 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lk ll c" height="301" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*yZYvlC2LC2hpGxps" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><blockquote class="of og oh" style="background-color: white; box-shadow: rgb(36, 36, 36) 3px 0px 0px 0px inset; box-sizing: inherit; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 0px 0px 0px -20px; padding-left: 23px;"><p class="mk ml oi mm b mn ni mp mq mr nj mt mu oj nk mx my ok nl nb nc ol nm nf ng nh fh bj" data-selectable-paragraph="" id="ffe8" style="box-sizing: inherit; color: #242424; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; font-style: italic; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;"><span class="fo" style="box-sizing: inherit; font-style: normal;">Shout out to </span><a class="af om" href="https://www.linkedin.com/in/antmarti?miniProfileUrn=urn%3Ali%3Afs_miniProfile%3AACoAABBijcsBZJM4vmGze-zqKXOddNTuOh1MdfY" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank"><span class="fo" style="box-sizing: inherit; font-style: normal;">Anthony Martin</span></a><span class="fo" style="box-sizing: inherit; font-style: normal;"> who performed a live demo of this feature at last weeks Bicep Community Call!</span></p></blockquote>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-19681766063155662112023-07-06T12:04:00.000+02:002023-07-06T12:04:21.771+02:00Deployment Stacks for Bicep are awesome: a full walkthrough & sneak peek and of what's coming soon!<p><span style="font-size: medium;"><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif;">An early look at what is coming </span><span class="tvm__text--legacy-publishing-emphasis" style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); text-decoration-line: underline; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">very soon</span><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif;"> </span><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif;">with</span><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif;"> </span><span style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Deployments Stacks</span><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif;"> </span><span style="background-color: white; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif;">in Azure, how to use them, and how this further empowers your Bicep templates! Spoiler alert: it's awesome! 💪</span></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkvdyX2QcOzyq3FdTxF7ayHS-9FGzB-Ezh6Cxhl7TN_ZGU2qq2tHtXfpMDX0v5rCm2Ro0_fQkDF_L-6zpp2jl7_0y6aBDkVPP2ZgkVOyMjdWx05qMTDIHvh-BrCe7tA2cwjmeN1AxvsFMMjWZjUtLSviPzkvT7WfBBesc2HhzkXs6lVTBDT26yrp6uweXO/s1145/header.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="643" data-original-width="1145" height="259" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkvdyX2QcOzyq3FdTxF7ayHS-9FGzB-Ezh6Cxhl7TN_ZGU2qq2tHtXfpMDX0v5rCm2Ro0_fQkDF_L-6zpp2jl7_0y6aBDkVPP2ZgkVOyMjdWx05qMTDIHvh-BrCe7tA2cwjmeN1AxvsFMMjWZjUtLSviPzkvT7WfBBesc2HhzkXs6lVTBDT26yrp6uweXO/w460-h259/header.png" width="460" /></a></div><br /><p><b> <span style="color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--artdeco-reset-base-font-size-hundred-percent);">💪 What is the challenge?</span></b></p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Azure deployments at scale also introduce life cycle management issues at scale. Ideally all resources within a resource group share the same life cycle and updates to that life cycle are limited to resources within that resource group only. When your Azure deployment increases in size, there is a good chance your deployments are going to span across multiple resource groups, multiple subscriptions and possibly even multiple management groups. This can make the life cycle management of Azure resources complex. Further more, there currently is no easy way to remove (destroy) all resources that are part of a logical collection in Azure. And lastly, it would be great to have the ability to ensure resources from a such a logical collection are protected (locked) from being removed individually. <span class="tvm__text--legacy-publishing-emphasis" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); text-decoration-line: underline; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Azure Deployments stacks FTW!</span></p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><b>💪What is a deployment stack?</b></span></p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">A deployment stack is a new Azure resource type. (You can expect a public preview very soon!) It allows you to perform operations on a logical collection of resources in Azure. The resource type of a deployment stack is defined as <span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Microsoft.Resources/deploymentStacks</span>. The aim of a deployment stack is to simplify the life cycle management at scale mentioned before.</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">All Azure resources created using a deployment stack are managed by the deployment stack. This means that to update a resources, you update the deployment stack rather that individual resources, and removing resources can (should) also be done by updating the deployment stack.</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">And since a deployment stack is a Azure resource itself, you can also perform any familiar action on it like e.g. protecting access using RBAC.</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">You might also be familiar with 'complete mode' as a deployment method. (I've personally never been a big fan of it). This (legacy) deployment method is going to be replaced by deployment stacks.</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">This article covers how to get started with deployment stacks. It walks through the creation of a new deployment stack, deploying resources to it, and updating the deployment stack. Note: at the time of writing this, deployment stacks are in preview.</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><b>💪 <span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Creating Bicep files to deploy with deployment stacks</span></b></p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">As a first step, below is a sample main.bicep file. It contains a few parameters, points to a existing Resource Group and leverages a Bicep module to deploy a few resources related to Microsoft Azure Virtual Desktop (AVD) inside the referenced Resource Group.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4930" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQEZktDz4bc9Qw/article-inline_image-shrink_1000_1488/0/1688476940613?e=1694044800&v=beta&t=T-_B17V24YWSMx0Alb4rjeito3O4B3Q_Gva13pwLhUU" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Next, consider the file below. This the Bicep module that is leveraged by the main.bicep file containing the declarations to create a AVD Workspace, 2 Host pools, and 2 Application Groups. It does of course not configure all possible properties of those resources. To keep this walkthrough easy to follow its limited to setting a few properties only.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4931" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQE_mCXbuy1qvQ/article-inline_image-shrink_1500_2232/0/1688458311766?e=1694044800&v=beta&t=aW8zh4bLZo5dm-KiK-mTSm2AfoGuKy5EHCZPZIjX6Vs" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><b>💪 </b><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: bold; margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Deploying the deployment stack </span>(that did sounds a little weird 😊)</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Now, use the 2 Bicep templates above and deploy the main.bicep to Azure attached to a new deployment stack. In this case we'll use AZ CLI, but you can also use PowerShell by making use of the CmdLet New-AzSubscriptionDeploymentStack.</p><div class="reader-image-block reader-image-block--resize" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4932" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQEyfx7UKN5NqQ/article-inline_image-shrink_1500_2232/0/1688470243623?e=1694044800&v=beta&t=g_dbs0wNTAloOGNwOq7JlmgwvE76hLBG61YLJ8QCvds" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); display: block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: 0px auto; max-width: 432px; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">The AZ CLI command outputs the result and shows resources that are attached to the Deployment Stack as well as the Deployment Stack Properties that are configured, covered in greater detail later on in this article.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4933" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQGKk5k8cfMa_g/article-inline_image-shrink_1000_1488/0/1688471272455?e=1694044800&v=beta&t=7sb3XuLxxmw-oDvbiAY1lwqZeZijs3kjYy0qiAy1FGs" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">These details can also be retreived using AZ CLI at a later stage, using the following command.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4934" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQGfmysllLVLhA/article-inline_image-shrink_1500_2232/0/1688476799064?e=1694044800&v=beta&t=HsSS9DmHUkI-OJ4xUFcpGNzEopbepzrpBnLQn_t1YUk" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">When switching to the Azure Portal, the Resource Group that was referenced in the main.bicep, shows the resources are created usefully. More importantly, they are attached to the deployment stack.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4935" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQENWLUbjaZFbw/article-inline_image-shrink_1000_1488/0/1688472233694?e=1694044800&v=beta&t=S-4hX7ahZsI2AYn8Z2OxX2ZHFIPetW_NsTr6Y_RRJHI" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Inside the resource group we provided as part of the AZ CLI command, the Deployment Stack is now visible. Note the new section Deployment Stacks on the left hand side as well.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4936" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQG3C65d1PyDPQ/article-inline_image-shrink_1500_2232/0/1688471499343?e=1694044800&v=beta&t=JOdgTgWvJm7wJckrB38seYuDmmPvR7G7NvjDigB7rsw" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><b>💪 How to tell which resources are linked to a deployment stack</b></span></p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Upon deleting to Deployment Stack in the portal (which can of course also be done using AZ CLI and PowerShell), notice that we get an overview of all resources attached to this deployments stack (marked red) as well as a couple of update behavior actions (marked green).</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4937" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQF0k1JIwh8xoA/article-inline_image-shrink_1000_1488/0/1688472281355?e=1694044800&v=beta&t=StdoXRAKWpN_dbT8kFub3xIMQopkWoLfyjP3TEVxGCQ" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"></p><ul style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--font-size-large); line-height: 1.75; margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><li style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><span style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Detach resources and resource groups</span> means that the Deployment Stack resource will be removed and all currently attached resources and resource groups will no longer have a relationship to the Deployment Stack, but will <span class="tvm__text--legacy-publishing-emphasis" style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); text-decoration-line: underline; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">not </span>be removed from Azure.</li><li style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><span style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Delete all resources and detach resource groups</span> means that the Deployment Stack resource will be removed and <span class="tvm__text--legacy-publishing-emphasis" style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); text-decoration-line: underline; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">all attached resources will be deleted</span> as well, the resource groups themselves will no longer have a relationship to the Deployment Stack, but will not be removed.</li><li style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><span style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Delete both resources and detach resource groups </span>means that the Deployment Stack resource will be removed, and <span class="tvm__text--legacy-publishing-emphasis" style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); text-decoration-line: underline; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">all attached resources including the resource groups we be removed</span> as well.</li></ul><p></p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><b>💪 Modifying resources that are part of a deployment stack</b></span></p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Besides delete actions on the deployment stack, you can of course also modify resources that are attached to this Deployment Stack. You do this by modifying the deployment stack, rather than modifying individual reources. For this example, let's make a few changes to our main.bicep file.</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"></p><ul style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--font-size-large); line-height: 1.75; margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><li style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">The load balancing type is changed from BreathFirst to <span style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">DepthFirst</span></li><li style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">A new parameter <span style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">AVDHostPoolfriendlyName </span>is introduced, and the corresponding Bicep module is also updated to accept the parameter and pass it to the creation of the AVD Host pool</li><li style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">ValidationMode is changed from false to <span style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">true</span></li></ul><p></p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4938" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQEAAhmZgNErDg/article-inline_image-shrink_1000_1488/0/1688477264774?e=1694044800&v=beta&t=-9WE0jLNulB93Jd1ipEL2338wiJYYnOj4W4WRqqzXN0" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">To update the resources that are part of the Deployment Stack, simply rerun the AZ CLI command from before. You will see the notification below. Note the confirm that the deployment stack already exists. A comparison will be performed and all changes that are needed will be applied to resources that are part of this deployment stack.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4939" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQGRTUlk5Iipig/article-inline_image-shrink_1500_2232/0/1688478208747?e=1694044800&v=beta&t=X1miOKCIZnIoF47WBaxGy5ejmqNsqP1rCVV8ApvrueE" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Switching back to the Azure Portal, all 3 changes are visible.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4940" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQGRWylBh6gvRw/article-inline_image-shrink_1000_1488/0/1688478525074?e=1694044800&v=beta&t=6yzbzhbP8JqGKh4_hFqICsSxe4CaZGCt7rzm2tp4zy8" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><b>💪 Removing resources that are part of a deployment stack</b></span></p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Similar to updating resources that are managed by the deployment stack, resources can also be removed. Lets take drastic measures and remove a few resource declarations from our bicep module. The host pool and application group for RemoteApp have now been removed. This essentially leaves 1 workspace, 1 host pool and 1 application group as shown below.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4941" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQHxmbyEMUqEXw/article-inline_image-shrink_1000_1488/0/1688479099422?e=1694044800&v=beta&t=b_fwDTMMO5-fH3W5s_r7ZSvbxR4eUovFUzbrdWfB0D0" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Again, run the same Az CLI command. Note the warning. This shows what exact action will be performed on attached resources that are not part of the bicep template (anymore). In this case the action is to detach. This means the resources will be detached (removed) from the Deployment Stack, but will still remain in Azure.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4942" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQGPMVH-q1w4Nw/article-inline_image-shrink_1500_2232/0/1688479308199?e=1694044800&v=beta&t=1pt-karp0xVpuUmCo-rpWztsFumwhyPdSNepJVheBaY" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">The output of the command confirms the detached resources</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4943" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQEVN2S79HnyFw/article-inline_image-shrink_1500_2232/0/1688479591216?e=1694044800&v=beta&t=xlfqSVdqNJhcPJtaEIydD02Zde08FEdkbOAA36i0mnk" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">And the Azure Portal also confirms this as shown below.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4944" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQFNvuu_vOscQA/article-inline_image-shrink_1500_2232/0/1688479652175?e=1694044800&v=beta&t=6GthPEfF1z2zOW9o6YVY5HAjmGsfgDM8Iv6Rpx1qhoc" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">If needed, you can also change the default behavior of detach to remove resources or remove resources and resource groups. To change the behavior to delete resources that are detached, use the delete-resources option as shown below.</p><div class="reader-image-block reader-image-block--resize" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4945" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQF5pyQHrt1oCg/article-inline_image-shrink_1500_2232/0/1688479958704?e=1694044800&v=beta&t=dDvBkkQfQGUbibnCptF7Kc1K5NZpuiO5PdEvcs4LYiM" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); display: block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: 0px auto; max-width: 432px; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">If we now redo the previous action again, removing 2 resource declarations from the Bicep template and rerunning the Az CLI command, the following output is shown, deleted resources.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4946" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQEH4424Ah-jQw/article-inline_image-shrink_1500_2232/0/1688480226011?e=1694044800&v=beta&t=9jYFI9TcSK4BJ8jiiD5CgHH9cuba7zTwFS5JAGXR_GE" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">And by looking at the Resource Group, the deletion of resources can be confirmed. Only 3 resources are left since the host pool and application group that were removed from the Bicep module are now also removed from Azure.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4947" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQH9xkg8jn7ZTg/article-inline_image-shrink_1500_2232/0/1688481297679?e=1694044800&v=beta&t=89d0ffV0b6qnwAv0mmwWsA6RPqsitlIMH0P1zx4JtPk" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><b>💪 Securing resources that are part of a deployment stack</b></span></p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">There is one more interesting option to cover regarding deployment stacks and that is protecting resources from deletion. Using the <span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">deny-delete</span> parameter, you can set a special type of lock on resources that are attached to a deployment stack to prevents them from being deleted by unauthorized principals.</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">In this case we enable the denyDelete and only make an exception for 1 principal by proving the application ID.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember4948" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQElTGMiD_hl-A/article-inline_image-shrink_1500_2232/0/1688481784553?e=1694044800&v=beta&t=smrTo760NOX9B3-FABFL-Ym6Fi7ZLwpIhhkLmcQNXMk" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">The result is that even you have permissions to remove the resources, you are blocked from doing so based on this remove lock. A great way to make sure that resources that are part of a logical grouping are not accidentally removed.</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><b>💪 Conclusion</b></span></p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">I recall seeing very early architectures and ideas on deployment stacks, and I must say I'm really impressed with the implementation to date!</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"></p><ul style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--font-size-large); line-height: 1.75; margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><li style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Although the feature is currently still in private preview, I think working with deployment stacks is very intuitive.</li><li style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Deployment stacks unlock lots of great scenarios like removing resources from a deployment that reside across various different resource groups, subscriptions, and management groups providing similar functionality like the destroy option that e.g. Terraform has.</li><li style="border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: 0.8rem 0px 0.8rem 3.2rem; padding-left: 0.8rem; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Deployment stacks improve the overall life cycle management of Azure resources, it can prevent accidental deletion of a single resource that is part or a stack of resources that depend on each other and have the same life cycle, and it provides easy ways to rollback to a good known state.</li></ul><p></p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><span class="tvm__text--legacy-publishing-emphasis" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); text-decoration-line: underline; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">The deployment stack feature will reach public preview VERY soon. I hope this early walkthrough was valuable to you. Stay tuned for more!💪</span></span></p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-style: var(--artdeco-reset-typography-font-style-italic); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Looking to get started with Bicep? I authored and published the book </span><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-style: var(--artdeco-reset-typography-font-style-italic); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><a href="https://www.amazon.com/Getting-started-Bicep-Infrastructure-Azure/dp/B098WK3MR7" style="background-color: var(--artdeco-reset-link-background-color-transparent); border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: break-word; padding: var(--artdeco-reset-base-padding-zero); text-decoration: var(--artdeco-reset-link-text-decoration-none); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Getting started with Bicep: Infrastructure as code on Azure</a></span></p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-30107079708223546112023-07-01T13:26:00.001+02:002023-07-01T13:26:12.105+02:00“There is no poem as lovely as a tree” New opinionated formatter for Bicep templates!<p> <img alt="" class="bg lj lk c" height="358" loading="eager" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/1*M7bGzQMTqfp9Oa5ClkDVvg.png" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="89ed" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Using the same programming language style guide within your team, department, or company is great! It simplifies team efforts to work on the same code and contributes to reusability of code. This applies to any programming language, scripting language and Infrastructure as Code language such as Bicep for Azure.</p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="d238" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">As great as that is, the challenge with style guides is reaching consensus on a common style to use. Trying to read code written by someone who is using a different style simply slows you down.</p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="8f81" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">From the start, Bicep has made authoring, reading, and digesting infrastructure as code templates much easier compared to ARM templates based on JSON.</p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="8b55" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">The new Bicep formatter option in VSCode, currently into experimental phase, allows opinionated formatting in a super easy way. Let’s dive into this upcoming feature and take an early look at what’s coming soon!</p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="24e1" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Since the prettyPrinting feature is currently experimental phase, add ‘prettyPrinting’ to the experimentalFeaturesEnabled section in your bicepconfig.json file. In case you’re new to using this config file, <a class="af mj" href="https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/bicep-config" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">follow this guide</a>.</p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="f1ff" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Next, add a new section called formatting. This is allows you to configure your personal preferences regarding Bicep template formatting. For example, note that we set the maximum length to 80, a common maximum character length per line of code.</p><figure class="ml mm mn mo mp le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="kw kx mk" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 561px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 561px" srcset="https://miro.medium.com/v2/resize:fit:640/0*zeHshRj66Xe3qwpG 640w, https://miro.medium.com/v2/resize:fit:720/0*zeHshRj66Xe3qwpG 720w, https://miro.medium.com/v2/resize:fit:750/0*zeHshRj66Xe3qwpG 750w, https://miro.medium.com/v2/resize:fit:786/0*zeHshRj66Xe3qwpG 786w, https://miro.medium.com/v2/resize:fit:828/0*zeHshRj66Xe3qwpG 828w, https://miro.medium.com/v2/resize:fit:1100/0*zeHshRj66Xe3qwpG 1100w, https://miro.medium.com/v2/resize:fit:1122/0*zeHshRj66Xe3qwpG 1122w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 561px" srcset="https://miro.medium.com/v2/resize:fit:640/0*zeHshRj66Xe3qwpG 640w, https://miro.medium.com/v2/resize:fit:720/0*zeHshRj66Xe3qwpG 720w, https://miro.medium.com/v2/resize:fit:750/0*zeHshRj66Xe3qwpG 750w, https://miro.medium.com/v2/resize:fit:786/0*zeHshRj66Xe3qwpG 786w, https://miro.medium.com/v2/resize:fit:828/0*zeHshRj66Xe3qwpG 828w, https://miro.medium.com/v2/resize:fit:1100/0*zeHshRj66Xe3qwpG 1100w, https://miro.medium.com/v2/resize:fit:1122/0*zeHshRj66Xe3qwpG 1122w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="419" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:842/0*zeHshRj66Xe3qwpG" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 561px;" width="561" /></picture></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="77b2" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">I my case I also used a preview build of the VSCode extension version 0.18.97. Follow <a class="af mj" href="https://github.com/Azure/bicep/blob/main/docs/installing-nightly.md" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">this guide</a> for more information on where to get early Bicep releases.</p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="ad46" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Lets look at a first example. Note the vertical line in the screenshot below, this is just a visual indicator you can use in VSCode to show where the maximum length of, in our case 80 characters, is situated. You can configure this by adding the below line to your settings.json file: “editor.rulers”: [80]</p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="9ad9" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Consider the following part of a Bicep Template below showing a parameters, and variables section. The variable ‘short’ is clearly not exceeding the 80 characters, the variable ‘long’ is just below 80 characters, the variable ‘toolong’ is just over the 80 characters and the variable ‘waytoolong’ is of course way over our preferred and configured limit.</p><figure class="ml mm mn mo mp le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx mq" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1407px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*W-xXVOQE1I8Vqd7b 640w, https://miro.medium.com/v2/resize:fit:720/0*W-xXVOQE1I8Vqd7b 720w, https://miro.medium.com/v2/resize:fit:750/0*W-xXVOQE1I8Vqd7b 750w, https://miro.medium.com/v2/resize:fit:786/0*W-xXVOQE1I8Vqd7b 786w, https://miro.medium.com/v2/resize:fit:828/0*W-xXVOQE1I8Vqd7b 828w, https://miro.medium.com/v2/resize:fit:1100/0*W-xXVOQE1I8Vqd7b 1100w, https://miro.medium.com/v2/resize:fit:1400/0*W-xXVOQE1I8Vqd7b 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*W-xXVOQE1I8Vqd7b 640w, https://miro.medium.com/v2/resize:fit:720/0*W-xXVOQE1I8Vqd7b 720w, https://miro.medium.com/v2/resize:fit:750/0*W-xXVOQE1I8Vqd7b 750w, https://miro.medium.com/v2/resize:fit:786/0*W-xXVOQE1I8Vqd7b 786w, https://miro.medium.com/v2/resize:fit:828/0*W-xXVOQE1I8Vqd7b 828w, https://miro.medium.com/v2/resize:fit:1100/0*W-xXVOQE1I8Vqd7b 1100w, https://miro.medium.com/v2/resize:fit:1400/0*W-xXVOQE1I8Vqd7b 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="160" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*W-xXVOQE1I8Vqd7b" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="79f2" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">To format the code based on the 80 character limit we configured in our bicepconfig.json file, simply use the existing formatting option in VSCode you probably already knew (or use the Shift+Alt+F shortcut).</p><figure class="ml mm mn mo mp le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx mr" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1228px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*7WxtP35FmZZ8Uh8h 640w, https://miro.medium.com/v2/resize:fit:720/0*7WxtP35FmZZ8Uh8h 720w, https://miro.medium.com/v2/resize:fit:750/0*7WxtP35FmZZ8Uh8h 750w, https://miro.medium.com/v2/resize:fit:786/0*7WxtP35FmZZ8Uh8h 786w, https://miro.medium.com/v2/resize:fit:828/0*7WxtP35FmZZ8Uh8h 828w, https://miro.medium.com/v2/resize:fit:1100/0*7WxtP35FmZZ8Uh8h 1100w, https://miro.medium.com/v2/resize:fit:1400/0*7WxtP35FmZZ8Uh8h 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*7WxtP35FmZZ8Uh8h 640w, https://miro.medium.com/v2/resize:fit:720/0*7WxtP35FmZZ8Uh8h 720w, https://miro.medium.com/v2/resize:fit:750/0*7WxtP35FmZZ8Uh8h 750w, https://miro.medium.com/v2/resize:fit:786/0*7WxtP35FmZZ8Uh8h 786w, https://miro.medium.com/v2/resize:fit:828/0*7WxtP35FmZZ8Uh8h 828w, https://miro.medium.com/v2/resize:fit:1100/0*7WxtP35FmZZ8Uh8h 1100w, https://miro.medium.com/v2/resize:fit:1400/0*7WxtP35FmZZ8Uh8h 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="68" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*7WxtP35FmZZ8Uh8h" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="edad" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Boom! The variables are now properly trimmed to multiple lines, respecting the 80 character limit we defined! And someone else who prefers any other number of character limit can simply configure and use that in his preferences as well.</p><figure class="ml mm mn mo mp le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx ms" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1199px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*PG0ZnDiyvwub1gIY 640w, https://miro.medium.com/v2/resize:fit:720/0*PG0ZnDiyvwub1gIY 720w, https://miro.medium.com/v2/resize:fit:750/0*PG0ZnDiyvwub1gIY 750w, https://miro.medium.com/v2/resize:fit:786/0*PG0ZnDiyvwub1gIY 786w, https://miro.medium.com/v2/resize:fit:828/0*PG0ZnDiyvwub1gIY 828w, https://miro.medium.com/v2/resize:fit:1100/0*PG0ZnDiyvwub1gIY 1100w, https://miro.medium.com/v2/resize:fit:1400/0*PG0ZnDiyvwub1gIY 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*PG0ZnDiyvwub1gIY 640w, https://miro.medium.com/v2/resize:fit:720/0*PG0ZnDiyvwub1gIY 720w, https://miro.medium.com/v2/resize:fit:750/0*PG0ZnDiyvwub1gIY 750w, https://miro.medium.com/v2/resize:fit:786/0*PG0ZnDiyvwub1gIY 786w, https://miro.medium.com/v2/resize:fit:828/0*PG0ZnDiyvwub1gIY 828w, https://miro.medium.com/v2/resize:fit:1100/0*PG0ZnDiyvwub1gIY 1100w, https://miro.medium.com/v2/resize:fit:1400/0*PG0ZnDiyvwub1gIY 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="376" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*PG0ZnDiyvwub1gIY" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="4e3b" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Another example is the resource declaration below. It uses a condition and as a result it exceeds our 80 character limit preference.</p><figure class="ml mm mn mo mp le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx mt" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1380px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*G6HMxl-GuM6yy8bQ 640w, https://miro.medium.com/v2/resize:fit:720/0*G6HMxl-GuM6yy8bQ 720w, https://miro.medium.com/v2/resize:fit:750/0*G6HMxl-GuM6yy8bQ 750w, https://miro.medium.com/v2/resize:fit:786/0*G6HMxl-GuM6yy8bQ 786w, https://miro.medium.com/v2/resize:fit:828/0*G6HMxl-GuM6yy8bQ 828w, https://miro.medium.com/v2/resize:fit:1100/0*G6HMxl-GuM6yy8bQ 1100w, https://miro.medium.com/v2/resize:fit:1400/0*G6HMxl-GuM6yy8bQ 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*G6HMxl-GuM6yy8bQ 640w, https://miro.medium.com/v2/resize:fit:720/0*G6HMxl-GuM6yy8bQ 720w, https://miro.medium.com/v2/resize:fit:750/0*G6HMxl-GuM6yy8bQ 750w, https://miro.medium.com/v2/resize:fit:786/0*G6HMxl-GuM6yy8bQ 786w, https://miro.medium.com/v2/resize:fit:828/0*G6HMxl-GuM6yy8bQ 828w, https://miro.medium.com/v2/resize:fit:1100/0*G6HMxl-GuM6yy8bQ 1100w, https://miro.medium.com/v2/resize:fit:1400/0*G6HMxl-GuM6yy8bQ 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="79" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*G6HMxl-GuM6yy8bQ" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="eee4" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Simply hit format document option again, and below is the result. The conditional statement is now nicely placed on a new line, respecting the 80 character limit.</p><figure class="ml mm mn mo mp le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx mu" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1044px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*RNp5N_MTQx9bqw6e 640w, https://miro.medium.com/v2/resize:fit:720/0*RNp5N_MTQx9bqw6e 720w, https://miro.medium.com/v2/resize:fit:750/0*RNp5N_MTQx9bqw6e 750w, https://miro.medium.com/v2/resize:fit:786/0*RNp5N_MTQx9bqw6e 786w, https://miro.medium.com/v2/resize:fit:828/0*RNp5N_MTQx9bqw6e 828w, https://miro.medium.com/v2/resize:fit:1100/0*RNp5N_MTQx9bqw6e 1100w, https://miro.medium.com/v2/resize:fit:1400/0*RNp5N_MTQx9bqw6e 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*RNp5N_MTQx9bqw6e 640w, https://miro.medium.com/v2/resize:fit:720/0*RNp5N_MTQx9bqw6e 720w, https://miro.medium.com/v2/resize:fit:750/0*RNp5N_MTQx9bqw6e 750w, https://miro.medium.com/v2/resize:fit:786/0*RNp5N_MTQx9bqw6e 786w, https://miro.medium.com/v2/resize:fit:828/0*RNp5N_MTQx9bqw6e 828w, https://miro.medium.com/v2/resize:fit:1100/0*RNp5N_MTQx9bqw6e 1100w, https://miro.medium.com/v2/resize:fit:1400/0*RNp5N_MTQx9bqw6e 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="132" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*RNp5N_MTQx9bqw6e" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="37f2" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Using Bicep modules and loops is another common example resulting in long lines of code. Consider the example below where we use a Bicep module stored locally and use a for statement that loops through an array. Line 36 clearly exceeds our defined limit.</p><figure class="ml mm mn mo mp le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx mv" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1335px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*FWNtuG43JWLYgl8R 640w, https://miro.medium.com/v2/resize:fit:720/0*FWNtuG43JWLYgl8R 720w, https://miro.medium.com/v2/resize:fit:750/0*FWNtuG43JWLYgl8R 750w, https://miro.medium.com/v2/resize:fit:786/0*FWNtuG43JWLYgl8R 786w, https://miro.medium.com/v2/resize:fit:828/0*FWNtuG43JWLYgl8R 828w, https://miro.medium.com/v2/resize:fit:1100/0*FWNtuG43JWLYgl8R 1100w, https://miro.medium.com/v2/resize:fit:1400/0*FWNtuG43JWLYgl8R 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*FWNtuG43JWLYgl8R 640w, https://miro.medium.com/v2/resize:fit:720/0*FWNtuG43JWLYgl8R 720w, https://miro.medium.com/v2/resize:fit:750/0*FWNtuG43JWLYgl8R 750w, https://miro.medium.com/v2/resize:fit:786/0*FWNtuG43JWLYgl8R 786w, https://miro.medium.com/v2/resize:fit:828/0*FWNtuG43JWLYgl8R 828w, https://miro.medium.com/v2/resize:fit:1100/0*FWNtuG43JWLYgl8R 1100w, https://miro.medium.com/v2/resize:fit:1400/0*FWNtuG43JWLYgl8R 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="161" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*FWNtuG43JWLYgl8R" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="6dda" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Hitting format document again results in a nicely formatted and easy to read module declaration!</p><figure class="ml mm mn mo mp le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx mw" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1101px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*zZvN-HBsfrqwAtNX 640w, https://miro.medium.com/v2/resize:fit:720/0*zZvN-HBsfrqwAtNX 720w, https://miro.medium.com/v2/resize:fit:750/0*zZvN-HBsfrqwAtNX 750w, https://miro.medium.com/v2/resize:fit:786/0*zZvN-HBsfrqwAtNX 786w, https://miro.medium.com/v2/resize:fit:828/0*zZvN-HBsfrqwAtNX 828w, https://miro.medium.com/v2/resize:fit:1100/0*zZvN-HBsfrqwAtNX 1100w, https://miro.medium.com/v2/resize:fit:1400/0*zZvN-HBsfrqwAtNX 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*zZvN-HBsfrqwAtNX 640w, https://miro.medium.com/v2/resize:fit:720/0*zZvN-HBsfrqwAtNX 720w, https://miro.medium.com/v2/resize:fit:750/0*zZvN-HBsfrqwAtNX 750w, https://miro.medium.com/v2/resize:fit:786/0*zZvN-HBsfrqwAtNX 786w, https://miro.medium.com/v2/resize:fit:828/0*zZvN-HBsfrqwAtNX 828w, https://miro.medium.com/v2/resize:fit:1100/0*zZvN-HBsfrqwAtNX 1100w, https://miro.medium.com/v2/resize:fit:1400/0*zZvN-HBsfrqwAtNX 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="224" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*zZvN-HBsfrqwAtNX" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="5bee" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">This concludes our tour of the upcoming Bicep formatting feature allowing opinionated formatting based on ‘a pretty printer’.</p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="5bee" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;"></p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="5bee" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;"><span class="ln fp" style="box-sizing: inherit; font-weight: 700; letter-spacing: -0.003em;">Looking to get started with Bicep? I authored and published the book </span><a class="af mj" href="https://www.amazon.com/Getting-started-Bicep-Infrastructure-Azure/dp/B098WK3MR7" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit; letter-spacing: -0.003em;" target="_blank"><span class="ln fp" style="box-sizing: inherit; font-weight: 700;">Getting started with Bicep: Infrastructure as code on Azure</span></a></p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="8294" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;"><em class="mx" style="box-sizing: inherit;">The quote in the headline came from this source, a great paper by Philip Wadler I can really recommend to read: </em><a class="af mj" href="https://homepages.inf.ed.ac.uk/wadler/papers/prettier/prettier.pdf" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank"><em class="mx" style="box-sizing: inherit;">https://homepages.inf.ed.ac.uk/wadler/papers/prettier/prettier.pdf</em></a></p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-49168317007117995632023-06-15T08:23:00.000+02:002023-06-15T08:23:02.859+02:00Bicep param files now available, upgrade to v0.18.4!<p> <img alt="" class="bg lj lk c" height="326" loading="eager" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*wg6lo9Hl-0sDZfqN" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="ecf1" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">You might have seen my post a few days ago on <a class="af mj" href="https://www.linkedin.com/pulse/first-glance-upcoming-bicep-parameter-files-freek-berson/" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">Bicep parameter files</a>. That was based on an experimental feature. Bicep version 0.18.4 is released now which, amongst other features and fixes, contains support for the new bicep parameter files!</p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="a97f" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Time to upgrade!</p><figure class="ml mm mn mo mp le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx mk" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1021px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*gEiPZSnVgH2lfE79 640w, https://miro.medium.com/v2/resize:fit:720/0*gEiPZSnVgH2lfE79 720w, https://miro.medium.com/v2/resize:fit:750/0*gEiPZSnVgH2lfE79 750w, https://miro.medium.com/v2/resize:fit:786/0*gEiPZSnVgH2lfE79 786w, https://miro.medium.com/v2/resize:fit:828/0*gEiPZSnVgH2lfE79 828w, https://miro.medium.com/v2/resize:fit:1100/0*gEiPZSnVgH2lfE79 1100w, https://miro.medium.com/v2/resize:fit:1400/0*gEiPZSnVgH2lfE79 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*gEiPZSnVgH2lfE79 640w, https://miro.medium.com/v2/resize:fit:720/0*gEiPZSnVgH2lfE79 720w, https://miro.medium.com/v2/resize:fit:750/0*gEiPZSnVgH2lfE79 750w, https://miro.medium.com/v2/resize:fit:786/0*gEiPZSnVgH2lfE79 786w, https://miro.medium.com/v2/resize:fit:828/0*gEiPZSnVgH2lfE79 828w, https://miro.medium.com/v2/resize:fit:1100/0*gEiPZSnVgH2lfE79 1100w, https://miro.medium.com/v2/resize:fit:1400/0*gEiPZSnVgH2lfE79 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="105" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*gEiPZSnVgH2lfE79" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="cb1e" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Besides the Bicep parameter files itself now being available, a couple of additional features are also included as part of it,</p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="e002" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Similar functionality we’ve had before, decompiling ARM Templates into Bicep templates, is now also available parameters files. Simply right-click a parameters file based on JSON, and select Decompile into Bicepparams.</p><figure class="ml mm mn mo mp le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx mq" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1205px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*Lrximvvu4C1zf82U 640w, https://miro.medium.com/v2/resize:fit:720/0*Lrximvvu4C1zf82U 720w, https://miro.medium.com/v2/resize:fit:750/0*Lrximvvu4C1zf82U 750w, https://miro.medium.com/v2/resize:fit:786/0*Lrximvvu4C1zf82U 786w, https://miro.medium.com/v2/resize:fit:828/0*Lrximvvu4C1zf82U 828w, https://miro.medium.com/v2/resize:fit:1100/0*Lrximvvu4C1zf82U 1100w, https://miro.medium.com/v2/resize:fit:1400/0*Lrximvvu4C1zf82U 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*Lrximvvu4C1zf82U 640w, https://miro.medium.com/v2/resize:fit:720/0*Lrximvvu4C1zf82U 720w, https://miro.medium.com/v2/resize:fit:750/0*Lrximvvu4C1zf82U 750w, https://miro.medium.com/v2/resize:fit:786/0*Lrximvvu4C1zf82U 786w, https://miro.medium.com/v2/resize:fit:828/0*Lrximvvu4C1zf82U 828w, https://miro.medium.com/v2/resize:fit:1100/0*Lrximvvu4C1zf82U 1100w, https://miro.medium.com/v2/resize:fit:1400/0*Lrximvvu4C1zf82U 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="134" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*Lrximvvu4C1zf82U" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="698b" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">On a similar note, you can also select any Bicep template, right-click and select Generate Parameters File.</p><figure class="ml mm mn mo mp le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx mr" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1150px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*qLoUR_uf2wrNkBsw 640w, https://miro.medium.com/v2/resize:fit:720/0*qLoUR_uf2wrNkBsw 720w, https://miro.medium.com/v2/resize:fit:750/0*qLoUR_uf2wrNkBsw 750w, https://miro.medium.com/v2/resize:fit:786/0*qLoUR_uf2wrNkBsw 786w, https://miro.medium.com/v2/resize:fit:828/0*qLoUR_uf2wrNkBsw 828w, https://miro.medium.com/v2/resize:fit:1100/0*qLoUR_uf2wrNkBsw 1100w, https://miro.medium.com/v2/resize:fit:1400/0*qLoUR_uf2wrNkBsw 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*qLoUR_uf2wrNkBsw 640w, https://miro.medium.com/v2/resize:fit:720/0*qLoUR_uf2wrNkBsw 720w, https://miro.medium.com/v2/resize:fit:750/0*qLoUR_uf2wrNkBsw 750w, https://miro.medium.com/v2/resize:fit:786/0*qLoUR_uf2wrNkBsw 786w, https://miro.medium.com/v2/resize:fit:828/0*qLoUR_uf2wrNkBsw 828w, https://miro.medium.com/v2/resize:fit:1100/0*qLoUR_uf2wrNkBsw 1100w, https://miro.medium.com/v2/resize:fit:1400/0*qLoUR_uf2wrNkBsw 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="172" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*qLoUR_uf2wrNkBsw" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="9193" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">This option was there before, but you now have a new choice, generating bicepparam files!</p><figure class="ml mm mn mo mp le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx ms" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1145px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*UoLUFteYxqUaofVY 640w, https://miro.medium.com/v2/resize:fit:720/0*UoLUFteYxqUaofVY 720w, https://miro.medium.com/v2/resize:fit:750/0*UoLUFteYxqUaofVY 750w, https://miro.medium.com/v2/resize:fit:786/0*UoLUFteYxqUaofVY 786w, https://miro.medium.com/v2/resize:fit:828/0*UoLUFteYxqUaofVY 828w, https://miro.medium.com/v2/resize:fit:1100/0*UoLUFteYxqUaofVY 1100w, https://miro.medium.com/v2/resize:fit:1400/0*UoLUFteYxqUaofVY 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*UoLUFteYxqUaofVY 640w, https://miro.medium.com/v2/resize:fit:720/0*UoLUFteYxqUaofVY 720w, https://miro.medium.com/v2/resize:fit:750/0*UoLUFteYxqUaofVY 750w, https://miro.medium.com/v2/resize:fit:786/0*UoLUFteYxqUaofVY 786w, https://miro.medium.com/v2/resize:fit:828/0*UoLUFteYxqUaofVY 828w, https://miro.medium.com/v2/resize:fit:1100/0*UoLUFteYxqUaofVY 1100w, https://miro.medium.com/v2/resize:fit:1400/0*UoLUFteYxqUaofVY 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="145" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*UoLUFteYxqUaofVY" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="4fd9" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Within the bicepparm file itself, you can now also use expressions using any functions in the sys namespace, for example we can use the uniqueString() function as shown below.</p><figure class="ml mm mn mo mp le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx mt" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 851px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*a-8HSaCIpv4T7-eH 640w, https://miro.medium.com/v2/resize:fit:720/0*a-8HSaCIpv4T7-eH 720w, https://miro.medium.com/v2/resize:fit:750/0*a-8HSaCIpv4T7-eH 750w, https://miro.medium.com/v2/resize:fit:786/0*a-8HSaCIpv4T7-eH 786w, https://miro.medium.com/v2/resize:fit:828/0*a-8HSaCIpv4T7-eH 828w, https://miro.medium.com/v2/resize:fit:1100/0*a-8HSaCIpv4T7-eH 1100w, https://miro.medium.com/v2/resize:fit:1400/0*a-8HSaCIpv4T7-eH 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*a-8HSaCIpv4T7-eH 640w, https://miro.medium.com/v2/resize:fit:720/0*a-8HSaCIpv4T7-eH 720w, https://miro.medium.com/v2/resize:fit:750/0*a-8HSaCIpv4T7-eH 750w, https://miro.medium.com/v2/resize:fit:786/0*a-8HSaCIpv4T7-eH 786w, https://miro.medium.com/v2/resize:fit:828/0*a-8HSaCIpv4T7-eH 828w, https://miro.medium.com/v2/resize:fit:1100/0*a-8HSaCIpv4T7-eH 1100w, https://miro.medium.com/v2/resize:fit:1400/0*a-8HSaCIpv4T7-eH 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="479" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*a-8HSaCIpv4T7-eH" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="507f" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Bicepparam files are now also natively supported when deploying using Az CLI as well as PowerShell. For example, using Az CLI you can now pass bicepparm files as shown below.</p><figure class="ml mm mn mo mp le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx mu" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1409px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*Vkl3TUfihxRbqJJY 640w, https://miro.medium.com/v2/resize:fit:720/0*Vkl3TUfihxRbqJJY 720w, https://miro.medium.com/v2/resize:fit:750/0*Vkl3TUfihxRbqJJY 750w, https://miro.medium.com/v2/resize:fit:786/0*Vkl3TUfihxRbqJJY 786w, https://miro.medium.com/v2/resize:fit:828/0*Vkl3TUfihxRbqJJY 828w, https://miro.medium.com/v2/resize:fit:1100/0*Vkl3TUfihxRbqJJY 1100w, https://miro.medium.com/v2/resize:fit:1400/0*Vkl3TUfihxRbqJJY 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*Vkl3TUfihxRbqJJY 640w, https://miro.medium.com/v2/resize:fit:720/0*Vkl3TUfihxRbqJJY 720w, https://miro.medium.com/v2/resize:fit:750/0*Vkl3TUfihxRbqJJY 750w, https://miro.medium.com/v2/resize:fit:786/0*Vkl3TUfihxRbqJJY 786w, https://miro.medium.com/v2/resize:fit:828/0*Vkl3TUfihxRbqJJY 828w, https://miro.medium.com/v2/resize:fit:1100/0*Vkl3TUfihxRbqJJY 1100w, https://miro.medium.com/v2/resize:fit:1400/0*Vkl3TUfihxRbqJJY 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="42" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*Vkl3TUfihxRbqJJY" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="4c90" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">As I mentioned in my previous post, having parameters files in ‘Bicep style’ was a very common request, and it’s great to now see it out there!</p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="ec5e" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">And finally, did you notice bicepparam files have their own icon? How cool is that!</p><figure class="ml mm mn mo mp le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="kw kx mv" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 134px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 134px" srcset="https://miro.medium.com/v2/resize:fit:640/0*PNql4_J8RNBuNwNL 640w, https://miro.medium.com/v2/resize:fit:720/0*PNql4_J8RNBuNwNL 720w, https://miro.medium.com/v2/resize:fit:750/0*PNql4_J8RNBuNwNL 750w, https://miro.medium.com/v2/resize:fit:786/0*PNql4_J8RNBuNwNL 786w, https://miro.medium.com/v2/resize:fit:828/0*PNql4_J8RNBuNwNL 828w, https://miro.medium.com/v2/resize:fit:1100/0*PNql4_J8RNBuNwNL 1100w, https://miro.medium.com/v2/resize:fit:268/0*PNql4_J8RNBuNwNL 268w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 134px" srcset="https://miro.medium.com/v2/resize:fit:640/0*PNql4_J8RNBuNwNL 640w, https://miro.medium.com/v2/resize:fit:720/0*PNql4_J8RNBuNwNL 720w, https://miro.medium.com/v2/resize:fit:750/0*PNql4_J8RNBuNwNL 750w, https://miro.medium.com/v2/resize:fit:786/0*PNql4_J8RNBuNwNL 786w, https://miro.medium.com/v2/resize:fit:828/0*PNql4_J8RNBuNwNL 828w, https://miro.medium.com/v2/resize:fit:1100/0*PNql4_J8RNBuNwNL 1100w, https://miro.medium.com/v2/resize:fit:268/0*PNql4_J8RNBuNwNL 268w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="126" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:201/0*PNql4_J8RNBuNwNL" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 134px;" width="134" /></picture></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="5694" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Looking to get started with Bicep? I authored and published the book <a class="af mj" href="https://www.amazon.com/Getting-started-Bicep-Infrastructure-Azure/dp/B098WK3MR7" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">Getting started with Bicep: Infrastructure as code on Azure</a></p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-53658945774393700142023-06-10T12:25:00.004+02:002023-06-10T12:25:37.838+02:00First glance at upcoming Bicep parameter files!<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjpXueNF21IHOY7fsdxXQFPnW_25bRM_YhWBrCteTsgRDkzqGWOfxwi5L5bc1CS0HoTzTmjpsYGh7p2HPyrw6BsyCRNx_EStmrvoVlxct6sHj_Wr1aTEZcfTHRMNU5OL3v8CKql6AbHQUlvNCLuJ5d4735AL2GavWlV7UYbeYFbuIXPJMJFzz07y_8dfQ" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="624" data-original-width="1100" height="182" src="https://blogger.googleusercontent.com/img/a/AVvXsEjpXueNF21IHOY7fsdxXQFPnW_25bRM_YhWBrCteTsgRDkzqGWOfxwi5L5bc1CS0HoTzTmjpsYGh7p2HPyrw6BsyCRNx_EStmrvoVlxct6sHj_Wr1aTEZcfTHRMNU5OL3v8CKql6AbHQUlvNCLuJ5d4735AL2GavWlV7UYbeYFbuIXPJMJFzz07y_8dfQ" width="320" /></a></div><br /> <span style="background-color: white; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em;">It’s probably the most heard question whenever I provide a talk on Bicep and dive into deploying Bicep files and the options to provide parameters:</span><p></p><blockquote class="mj mk ml" style="background-color: white; box-shadow: rgb(41, 41, 41) 3px 0px 0px 0px inset; box-sizing: inherit; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 0px 0px 0px -20px; padding-left: 23px;"><p class="ll lm mm ln b lo lp lq lr ls lt lu lv mn lx ly lz mo mb mc md mp mf mg mh mi fh bj" data-selectable-paragraph="" id="8408" style="box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;"><span class="fo" style="box-sizing: inherit;"><i>“Why is the parameters file you use while deploying a Bicep template to Azure still of type JSON?”</i></span></p></blockquote><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="856a" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">A very valid question, and <span class="ln fp" style="box-sizing: inherit; font-weight: 700;">this is about to change</span>! Beyond all of the awesome extra capabilities that Bicep provides compared to ARM Templates (based on JSON), a big benefit of Bicep is also the simplified syntax. Compared to ARM Templates, Bicep templates are much easier to read, author, debug and digest.</p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="00f0" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">But for the parameter files, you still need to revert to JSON. Today, the Bicep integration in VSCode and Visual Studio code provides options to generate a parameters files based on your Bicep files. Simply right click and select ‘Generate Parameters File’ as shown below.</p><figure class="mr ms mt mu mv le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx mq" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1057px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*Rku6flLJlb7L6pFq 640w, https://miro.medium.com/v2/resize:fit:720/0*Rku6flLJlb7L6pFq 720w, https://miro.medium.com/v2/resize:fit:750/0*Rku6flLJlb7L6pFq 750w, https://miro.medium.com/v2/resize:fit:786/0*Rku6flLJlb7L6pFq 786w, https://miro.medium.com/v2/resize:fit:828/0*Rku6flLJlb7L6pFq 828w, https://miro.medium.com/v2/resize:fit:1100/0*Rku6flLJlb7L6pFq 1100w, https://miro.medium.com/v2/resize:fit:1400/0*Rku6flLJlb7L6pFq 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*Rku6flLJlb7L6pFq 640w, https://miro.medium.com/v2/resize:fit:720/0*Rku6flLJlb7L6pFq 720w, https://miro.medium.com/v2/resize:fit:750/0*Rku6flLJlb7L6pFq 750w, https://miro.medium.com/v2/resize:fit:786/0*Rku6flLJlb7L6pFq 786w, https://miro.medium.com/v2/resize:fit:828/0*Rku6flLJlb7L6pFq 828w, https://miro.medium.com/v2/resize:fit:1100/0*Rku6flLJlb7L6pFq 1100w, https://miro.medium.com/v2/resize:fit:1400/0*Rku6flLJlb7L6pFq 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="297" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*Rku6flLJlb7L6pFq" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="01b4" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">The parameters file that is generated is of type JSON and looks like below. If you’ve worked with ARM templates in the past, this is the exact same parameters file we’re all used to.</p><figure class="mr ms mt mu mv le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx mw" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1426px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*SEYQLBrFf69ow4Xv 640w, https://miro.medium.com/v2/resize:fit:720/0*SEYQLBrFf69ow4Xv 720w, https://miro.medium.com/v2/resize:fit:750/0*SEYQLBrFf69ow4Xv 750w, https://miro.medium.com/v2/resize:fit:786/0*SEYQLBrFf69ow4Xv 786w, https://miro.medium.com/v2/resize:fit:828/0*SEYQLBrFf69ow4Xv 828w, https://miro.medium.com/v2/resize:fit:1100/0*SEYQLBrFf69ow4Xv 1100w, https://miro.medium.com/v2/resize:fit:1400/0*SEYQLBrFf69ow4Xv 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*SEYQLBrFf69ow4Xv 640w, https://miro.medium.com/v2/resize:fit:720/0*SEYQLBrFf69ow4Xv 720w, https://miro.medium.com/v2/resize:fit:750/0*SEYQLBrFf69ow4Xv 750w, https://miro.medium.com/v2/resize:fit:786/0*SEYQLBrFf69ow4Xv 786w, https://miro.medium.com/v2/resize:fit:828/0*SEYQLBrFf69ow4Xv 828w, https://miro.medium.com/v2/resize:fit:1100/0*SEYQLBrFf69ow4Xv 1100w, https://miro.medium.com/v2/resize:fit:1400/0*SEYQLBrFf69ow4Xv 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="491" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*SEYQLBrFf69ow4Xv" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="2bee" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">This is about to change! We’re close to the release of an feature that introduces Bicep parameters files. These are not based on JSON anymore, have the extension .bicepparam, and provide the same clean syntax we all love about Bicep!</p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="c4a1" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Today, the feature is still in experimental phase, so if you want to test it prior to release, make sure you allow the experimental feature ‘paramsFiles’ inside your bicepconfig file.</p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="72b0" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Let’s consider the following straightforward Bicep file which deploys an Azure Virtual Desktop host pool.</p><figure class="mr ms mt mu mv le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx mx" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1212px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*u5z1OEsdH9f6uM2p 640w, https://miro.medium.com/v2/resize:fit:720/0*u5z1OEsdH9f6uM2p 720w, https://miro.medium.com/v2/resize:fit:750/0*u5z1OEsdH9f6uM2p 750w, https://miro.medium.com/v2/resize:fit:786/0*u5z1OEsdH9f6uM2p 786w, https://miro.medium.com/v2/resize:fit:828/0*u5z1OEsdH9f6uM2p 828w, https://miro.medium.com/v2/resize:fit:1100/0*u5z1OEsdH9f6uM2p 1100w, https://miro.medium.com/v2/resize:fit:1400/0*u5z1OEsdH9f6uM2p 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*u5z1OEsdH9f6uM2p 640w, https://miro.medium.com/v2/resize:fit:720/0*u5z1OEsdH9f6uM2p 720w, https://miro.medium.com/v2/resize:fit:750/0*u5z1OEsdH9f6uM2p 750w, https://miro.medium.com/v2/resize:fit:786/0*u5z1OEsdH9f6uM2p 786w, https://miro.medium.com/v2/resize:fit:828/0*u5z1OEsdH9f6uM2p 828w, https://miro.medium.com/v2/resize:fit:1100/0*u5z1OEsdH9f6uM2p 1100w, https://miro.medium.com/v2/resize:fit:1400/0*u5z1OEsdH9f6uM2p 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="498" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*u5z1OEsdH9f6uM2p" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="b68e" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Below is what the corresponding .bicepparam file looks like.</p><figure class="mr ms mt mu mv le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx my" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 773px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*CKMoWhHb3sSHfF93 640w, https://miro.medium.com/v2/resize:fit:720/0*CKMoWhHb3sSHfF93 720w, https://miro.medium.com/v2/resize:fit:750/0*CKMoWhHb3sSHfF93 750w, https://miro.medium.com/v2/resize:fit:786/0*CKMoWhHb3sSHfF93 786w, https://miro.medium.com/v2/resize:fit:828/0*CKMoWhHb3sSHfF93 828w, https://miro.medium.com/v2/resize:fit:1100/0*CKMoWhHb3sSHfF93 1100w, https://miro.medium.com/v2/resize:fit:1400/0*CKMoWhHb3sSHfF93 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*CKMoWhHb3sSHfF93 640w, https://miro.medium.com/v2/resize:fit:720/0*CKMoWhHb3sSHfF93 720w, https://miro.medium.com/v2/resize:fit:750/0*CKMoWhHb3sSHfF93 750w, https://miro.medium.com/v2/resize:fit:786/0*CKMoWhHb3sSHfF93 786w, https://miro.medium.com/v2/resize:fit:828/0*CKMoWhHb3sSHfF93 828w, https://miro.medium.com/v2/resize:fit:1100/0*CKMoWhHb3sSHfF93 1100w, https://miro.medium.com/v2/resize:fit:1400/0*CKMoWhHb3sSHfF93 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="415" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*CKMoWhHb3sSHfF93" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="011f" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Super clean, much less in terms of lines of code, and all of the complex syntax overhead is removed! I love it! Also note that a new keyword is introduced called ‘using’, here you specify the corresponding bicep template. As a result of that you also get the code completions and suggestions inside your .bicepparam files. For example when a parameter is missing inside your .bicepparam, the VSCode integration knows about this and you get the following error</p><figure class="mr ms mt mu mv le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx mz" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1188px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*rMVk8gUybvjmdSpY 640w, https://miro.medium.com/v2/resize:fit:720/0*rMVk8gUybvjmdSpY 720w, https://miro.medium.com/v2/resize:fit:750/0*rMVk8gUybvjmdSpY 750w, https://miro.medium.com/v2/resize:fit:786/0*rMVk8gUybvjmdSpY 786w, https://miro.medium.com/v2/resize:fit:828/0*rMVk8gUybvjmdSpY 828w, https://miro.medium.com/v2/resize:fit:1100/0*rMVk8gUybvjmdSpY 1100w, https://miro.medium.com/v2/resize:fit:1400/0*rMVk8gUybvjmdSpY 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*rMVk8gUybvjmdSpY 640w, https://miro.medium.com/v2/resize:fit:720/0*rMVk8gUybvjmdSpY 720w, https://miro.medium.com/v2/resize:fit:750/0*rMVk8gUybvjmdSpY 750w, https://miro.medium.com/v2/resize:fit:786/0*rMVk8gUybvjmdSpY 786w, https://miro.medium.com/v2/resize:fit:828/0*rMVk8gUybvjmdSpY 828w, https://miro.medium.com/v2/resize:fit:1100/0*rMVk8gUybvjmdSpY 1100w, https://miro.medium.com/v2/resize:fit:1400/0*rMVk8gUybvjmdSpY 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="350" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*rMVk8gUybvjmdSpY" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="9d1b" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">And of course the Bicep language integration inside VSCode and Visual Studio code helps you fix this in no time!</p><figure class="mr ms mt mu mv le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg eb lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx na" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 995px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*w-D0O96OfwsoE6gQ 640w, https://miro.medium.com/v2/resize:fit:720/0*w-D0O96OfwsoE6gQ 720w, https://miro.medium.com/v2/resize:fit:750/0*w-D0O96OfwsoE6gQ 750w, https://miro.medium.com/v2/resize:fit:786/0*w-D0O96OfwsoE6gQ 786w, https://miro.medium.com/v2/resize:fit:828/0*w-D0O96OfwsoE6gQ 828w, https://miro.medium.com/v2/resize:fit:1100/0*w-D0O96OfwsoE6gQ 1100w, https://miro.medium.com/v2/resize:fit:1400/0*w-D0O96OfwsoE6gQ 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*w-D0O96OfwsoE6gQ 640w, https://miro.medium.com/v2/resize:fit:720/0*w-D0O96OfwsoE6gQ 720w, https://miro.medium.com/v2/resize:fit:750/0*w-D0O96OfwsoE6gQ 750w, https://miro.medium.com/v2/resize:fit:786/0*w-D0O96OfwsoE6gQ 786w, https://miro.medium.com/v2/resize:fit:828/0*w-D0O96OfwsoE6gQ 828w, https://miro.medium.com/v2/resize:fit:1100/0*w-D0O96OfwsoE6gQ 1100w, https://miro.medium.com/v2/resize:fit:1400/0*w-D0O96OfwsoE6gQ 1400w" style="box-sizing: inherit;"></source><img alt="" class="bg lj lk c" height="366" loading="lazy" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/0*w-D0O96OfwsoE6gQ" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="6ae2" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Bicep parameters files are expected to become available soon as part of version 0.18! Once available I’ll share more details and options like for example the ability to generate a .bicepparam file from your Bicep file, VSCode deploy and much more!</p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="9e05" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Looking to get started with Bicep? I authored and published the book <a class="af nb" href="https://www.amazon.com/Getting-started-Bicep-Infrastructure-Azure/dp/B098WK3MR7" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">Getting started with Bicep: Infrastructure as code on Azure</a></p><p class="pw-post-body-paragraph ll lm fo ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi fh bj" data-selectable-paragraph="" id="df27" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;"><em class="mm" style="box-sizing: inherit;">p.s. I love the Microsoft AI Image creator, it created the header for this post in seconds!</em></p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-27514951615311832242023-05-24T22:24:00.006+02:002023-05-25T08:24:03.483+02:00Using Bicep Linter Rules to control allowed resource API versions<p><span style="background-color: white;"></span></p><div class="separator" style="clear: both; font-size: var(--font-size-large); text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjIBx60iFnh7ErgAf9jc3jmXambwko1ySZ2PxfhLxe0flt-o0sp40ebrzvyeAi0Bgn7X5CIn8EOZSEujQcbFAP0XSjJmcrUzPOkz2ZaVZe3aPWRDt2skKdHl4eHB4PdCqr_CvCcINpLwBTaGEkvC40fMv4Rwr_zEayn8K8fdSbBsPjZCtFxkM2kE2Nifg" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="600" data-original-width="775" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEjIBx60iFnh7ErgAf9jc3jmXambwko1ySZ2PxfhLxe0flt-o0sp40ebrzvyeAi0Bgn7X5CIn8EOZSEujQcbFAP0XSjJmcrUzPOkz2ZaVZe3aPWRDt2skKdHl4eHB4PdCqr_CvCcINpLwBTaGEkvC40fMv4Rwr_zEayn8K8fdSbBsPjZCtFxkM2kE2Nifg" width="310" /></a></div><br /><br /><span style="font-size: large;">L</span><span color="rgba(0, 0, 0, 0.9)" face="-apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif" style="background-color: white; font-size: var(--font-size-large);">inter rules are a very powerful feature of the Bicep Infrastructure as Code language for Azure. Based on Linter rules, you can check your Bicep templates for syntax errors and best practice violations. Complying with coding standards improves your overall Bicep template quality.</span><p></p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Linter rules were introduced in version 0.4. That already seems like ages ago, but I remember that release coming out as I was working on <a href="https://www.amazon.com/Getting-started-Bicep-Infrastructure-Azure/dp/B098WK3MR7" style="background-color: var(--artdeco-reset-link-background-color-transparent); border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: break-word; padding: var(--artdeco-reset-base-padding-zero); text-decoration: var(--artdeco-reset-link-text-decoration-none); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">my Bicep book</a> at the time.</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">3 weeks ago, Bicep version 0.17.1 was released. Amongst other features and improvements, this version also introduces a new linter rule update. <b>MaxAgeInDays </b>configuration is now added to be used with the <b>use-recent-api-versions</b> linter rule.</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">The property does what it says, the property <span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><b>MaxAgeInDays </b></span>allows you to specify how old (how many days) an API version is allowed to be in order to be able to use it. This allows you to put restrictions on the maximum age of API versions in your code. It is always recommended to use the most recent API versions for your resource declarations, but sometimes you might need to allow older API versions, or you might want to enforce a certain API age.</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Time to upgrade! The easiest way to upgrade is to run the following command:</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><b>az bicep upgrade</b></span></p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember38" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQEXhtuJ6H6bnQ/article-inline_image-shrink_1500_2232/0/1684959235629?e=1690416000&v=beta&t=195uyytNu7gZzlOR0KTMBlkR0iRu2mEdnvaLEjBDaTE" style="background-position: 50% 50%; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">The sample below shows how to use the new property.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember39" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQEKJUg_9hxq_g/article-inline_image-shrink_1500_2232/0/1684959247091?e=1690416000&v=beta&t=SWUGwj8ANsSFEUGgllkRzNN3RCHa5WUXvEPVjnF3CHw" style="background-position: 50% 50%; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Simply add the <span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">maxAllowedAgeInDays </span>property to your <span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">use-recent-api-versions</span> linter rule and provide the number of days as an integer. The default value is 730 days, which is equal to 2 years.</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Providing a 0 means the apiVersion must be the latest (non-preview) version, or the latest preview version if there are only previews versions available at that point in time.</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Based on the level of the linter rule, a Bicep Template using an ‘oudated’ API version will now get a warning as shown below which still allows you to build the template.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember40" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQHqMoiLF1tihg/article-inline_image-shrink_1500_2232/0/1684959257978?e=1690416000&v=beta&t=A3m8K0QlqHWMs_h95LipOommjLBnSVJxqH2ktkh13r8" style="background-position: 50% 50%; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Or an error as shown below, which prevents you from building the template.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view" id="ember41" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQHT4UgAo3NGPQ/article-inline_image-shrink_1000_1488/0/1684959269253?e=1690416000&v=beta&t=sdlQYzozodxo5Jq07_xZ6CRFVJg9T6v44whnLzkcdRo" style="background-position: 50% 50%; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">The flexibility to be able to configure the allows API versions is a great asset in your Bicep toolbox!</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><i>p.s. Microsoft Bing Image Creator Powered by Dall-E created the header image by simply asking "Bicep combined with computer programming", how cool is that!?</i></span></p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-17875186151983294562023-05-07T10:36:00.000+02:002023-05-07T10:36:02.373+02:00Azure Bicep public registry<p> <img alt="" class="bg lj lk c" height="349" loading="eager" role="presentation" src="https://miro.medium.com/v2/resize:fit:1050/1*fe-2uxeIfFOblZig26zrnw.png" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></p><p class="pw-post-body-paragraph ll lm fl ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi ey bj" data-selectable-paragraph="" id="6d1c" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">One of the great benefits of Bicep Infrastructure is Code is reusing your code. Leveraging modules within Bicep is the perfect example of that. By using these features of Bicep, you can write reusable code that can be shared and used across multiple deployments. This can save time and effort and help ensure consistency across your Azure resources.</p><p class="pw-post-body-paragraph ll lm fl ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi ey bj" data-selectable-paragraph="" id="618e" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Some examples on how to reuse your code are:</p><p class="pw-post-body-paragraph ll lm fl ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi ey bj" data-selectable-paragraph="" id="82a4" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">- <span class="ln fm" style="box-sizing: inherit; font-weight: 700;">Parameters</span>: Bicep allows you to parameterize your code so you can define parameters that can be passed in when the code is deployed. This makes it easy to reuse code with different configurations or environments. For example, you might define a parameter for the name of a Vnet, which can be passed in when the code is deployed in different environments.</p><p class="pw-post-body-paragraph ll lm fl ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi ey bj" data-selectable-paragraph="" id="7a59" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">- <span class="ln fm" style="box-sizing: inherit; font-weight: 700;">loops</span>: Bicep allows you to use loops to create multiple instances of a resource. This is very useful when you need to create multiple resources with similar configurations. For example, you might use a loop to create multiple virtual machines</p><p class="pw-post-body-paragraph ll lm fl ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi ey bj" data-selectable-paragraph="" id="137a" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">To me, the most useful example of reusability within Bicep in using Modules. Bicep allows you to create reusable modules that contain a definition of one or more Azure resources. You can define a module once and then reuse it in multiple Azure deployments. Modules can be stored in a separate Bicep file, which makes it easy to share them with others, for example by placing them in registries or template specs.</p><p class="pw-post-body-paragraph ll lm fl ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi ey bj" data-selectable-paragraph="" id="4eec" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">You might already be familiar with the concept of <span class="ln fm" style="box-sizing: inherit; font-weight: 700;">private registries</span> based on Azure Container Registry (ACR) resources in Azure. You can store Bicep Modules inside in ACR and share those within your team, company, or to anyone who you provide access. To process to create an ACR and add your Bicep modules is very straight forward and explained here: <a class="af mj" href="https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/private-module-registry?tabs=azure-powershell" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">Create private registry for Bicep module — Azure Resource Manager | Microsoft Learn</a>.</p><p class="pw-post-body-paragraph ll lm fl ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi ey bj" data-selectable-paragraph="" id="ec28" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">But did you know that Microsoft is also continuously working on expanding modules inside their Public Registry? This <span class="ln fm" style="box-sizing: inherit; font-weight: 700;">Public Registry</span> is based on Microsoft Container Registry (MCR).</p><p class="pw-post-body-paragraph ll lm fl ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi ey bj" data-selectable-paragraph="" id="01c2" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">This is the new location where you can find all Bicep modules provided in the public registry</p><p class="pw-post-body-paragraph ll lm fl ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi ey bj" data-selectable-paragraph="" id="902f" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;"><a class="af mj" href="http://aka.ms/br-module-index" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank"><span class="ln fm" style="box-sizing: inherit; font-weight: 700;">aka.ms/br-module-index</span></a></p><p class="pw-post-body-paragraph ll lm fl ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi ey bj" data-selectable-paragraph="" id="323f" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">These are nicely ordered and easy to navigate:</p><figure class="ml mm mn mo mp le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lf lg dj lh bg li" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 680px; z-index: auto;" tabindex="0"><div class="kw kx mk" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 903px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*Rlhk3m2bLFUHHL9o 640w, https://miro.medium.com/v2/resize:fit:720/0*Rlhk3m2bLFUHHL9o 720w, https://miro.medium.com/v2/resize:fit:750/0*Rlhk3m2bLFUHHL9o 750w, https://miro.medium.com/v2/resize:fit:786/0*Rlhk3m2bLFUHHL9o 786w, https://miro.medium.com/v2/resize:fit:828/0*Rlhk3m2bLFUHHL9o 828w, https://miro.medium.com/v2/resize:fit:1100/0*Rlhk3m2bLFUHHL9o 1100w, https://miro.medium.com/v2/resize:fit:1400/0*Rlhk3m2bLFUHHL9o 1400w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/0*Rlhk3m2bLFUHHL9o 640w, https://miro.medium.com/v2/resize:fit:720/0*Rlhk3m2bLFUHHL9o 720w, https://miro.medium.com/v2/resize:fit:750/0*Rlhk3m2bLFUHHL9o 750w, https://miro.medium.com/v2/resize:fit:786/0*Rlhk3m2bLFUHHL9o 786w, https://miro.medium.com/v2/resize:fit:828/0*Rlhk3m2bLFUHHL9o 828w, https://miro.medium.com/v2/resize:fit:1100/0*Rlhk3m2bLFUHHL9o 1100w, https://miro.medium.com/v2/resize:fit:1400/0*Rlhk3m2bLFUHHL9o 1400w" style="box-sizing: inherit;"></source><img alt="aka.ms/br-module-index" class="bg lj lk c" height="578" loading="lazy" src="https://miro.medium.com/v2/resize:fit:1050/0*Rlhk3m2bLFUHHL9o" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 680px;" width="700" /></picture></div></div></figure><p class="pw-post-body-paragraph ll lm fl ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi ey bj" data-selectable-paragraph="" id="b7fb" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Contributing to these modules is currently limited to Microsoft employees, but you can propose new modules or report bugs by opening an issue via <a class="af mj" href="https://github.com/Azure/bicep-registry-modules/issues" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">GitHub</a>.</p><p class="pw-post-body-paragraph ll lm fl ln b lo lp lq lr ls lt lu lv lw lx ly lz ma mb mc md me mf mg mh mi ey bj" data-selectable-paragraph="" id="4c99" style="background-color: white; box-sizing: inherit; color: #292929; font-family: source-serif-pro, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Looking to get started with Bicep? <a class="af mj" href="https://www.amazon.com/Getting-started-Bicep-Infrastructure-Azure/dp/B098WK3MR7" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">I published a book on how to get started</a>, which covers reusing your code and much more! Available on Amazon in Kindle, Paperback, and hard copy format!</p><figure class="ml mm mn mo mp le kw kx paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="kw kx mq" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 215px;"><picture style="box-sizing: inherit;"><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 215px" srcset="https://miro.medium.com/v2/resize:fit:640/0*8PrF_GBuDkmptkeu 640w, https://miro.medium.com/v2/resize:fit:720/0*8PrF_GBuDkmptkeu 720w, https://miro.medium.com/v2/resize:fit:750/0*8PrF_GBuDkmptkeu 750w, https://miro.medium.com/v2/resize:fit:786/0*8PrF_GBuDkmptkeu 786w, https://miro.medium.com/v2/resize:fit:828/0*8PrF_GBuDkmptkeu 828w, https://miro.medium.com/v2/resize:fit:1100/0*8PrF_GBuDkmptkeu 1100w, https://miro.medium.com/v2/resize:fit:430/0*8PrF_GBuDkmptkeu 430w" style="box-sizing: inherit;" type="image/webp"></source><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 215px" srcset="https://miro.medium.com/v2/resize:fit:640/0*8PrF_GBuDkmptkeu 640w, https://miro.medium.com/v2/resize:fit:720/0*8PrF_GBuDkmptkeu 720w, https://miro.medium.com/v2/resize:fit:750/0*8PrF_GBuDkmptkeu 750w, https://miro.medium.com/v2/resize:fit:786/0*8PrF_GBuDkmptkeu 786w, https://miro.medium.com/v2/resize:fit:828/0*8PrF_GBuDkmptkeu 828w, https://miro.medium.com/v2/resize:fit:1100/0*8PrF_GBuDkmptkeu 1100w, https://miro.medium.com/v2/resize:fit:430/0*8PrF_GBuDkmptkeu 430w" style="box-sizing: inherit;"></source><img alt="https://www.amazon.com/Getting-started-Bicep-Infrastructure-Azure/dp/B098WK3MR7" class="bg lj lk c" height="277" loading="lazy" src="https://miro.medium.com/v2/resize:fit:323/0*8PrF_GBuDkmptkeu" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 215px;" width="215" /></picture></div></figure>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-85917272499053689612023-02-13T22:31:00.004+01:002023-02-13T22:31:46.764+01:005 fun and easy ways to transition to Bicep and save time!<p style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 0px 0px 1.6rem; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: pre-wrap;"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh7pIL3by3B0azO4IouUX4G3X4A0TOnt2nZQQYlkPKv10uL6aqUOGHFUJxYqHSVlsUykIvHGUBVA_Q6fFp7HKsheCzVlin3vMmvR6n3jzB8ahqb-jMZFY5lozSgCN9rQ6WshI9MI-JgK3YLdC9n1XCzDaV2IRq00q0ayq5IO75LKOR11enUXHlusNJX8Q" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="600" data-original-width="1280" height="150" src="https://blogger.googleusercontent.com/img/a/AVvXsEh7pIL3by3B0azO4IouUX4G3X4A0TOnt2nZQQYlkPKv10uL6aqUOGHFUJxYqHSVlsUykIvHGUBVA_Q6fFp7HKsheCzVlin3vMmvR6n3jzB8ahqb-jMZFY5lozSgCN9rQ6WshI9MI-JgK3YLdC9n1XCzDaV2IRq00q0ayq5IO75LKOR11enUXHlusNJX8Q" width="320" /></a></div><br />In you are into Infrastructure as Code for Azure, you probably have heard about Bicep by now, or maybe (hopefully) you're actively using it. If not, this blog post provides some guidance to help you with your personal transformation (or should I say transpilation 😊) towards Bicep. In other words, if you’ve been developing ARM Templates (JSON) a lot, here are some cool and fast ways to learn Bicep using VSCode.<p></p><p style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: pre-wrap;"><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><b>Just in case you’ve never heard about Bicep, what is it in a nutshell?
</b></span><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"> </span><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-style: var(--artdeco-reset-typography-font-style-italic); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Bicep is like having a magic wand for Azure infrastructure as code. It's a new language that makes it super easy to create and manage Azure resources in a declarative manner. You simply write down what you want your Azure environment to look like, and Bicep takes care of the heavy lifting for you. It's like ordering a pizza, but instead of pizza, you get a fully configured Azure environment, and instead of a delivery guy, you have Bicep! Just wave your Bicep wand and poof, your Azure resources appear exactly as you specified.*
</span><i><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"> *</span><span style="font-size: var(--font-size-large);"> Full disclose I had ChatGTP write this fun description of Bicep! 😊</span></i></p><p style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: pre-wrap;"><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><b>1. Decompile
</b></span><span style="font-size: var(--font-size-large);">Right click any existing ARM Template based on JSON and simply select “Decompile to Bicep”. Within a second you are presented with the Bicep equivalent of your ARM Template. This is a super easy way of reverse engineering and learn Bicep. Note, decompile is always based on best effort. If the template can be decompiled, it will always result in a valid Bicep Template but might not be 100% optimized. It can however provide you with a great head start. In case you are wondering, yes you can also decompile using the Az CLI, PowerShell and the Bicep executable.</span></p><figure class="slate-resizable-image-embed slate-image-embed__resize-full-width" contenteditable="false" data-imgsrc="https://media.licdn.com/dms/image/D4D12AQGRw0eTCxMU3A/article-inline_image-shrink_1000_1488/0/1676322826745?e=1681948800&v=beta&t=dmCDa2ah2GhmtQY00ya3TeSv1Ttf6YCjRLRM8DEE8u4" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; clear: both; color: rgba(0, 0, 0, 0.9); cursor: text; display: var(--artdeco-reset-base-display-block); font-family: Helvetica, Arial, sans-serif; font-size: 13px; margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); position: relative; text-align: center; transition: margin 223ms ease 0s; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: pre-wrap;"><ul class="slate-image-embed__toolbar" data-slate-ignore="true" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-size: var(--font-size-large); height: 48px; left: 0px; line-height: 1.75; margin: 0px; opacity: 0; padding: 0px 0px 8px; position: absolute; top: 0px; transition: all 332ms ease-in 0s; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;"><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Align to the left" class="slate-image-embed-button slate-image-embed-button__resize-left artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-align-left"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zm-6 6h6V7h-6zm0 4h6v-2h-6zm0 4h6v-2h-6zM3 21h18v-2H3zM13 7H3v10h10z"></path></svg></li-icon></button></li><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Align in the middle" class="slate-image-embed-button slate-image-embed-button__resize-middle artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-align-center"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zM3 21h18v-2H3zM7 7v10h10V7z"></path></svg></li-icon></button></li><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Resize to full width" aria-pressed="true" class="slate-image-embed-button slate-image-embed-button__resize-full-width artdeco-button artdeco-button--circle artdeco-button--muted slate-image-embed-button__active" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-full-width"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zM3 21h18v-2H3zm0-4h18V7H3z"></path></svg></li-icon></button></li><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Align to the right" class="slate-image-embed-button slate-image-embed-button__resize-right artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-align-right"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zM9 7H3v2h6zm0 4H3v2h6zm0 4H3v2h6zm-6 6h18v-2H3zm8-4h10V7H11z"></path></svg></li-icon></button></li></ul><button aria-label="Add a link to the embedded image" class="slate-image-embed__link-button artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; opacity: 0; overflow: hidden; padding: 0px !important; position: absolute; right: 0px; top: 0px; touch-action: manipulation; transition: all 332ms ease-in 0s; vertical-align: middle; width: 4rem; z-index: 0;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="link"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M19.83 4.17a4 4 0 00-5.66 0l-2 2A4 4 0 0011 9a4 4 0 00.56 2l-.54.54a4 4 0 00-4.85.63l-2 2a4 4 0 005.66 5.66l2-2A4 4 0 0013 15a4 4 0 00-.56-2l.54-.54a4 4 0 004.85-.63l2-2a4 4 0 000-5.66zM11 15a2 2 0 01-.59 1.41l-2 2a2 2 0 11-3-2.6l.22-.22 2-2A2 2 0 019 13a2.24 2.24 0 01.51.07l-1.22 1.22a1 1 0 000 1.41 1 1 0 001.41 0l1.22-1.22A2.24 2.24 0 0111 15zm7.41-6.59l-2 2A2 2 0 0115 11a2.24 2.24 0 01-.51-.07l1.22-1.22A1 1 0 0016 9a1 1 0 00-.29-.7A1 1 0 0015 8a1 1 0 00-.7.29l-1.23 1.22A2.24 2.24 0 0113 9a2 2 0 01.59-1.41l2-2a2 2 0 013 2.6z"></path></svg></li-icon></button><button aria-label="Add alt text to image" class="slate-image-embed__desc-button artdeco-button artdeco-button--muted artdeco-button--1 align-items-center" data-slate-ignore="true" style="align-items: center !important; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-large) !important; border-style: none; border-width: initial; cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.4rem; font-weight: 600; height: 2.4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 2.4rem; min-width: 0px; overflow: hidden; padding: 0px 0.8rem; position: absolute; right: 0.8rem; top: 0.8rem; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle;"><li-icon aria-hidden="true" class="mr1" size="small" style="box-sizing: border-box; display: inline-block; margin-right: 4px !important; overflow: hidden; position: relative;" type="pencil"><svg class="mercado-match" data-supported-dps="16x16" fill="currentColor" focusable="false" height="16" viewbox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M14.13 1.86a3 3 0 00-4.17 0l-7 7L1 15l6.19-2 6.94-7a3 3 0 000-4.16zm-8.36 9.71l-1.35-1.34L9.64 5 11 6.35z"></path></svg></li-icon><span class="t-sans" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; font-family: var(--artdeco-typography-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Add alt text</span></button><img alt="No alt text provided for this image" class="slate-image-embed__resize-full-width" data-media-urn="urn:li:digitalmediaAsset:D4D12AQGRw0eTCxMU3A" height="459" src="https://media.licdn.com/dms/image/D4D12AQGRw0eTCxMU3A/article-inline_image-shrink_1000_1488/0/1676322826745?e=1681948800&v=beta&t=dmCDa2ah2GhmtQY00ya3TeSv1Ttf6YCjRLRM8DEE8u4" style="background: var(--artdeco-reset-base-background-transparent); border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: var(--color-text); display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: 0px auto; max-width: 720px; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); transition: outline 223ms ease 0s, width 223ms ease 0s; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" width="570" /><figcaption contenteditable="true" data-placeholder="Add caption for image (optional)" spellcheck="false" style="align-items: center; background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: var(--color-text-low-emphasis); display: flex; font-size: var(--font-size-small); justify-content: center; margin-top: 1.6rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" tabindex="0"></figcaption></figure><p style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: pre-wrap;"><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><b>2. Paste JSON as Bicep
</b></span><span style="font-size: var(--font-size-large);"> If you have any existing JSON code in your clipboard, for example copied from any resource online, you can directly copy it as Bicep code in VSCode. How cool is that? 😊. With a flick of a wand (or rather, a paste into VSCode), your JSON code is transformed into beautiful, readable Bicep code.</span></p><figure class="slate-resizable-image-embed slate-image-embed__resize-full-width" contenteditable="false" data-imgsrc="https://media.licdn.com/dms/image/D4D12AQHDARub8L-oJQ/article-inline_image-shrink_1000_1488/0/1676322848234?e=1681948800&v=beta&t=5wQrsEnfhbrOBVyexSOj1DOoMrhplAT-zdqUbdOyMoQ" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; clear: both; color: rgba(0, 0, 0, 0.9); cursor: text; display: var(--artdeco-reset-base-display-block); font-family: Helvetica, Arial, sans-serif; font-size: 13px; margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); position: relative; text-align: center; transition: margin 223ms ease 0s; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: pre-wrap;"><ul class="slate-image-embed__toolbar" data-slate-ignore="true" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-size: var(--font-size-large); height: 48px; left: 0px; line-height: 1.75; margin: 0px; opacity: 0; padding: 0px 0px 8px; position: absolute; top: 0px; transition: all 332ms ease-in 0s; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;"><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Align to the left" class="slate-image-embed-button slate-image-embed-button__resize-left artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-align-left"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zm-6 6h6V7h-6zm0 4h6v-2h-6zm0 4h6v-2h-6zM3 21h18v-2H3zM13 7H3v10h10z"></path></svg></li-icon></button></li><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Align in the middle" class="slate-image-embed-button slate-image-embed-button__resize-middle artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-align-center"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zM3 21h18v-2H3zM7 7v10h10V7z"></path></svg></li-icon></button></li><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Resize to full width" aria-pressed="true" class="slate-image-embed-button slate-image-embed-button__resize-full-width artdeco-button artdeco-button--circle artdeco-button--muted slate-image-embed-button__active" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-full-width"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zM3 21h18v-2H3zm0-4h18V7H3z"></path></svg></li-icon></button></li><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Align to the right" class="slate-image-embed-button slate-image-embed-button__resize-right artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-align-right"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zM9 7H3v2h6zm0 4H3v2h6zm0 4H3v2h6zm-6 6h18v-2H3zm8-4h10V7H11z"></path></svg></li-icon></button></li></ul><button aria-label="Add a link to the embedded image" class="slate-image-embed__link-button artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; opacity: 0; overflow: hidden; padding: 0px !important; position: absolute; right: 0px; top: 0px; touch-action: manipulation; transition: all 332ms ease-in 0s; vertical-align: middle; width: 4rem; z-index: 0;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="link"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M19.83 4.17a4 4 0 00-5.66 0l-2 2A4 4 0 0011 9a4 4 0 00.56 2l-.54.54a4 4 0 00-4.85.63l-2 2a4 4 0 005.66 5.66l2-2A4 4 0 0013 15a4 4 0 00-.56-2l.54-.54a4 4 0 004.85-.63l2-2a4 4 0 000-5.66zM11 15a2 2 0 01-.59 1.41l-2 2a2 2 0 11-3-2.6l.22-.22 2-2A2 2 0 019 13a2.24 2.24 0 01.51.07l-1.22 1.22a1 1 0 000 1.41 1 1 0 001.41 0l1.22-1.22A2.24 2.24 0 0111 15zm7.41-6.59l-2 2A2 2 0 0115 11a2.24 2.24 0 01-.51-.07l1.22-1.22A1 1 0 0016 9a1 1 0 00-.29-.7A1 1 0 0015 8a1 1 0 00-.7.29l-1.23 1.22A2.24 2.24 0 0113 9a2 2 0 01.59-1.41l2-2a2 2 0 013 2.6z"></path></svg></li-icon></button><button aria-label="Add alt text to image" class="slate-image-embed__desc-button artdeco-button artdeco-button--muted artdeco-button--1 align-items-center" data-slate-ignore="true" style="align-items: center !important; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-large) !important; border-style: none; border-width: initial; cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.4rem; font-weight: 600; height: 2.4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 2.4rem; min-width: 0px; overflow: hidden; padding: 0px 0.8rem; position: absolute; right: 0.8rem; top: 0.8rem; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle;"><li-icon aria-hidden="true" class="mr1" size="small" style="box-sizing: border-box; display: inline-block; margin-right: 4px !important; overflow: hidden; position: relative;" type="pencil"><svg class="mercado-match" data-supported-dps="16x16" fill="currentColor" focusable="false" height="16" viewbox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M14.13 1.86a3 3 0 00-4.17 0l-7 7L1 15l6.19-2 6.94-7a3 3 0 000-4.16zm-8.36 9.71l-1.35-1.34L9.64 5 11 6.35z"></path></svg></li-icon><span class="t-sans" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; font-family: var(--artdeco-typography-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Add alt text</span></button><img alt="No alt text provided for this image" class="slate-image-embed__resize-full-width" data-media-urn="urn:li:digitalmediaAsset:D4D12AQHDARub8L-oJQ" src="https://media.licdn.com/dms/image/D4D12AQHDARub8L-oJQ/article-inline_image-shrink_1000_1488/0/1676322848234?e=1681948800&v=beta&t=5wQrsEnfhbrOBVyexSOj1DOoMrhplAT-zdqUbdOyMoQ" style="background: var(--artdeco-reset-base-background-transparent); border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: var(--color-text); display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: 0px auto; max-width: 720px; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); transition: outline 223ms ease 0s, width 223ms ease 0s; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /><figcaption contenteditable="true" data-placeholder="Add caption for image (optional)" spellcheck="false" style="align-items: center; background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: var(--color-text-low-emphasis); display: flex; font-size: var(--font-size-small); justify-content: center; margin-top: 1.6rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" tabindex="0"></figcaption></figure><p style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: pre-wrap;">It's important to note that this feature is currently in its experimental phase, and as such, may have limitations or unfinished elements.</p><figure class="slate-resizable-image-embed slate-image-embed__resize-full-width" contenteditable="false" data-imgsrc="https://media.licdn.com/dms/image/D4D12AQFrnpqTMlGodg/article-inline_image-shrink_1000_1488/0/1676322870586?e=1681948800&v=beta&t=9y9bsqJWea2Q4FZdjKBB9f1h7RFtWlAUOEHSrY6QNQo" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; clear: both; color: rgba(0, 0, 0, 0.9); cursor: text; display: var(--artdeco-reset-base-display-block); font-family: Helvetica, Arial, sans-serif; font-size: 13px; margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); position: relative; text-align: center; transition: margin 223ms ease 0s; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: pre-wrap;"><ul class="slate-image-embed__toolbar" data-slate-ignore="true" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-size: var(--font-size-large); height: 48px; left: 0px; line-height: 1.75; margin: 0px; opacity: 0; padding: 0px 0px 8px; position: absolute; top: 0px; transition: all 332ms ease-in 0s; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;"><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Align to the left" class="slate-image-embed-button slate-image-embed-button__resize-left artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-align-left"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zm-6 6h6V7h-6zm0 4h6v-2h-6zm0 4h6v-2h-6zM3 21h18v-2H3zM13 7H3v10h10z"></path></svg></li-icon></button></li><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Align in the middle" class="slate-image-embed-button slate-image-embed-button__resize-middle artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-align-center"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zM3 21h18v-2H3zM7 7v10h10V7z"></path></svg></li-icon></button></li><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Resize to full width" aria-pressed="true" class="slate-image-embed-button slate-image-embed-button__resize-full-width artdeco-button artdeco-button--circle artdeco-button--muted slate-image-embed-button__active" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-full-width"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zM3 21h18v-2H3zm0-4h18V7H3z"></path></svg></li-icon></button></li><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Align to the right" class="slate-image-embed-button slate-image-embed-button__resize-right artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-align-right"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zM9 7H3v2h6zm0 4H3v2h6zm0 4H3v2h6zm-6 6h18v-2H3zm8-4h10V7H11z"></path></svg></li-icon></button></li></ul><button aria-label="Add a link to the embedded image" class="slate-image-embed__link-button artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; opacity: 0; overflow: hidden; padding: 0px !important; position: absolute; right: 0px; top: 0px; touch-action: manipulation; transition: all 332ms ease-in 0s; vertical-align: middle; width: 4rem; z-index: 0;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="link"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M19.83 4.17a4 4 0 00-5.66 0l-2 2A4 4 0 0011 9a4 4 0 00.56 2l-.54.54a4 4 0 00-4.85.63l-2 2a4 4 0 005.66 5.66l2-2A4 4 0 0013 15a4 4 0 00-.56-2l.54-.54a4 4 0 004.85-.63l2-2a4 4 0 000-5.66zM11 15a2 2 0 01-.59 1.41l-2 2a2 2 0 11-3-2.6l.22-.22 2-2A2 2 0 019 13a2.24 2.24 0 01.51.07l-1.22 1.22a1 1 0 000 1.41 1 1 0 001.41 0l1.22-1.22A2.24 2.24 0 0111 15zm7.41-6.59l-2 2A2 2 0 0115 11a2.24 2.24 0 01-.51-.07l1.22-1.22A1 1 0 0016 9a1 1 0 00-.29-.7A1 1 0 0015 8a1 1 0 00-.7.29l-1.23 1.22A2.24 2.24 0 0113 9a2 2 0 01.59-1.41l2-2a2 2 0 013 2.6z"></path></svg></li-icon></button><button aria-label="Add alt text to image" class="slate-image-embed__desc-button artdeco-button artdeco-button--muted artdeco-button--1 align-items-center" data-slate-ignore="true" style="align-items: center !important; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-large) !important; border-style: none; border-width: initial; cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.4rem; font-weight: 600; height: 2.4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 2.4rem; min-width: 0px; overflow: hidden; padding: 0px 0.8rem; position: absolute; right: 0.8rem; top: 0.8rem; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle;"><li-icon aria-hidden="true" class="mr1" size="small" style="box-sizing: border-box; display: inline-block; margin-right: 4px !important; overflow: hidden; position: relative;" type="pencil"><svg class="mercado-match" data-supported-dps="16x16" fill="currentColor" focusable="false" height="16" viewbox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M14.13 1.86a3 3 0 00-4.17 0l-7 7L1 15l6.19-2 6.94-7a3 3 0 000-4.16zm-8.36 9.71l-1.35-1.34L9.64 5 11 6.35z"></path></svg></li-icon><span class="t-sans" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; font-family: var(--artdeco-typography-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Add alt text</span></button><img alt="No alt text provided for this image" class="slate-image-embed__resize-full-width" data-media-urn="urn:li:digitalmediaAsset:D4D12AQFrnpqTMlGodg" src="https://media.licdn.com/dms/image/D4D12AQFrnpqTMlGodg/article-inline_image-shrink_1000_1488/0/1676322870586?e=1681948800&v=beta&t=9y9bsqJWea2Q4FZdjKBB9f1h7RFtWlAUOEHSrY6QNQo" style="background: var(--artdeco-reset-base-background-transparent); border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: var(--color-text); display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: 0px auto; max-width: 720px; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); transition: outline 223ms ease 0s, width 223ms ease 0s; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /><figcaption contenteditable="true" data-placeholder="Add caption for image (optional)" spellcheck="false" style="align-items: center; background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: var(--color-text-low-emphasis); display: flex; font-size: var(--font-size-small); justify-content: center; margin-top: 1.6rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" tabindex="0"></figcaption></figure><p style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: pre-wrap;"><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><b>3. Insert Resource
</b></span><span style="font-size: var(--font-size-large);">To utilize this feature, you will need to follow these steps:</span></p><p style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: pre-wrap;">- Copy the resource ID of an existing resource within your Azure environment.
<span style="font-size: var(--font-size-large);">- In your Bicep file, perform a right-click and select "Insert Resource" from the context menu.
</span><span style="font-size: var(--font-size-large);">- Paste the copied resource ID into the designated field.
</span><span style="font-size: var(--font-size-large);">- Upon executing these steps, the resource will be instantly available in Bicep, ready for use within your infrastructure as code deployment.</span></p><figure class="slate-resizable-image-embed slate-image-embed__resize-full-width" contenteditable="false" data-imgsrc="https://media.licdn.com/dms/image/D4D12AQFf2y-AZrDxHQ/article-inline_image-shrink_1000_1488/0/1676322884726?e=1681948800&v=beta&t=YoHnvoC4KeGSzJB1qIYM6meUc4eVwFDXyB21vDp4kck" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; clear: both; color: rgba(0, 0, 0, 0.9); cursor: text; display: var(--artdeco-reset-base-display-block); font-family: Helvetica, Arial, sans-serif; font-size: 13px; margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); position: relative; text-align: center; transition: margin 223ms ease 0s; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: pre-wrap;"><ul class="slate-image-embed__toolbar" data-slate-ignore="true" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-size: var(--font-size-large); height: 48px; left: 0px; line-height: 1.75; margin: 0px; opacity: 0; padding: 0px 0px 8px; position: absolute; top: 0px; transition: all 332ms ease-in 0s; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;"><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Align to the left" class="slate-image-embed-button slate-image-embed-button__resize-left artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-align-left"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zm-6 6h6V7h-6zm0 4h6v-2h-6zm0 4h6v-2h-6zM3 21h18v-2H3zM13 7H3v10h10z"></path></svg></li-icon></button></li><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Align in the middle" class="slate-image-embed-button slate-image-embed-button__resize-middle artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-align-center"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zM3 21h18v-2H3zM7 7v10h10V7z"></path></svg></li-icon></button></li><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Resize to full width" aria-pressed="true" class="slate-image-embed-button slate-image-embed-button__resize-full-width artdeco-button artdeco-button--circle artdeco-button--muted slate-image-embed-button__active" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-full-width"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zM3 21h18v-2H3zm0-4h18V7H3z"></path></svg></li-icon></button></li><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Align to the right" class="slate-image-embed-button slate-image-embed-button__resize-right artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-align-right"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zM9 7H3v2h6zm0 4H3v2h6zm0 4H3v2h6zm-6 6h18v-2H3zm8-4h10V7H11z"></path></svg></li-icon></button></li></ul><button aria-label="Add a link to the embedded image" class="slate-image-embed__link-button artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; opacity: 0; overflow: hidden; padding: 0px !important; position: absolute; right: 0px; top: 0px; touch-action: manipulation; transition: all 332ms ease-in 0s; vertical-align: middle; width: 4rem; z-index: 0;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="link"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M19.83 4.17a4 4 0 00-5.66 0l-2 2A4 4 0 0011 9a4 4 0 00.56 2l-.54.54a4 4 0 00-4.85.63l-2 2a4 4 0 005.66 5.66l2-2A4 4 0 0013 15a4 4 0 00-.56-2l.54-.54a4 4 0 004.85-.63l2-2a4 4 0 000-5.66zM11 15a2 2 0 01-.59 1.41l-2 2a2 2 0 11-3-2.6l.22-.22 2-2A2 2 0 019 13a2.24 2.24 0 01.51.07l-1.22 1.22a1 1 0 000 1.41 1 1 0 001.41 0l1.22-1.22A2.24 2.24 0 0111 15zm7.41-6.59l-2 2A2 2 0 0115 11a2.24 2.24 0 01-.51-.07l1.22-1.22A1 1 0 0016 9a1 1 0 00-.29-.7A1 1 0 0015 8a1 1 0 00-.7.29l-1.23 1.22A2.24 2.24 0 0113 9a2 2 0 01.59-1.41l2-2a2 2 0 013 2.6z"></path></svg></li-icon></button><button aria-label="Add alt text to image" class="slate-image-embed__desc-button artdeco-button artdeco-button--muted artdeco-button--1 align-items-center" data-slate-ignore="true" style="align-items: center !important; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-large) !important; border-style: none; border-width: initial; cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.4rem; font-weight: 600; height: 2.4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 2.4rem; min-width: 0px; overflow: hidden; padding: 0px 0.8rem; position: absolute; right: 0.8rem; top: 0.8rem; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle;"><li-icon aria-hidden="true" class="mr1" size="small" style="box-sizing: border-box; display: inline-block; margin-right: 4px !important; overflow: hidden; position: relative;" type="pencil"><svg class="mercado-match" data-supported-dps="16x16" fill="currentColor" focusable="false" height="16" viewbox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M14.13 1.86a3 3 0 00-4.17 0l-7 7L1 15l6.19-2 6.94-7a3 3 0 000-4.16zm-8.36 9.71l-1.35-1.34L9.64 5 11 6.35z"></path></svg></li-icon><span class="t-sans" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; font-family: var(--artdeco-typography-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Add alt text</span></button><img alt="No alt text provided for this image" class="slate-image-embed__resize-full-width" data-media-urn="urn:li:digitalmediaAsset:D4D12AQFf2y-AZrDxHQ" src="https://media.licdn.com/dms/image/D4D12AQFf2y-AZrDxHQ/article-inline_image-shrink_1000_1488/0/1676322884726?e=1681948800&v=beta&t=YoHnvoC4KeGSzJB1qIYM6meUc4eVwFDXyB21vDp4kck" style="background: var(--artdeco-reset-base-background-transparent); border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: var(--color-text); display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: 0px auto; max-width: 720px; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); transition: outline 223ms ease 0s, width 223ms ease 0s; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /><figcaption contenteditable="true" data-placeholder="Add caption for image (optional)" spellcheck="false" style="align-items: center; background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: var(--color-text-low-emphasis); display: flex; font-size: var(--font-size-small); justify-content: center; margin-top: 1.6rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" tabindex="0"></figcaption></figure><p style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: pre-wrap;"><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><b>4. Local ARM Template (JSON) as a module</b><span style="font-weight: var(--artdeco-reset-typography-font-weight-bold);">
</span></span><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"> </span><span style="font-size: var(--font-size-large);">If you have existing ARM Templates in JSON and, for whatever reason, don’t want to decompile to Bicep, you can also use an ARM Template as a module. Below is the syntax to use, this is the exact same syntax as Bicep modules. Very convenient and easy to use!</span></p><figure class="slate-resizable-image-embed slate-image-embed__resize-full-width" contenteditable="false" data-imgsrc="https://media.licdn.com/dms/image/D4D12AQE1j94Yszg55w/article-inline_image-shrink_1500_2232/0/1676322895807?e=1681948800&v=beta&t=8I1xm2ujRefF04FchuVkJtXvsLStF7h2IaUXmIEcKsg" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; clear: both; color: rgba(0, 0, 0, 0.9); cursor: text; display: var(--artdeco-reset-base-display-block); font-family: Helvetica, Arial, sans-serif; font-size: 13px; margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); position: relative; text-align: center; transition: margin 223ms ease 0s; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: pre-wrap;"><ul class="slate-image-embed__toolbar" data-slate-ignore="true" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-size: var(--font-size-large); height: 48px; left: 0px; line-height: 1.75; margin: 0px; opacity: 0; padding: 0px 0px 8px; position: absolute; top: 0px; transition: all 332ms ease-in 0s; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;"><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Align to the left" class="slate-image-embed-button slate-image-embed-button__resize-left artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-align-left"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zm-6 6h6V7h-6zm0 4h6v-2h-6zm0 4h6v-2h-6zM3 21h18v-2H3zM13 7H3v10h10z"></path></svg></li-icon></button></li><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Align in the middle" class="slate-image-embed-button slate-image-embed-button__resize-middle artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-align-center"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zM3 21h18v-2H3zM7 7v10h10V7z"></path></svg></li-icon></button></li><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Resize to full width" aria-pressed="true" class="slate-image-embed-button slate-image-embed-button__resize-full-width artdeco-button artdeco-button--circle artdeco-button--muted slate-image-embed-button__active" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-full-width"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zM3 21h18v-2H3zm0-4h18V7H3z"></path></svg></li-icon></button></li><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Align to the right" class="slate-image-embed-button slate-image-embed-button__resize-right artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-align-right"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zM9 7H3v2h6zm0 4H3v2h6zm0 4H3v2h6zm-6 6h18v-2H3zm8-4h10V7H11z"></path></svg></li-icon></button></li></ul><button aria-label="Add a link to the embedded image" class="slate-image-embed__link-button artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; opacity: 0; overflow: hidden; padding: 0px !important; position: absolute; right: 0px; top: 0px; touch-action: manipulation; transition: all 332ms ease-in 0s; vertical-align: middle; width: 4rem; z-index: 0;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="link"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M19.83 4.17a4 4 0 00-5.66 0l-2 2A4 4 0 0011 9a4 4 0 00.56 2l-.54.54a4 4 0 00-4.85.63l-2 2a4 4 0 005.66 5.66l2-2A4 4 0 0013 15a4 4 0 00-.56-2l.54-.54a4 4 0 004.85-.63l2-2a4 4 0 000-5.66zM11 15a2 2 0 01-.59 1.41l-2 2a2 2 0 11-3-2.6l.22-.22 2-2A2 2 0 019 13a2.24 2.24 0 01.51.07l-1.22 1.22a1 1 0 000 1.41 1 1 0 001.41 0l1.22-1.22A2.24 2.24 0 0111 15zm7.41-6.59l-2 2A2 2 0 0115 11a2.24 2.24 0 01-.51-.07l1.22-1.22A1 1 0 0016 9a1 1 0 00-.29-.7A1 1 0 0015 8a1 1 0 00-.7.29l-1.23 1.22A2.24 2.24 0 0113 9a2 2 0 01.59-1.41l2-2a2 2 0 013 2.6z"></path></svg></li-icon></button><button aria-label="Add alt text to image" class="slate-image-embed__desc-button artdeco-button artdeco-button--muted artdeco-button--1 align-items-center" data-slate-ignore="true" style="align-items: center !important; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-large) !important; border-style: none; border-width: initial; cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.4rem; font-weight: 600; height: 2.4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 2.4rem; min-width: 0px; overflow: hidden; padding: 0px 0.8rem; position: absolute; right: 0.8rem; top: 0.8rem; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle;"><li-icon aria-hidden="true" class="mr1" size="small" style="box-sizing: border-box; display: inline-block; margin-right: 4px !important; overflow: hidden; position: relative;" type="pencil"><svg class="mercado-match" data-supported-dps="16x16" fill="currentColor" focusable="false" height="16" viewbox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M14.13 1.86a3 3 0 00-4.17 0l-7 7L1 15l6.19-2 6.94-7a3 3 0 000-4.16zm-8.36 9.71l-1.35-1.34L9.64 5 11 6.35z"></path></svg></li-icon><span class="t-sans" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; font-family: var(--artdeco-typography-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Add alt text</span></button><img alt="No alt text provided for this image" class="slate-image-embed__resize-full-width" data-media-urn="urn:li:digitalmediaAsset:D4D12AQE1j94Yszg55w" src="https://media.licdn.com/dms/image/D4D12AQE1j94Yszg55w/article-inline_image-shrink_1500_2232/0/1676322895807?e=1681948800&v=beta&t=8I1xm2ujRefF04FchuVkJtXvsLStF7h2IaUXmIEcKsg" style="background: var(--artdeco-reset-base-background-transparent); border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: var(--color-text); display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: 0px auto; max-width: 720px; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); transition: outline 223ms ease 0s, width 223ms ease 0s; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /><figcaption contenteditable="true" data-placeholder="Add caption for image (optional)" spellcheck="false" style="align-items: center; background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: var(--color-text-low-emphasis); display: flex; font-size: var(--font-size-small); justify-content: center; margin-top: 1.6rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" tabindex="0"></figcaption></figure><p style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: pre-wrap;"><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><b>5. Template Spec as a module
</b></span><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"> </span><span style="font-size: var(--font-size-large);">Similar to option 4, you can also leverage an ARM Template as a module directly from a Template Spec resource in Azure. Create a Template Spec resource in Azure, paste your ARM Template in there, and now you can reference it as a module as shown below.</span></p><figure class="slate-resizable-image-embed slate-image-embed__resize-full-width" contenteditable="false" data-imgsrc="https://media.licdn.com/dms/image/D4D12AQEuLqhVpFhRJw/article-inline_image-shrink_400_744/0/1676322906105?e=1681948800&v=beta&t=5eT6vnCREPso8exyFSecbmww4BpyaKC3qPLRPpTcDHI" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; clear: both; color: rgba(0, 0, 0, 0.9); cursor: text; display: var(--artdeco-reset-base-display-block); font-family: Helvetica, Arial, sans-serif; font-size: 13px; margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); position: relative; text-align: center; transition: margin 223ms ease 0s; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: pre-wrap;"><ul class="slate-image-embed__toolbar" data-slate-ignore="true" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: var(--color-text); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; font-size: var(--font-size-large); height: 48px; left: 0px; line-height: 1.75; margin: 0px; opacity: 0; padding: 0px 0px 8px; position: absolute; top: 0px; transition: all 332ms ease-in 0s; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;"><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Align to the left" class="slate-image-embed-button slate-image-embed-button__resize-left artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-align-left"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zm-6 6h6V7h-6zm0 4h6v-2h-6zm0 4h6v-2h-6zM3 21h18v-2H3zM13 7H3v10h10z"></path></svg></li-icon></button></li><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Align in the middle" class="slate-image-embed-button slate-image-embed-button__resize-middle artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-align-center"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zM3 21h18v-2H3zM7 7v10h10V7z"></path></svg></li-icon></button></li><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Resize to full width" aria-pressed="true" class="slate-image-embed-button slate-image-embed-button__resize-full-width artdeco-button artdeco-button--circle artdeco-button--muted slate-image-embed-button__active" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-full-width"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zM3 21h18v-2H3zm0-4h18V7H3z"></path></svg></li-icon></button></li><li style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); list-style-type: inherit; margin: 0px 4px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><button aria-label="Align to the right" class="slate-image-embed-button slate-image-embed-button__resize-right artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; overflow: hidden; padding: 0px !important; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle; width: 4rem;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="content-align-right"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M21 3v2H3V3zM9 7H3v2h6zm0 4H3v2h6zm0 4H3v2h6zm-6 6h18v-2H3zm8-4h10V7H11z"></path></svg></li-icon></button></li></ul><button aria-label="Add a link to the embedded image" class="slate-image-embed__link-button artdeco-button artdeco-button--circle artdeco-button--muted artdeco-button--secondary" data-slate-ignore="true" style="align-items: center; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-full) !important; border-style: none; border-width: initial; box-shadow: inset 0 0 0 1px var(--color-border); cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.6rem; font-weight: 600; height: 4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 3.2rem; min-width: auto; opacity: 0; overflow: hidden; padding: 0px !important; position: absolute; right: 0px; top: 0px; touch-action: manipulation; transition: all 332ms ease-in 0s; vertical-align: middle; width: 4rem; z-index: 0;"><li-icon aria-hidden="true" size="large" style="box-sizing: border-box; display: inline-block; overflow: hidden; position: relative;" type="link"><svg class="mercado-match" data-supported-dps="24x24" fill="currentColor" focusable="false" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M19.83 4.17a4 4 0 00-5.66 0l-2 2A4 4 0 0011 9a4 4 0 00.56 2l-.54.54a4 4 0 00-4.85.63l-2 2a4 4 0 005.66 5.66l2-2A4 4 0 0013 15a4 4 0 00-.56-2l.54-.54a4 4 0 004.85-.63l2-2a4 4 0 000-5.66zM11 15a2 2 0 01-.59 1.41l-2 2a2 2 0 11-3-2.6l.22-.22 2-2A2 2 0 019 13a2.24 2.24 0 01.51.07l-1.22 1.22a1 1 0 000 1.41 1 1 0 001.41 0l1.22-1.22A2.24 2.24 0 0111 15zm7.41-6.59l-2 2A2 2 0 0115 11a2.24 2.24 0 01-.51-.07l1.22-1.22A1 1 0 0016 9a1 1 0 00-.29-.7A1 1 0 0015 8a1 1 0 00-.7.29l-1.23 1.22A2.24 2.24 0 0113 9a2 2 0 01.59-1.41l2-2a2 2 0 013 2.6z"></path></svg></li-icon></button><button aria-label="Add alt text to image" class="slate-image-embed__desc-button artdeco-button artdeco-button--muted artdeco-button--1 align-items-center" data-slate-ignore="true" style="align-items: center !important; background-attachment: initial; background-clip: initial; background-image: none; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-color: initial; border-radius: var(--corner-radius-large) !important; border-style: none; border-width: initial; cursor: pointer; display: inline-flex; font-family: inherit; font-size: 1.4rem; font-weight: 600; height: 2.4rem; justify-content: center; line-height: 2rem; margin-bottom: 0px; max-width: 480px; min-height: 2.4rem; min-width: 0px; overflow: hidden; padding: 0px 0.8rem; position: absolute; right: 0.8rem; top: 0.8rem; touch-action: manipulation; transition-duration: 167ms; transition-property: background-color, box-shadow, color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); vertical-align: middle;"><li-icon aria-hidden="true" class="mr1" size="small" style="box-sizing: border-box; display: inline-block; margin-right: 4px !important; overflow: hidden; position: relative;" type="pencil"><svg class="mercado-match" data-supported-dps="16x16" fill="currentColor" focusable="false" height="16" viewbox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="M14.13 1.86a3 3 0 00-4.17 0l-7 7L1 15l6.19-2 6.94-7a3 3 0 000-4.16zm-8.36 9.71l-1.35-1.34L9.64 5 11 6.35z"></path></svg></li-icon><span class="t-sans" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; font-family: var(--artdeco-typography-sans); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Add alt text</span></button><img alt="No alt text provided for this image" class="slate-image-embed__resize-full-width" data-media-urn="urn:li:digitalmediaAsset:D4D12AQEuLqhVpFhRJw" src="https://media.licdn.com/dms/image/D4D12AQEuLqhVpFhRJw/article-inline_image-shrink_400_744/0/1676322906105?e=1681948800&v=beta&t=5eT6vnCREPso8exyFSecbmww4BpyaKC3qPLRPpTcDHI" style="background: var(--artdeco-reset-base-background-transparent); border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: var(--color-text); display: inline-block; font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: 0px auto; max-width: 720px; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); transition: outline 223ms ease 0s, width 223ms ease 0s; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /><figcaption contenteditable="true" data-placeholder="Add caption for image (optional)" spellcheck="false" style="align-items: center; background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: var(--color-text-low-emphasis); display: flex; font-size: var(--font-size-small); justify-content: center; margin-top: 1.6rem; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" tabindex="0"></figcaption></figure><p style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: pre-wrap;"><b>To conclude
</b>If you are currently developing ARM Templates and it brings you everything you need, nothing is stopping you from continuing to use it, its fully supported. I’m not saying ARM Templates are bad and you must switch to Bicep. If you currently are using ARM Templates and you are struggling with the complexity and limitations…it's never too late to learn Bicep. And if you're already familiar with Visual Studio Code (VSCode), it's a great tool to get started with Bicep. VSCode offers a wide range of plugins and extensions that make it easier to write, debug, and deploy Bicep templates. You can use the VSCode IntelliSense feature to get suggestions and auto-completion as you type, making it easier to write correct Bicep code, including a way to visualize as you type. Bicep removes a lot of the syntax overhead of ARM Templates, providing clean coding experience, and also provides better options to reuse code based on modules and registries.</p><p style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: pre-wrap;">There is much more to the story of course. If you are interested in getting started with Bicep, <a href="https://www.amazon.com/Getting-started-Bicep-Infrastructure-Azure/dp/B098WK3MR7" rel="noopener nofollow" style="background-color: var(--artdeco-reset-link-background-color-transparent); border: var(--artdeco-reset-link-border-zero); box-sizing: border-box; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: break-word; padding: var(--artdeco-reset-base-padding-zero); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);" target="_blank">I published a book to help you jump start on Bicep</a>, posted lots of <a href="https://github.com/fberson/Getting-started-with-Bicep-Infrastructure-as-code-on-Azure" rel="noopener nofollow" style="background-color: var(--artdeco-reset-link-background-color-transparent); border: var(--artdeco-reset-link-border-zero); box-sizing: border-box; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: break-word; padding: var(--artdeco-reset-base-padding-zero); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);" target="_blank">example code on my GitHub</a>, and created a collection <a href="https://github.com/fberson/Slidedecks" rel="noopener nofollow" style="background-color: var(--artdeco-reset-link-background-color-transparent); border: var(--artdeco-reset-link-border-zero); box-sizing: border-box; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: break-word; padding: var(--artdeco-reset-base-padding-zero); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);" target="_blank">links to on demand sessions on Bicep</a> that I (co)presented in the past.</p><p style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: border-box; color: rgba(0, 0, 0, 0.9); counter-reset: list-1 0 list-2 0 list-3 0 list-4 0 list-5 0 list-6 0 list-7 0 list-8 0 list-9 0; cursor: text; font-family: Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: 0px; vertical-align: var(--artdeco-reset-base-vertical-align-baseline); white-space: pre-wrap;"><b>Questions? Feel free to reach out via Twitter, LinkedIn, or E-mail!</b></p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-37091232633785845922023-02-04T14:58:00.001+01:002023-02-04T14:58:21.990+01:00New Number matching Azure MFA feature impact Microsoft RDGW & NPS extension<b>Background</b><div><br /></div><div>Are you using Microsoft Native Remote Desktop Gateway (RDGW) in combination with the NPS extension to secure your RDGW with MFA? Prepare for this change which will be enforced tenant-wide for all users starting February 27, 2023!<div><br /><div>Number matching is a security upgrade to traditional second factor notifications in Microsoft Authenticator. Microsoft will remove the admin controls and enforce the number match experience.</div></div><div><br /></div><div><b>This is what Microsoft recommends</b></div><div><i><br /></i></div><div><i>"We highly recommend enabling number matching in the near term for improved sign-in security. Relevant services will begin deploying these changes after February 27, 2023 and users will start to see number match in approval requests. As services deploy, some may see number match while others don't. To ensure consistent behavior for all users, we highly recommend you enable number match for Microsoft Authenticator push notifications in advance."</i></div><div><br /></div><div>While this adds and unlocks security capabilities and options, there is a downside if you currently use RD Gateway with the NPS Extension for Azure MFA. If you need more background information on how this works, check out this article I published back in 2017, which is still relevant: <a href="http://microsoftplatform.blogspot.com/2017/02/securing-rd-gateway-with-mfa-using-new.html">The Microsoft Platform: Securing RD Gateway with MFA using the new NPS Extension for Azure MFA!</a></div><div><br /></div><div><b>The impact on RD Gateway + NPS Extension</b></div></div><div><b><br /></b></div><div>The reason of the impact is that NPS does not support number matching. However, the latest NPS extension does work with One-Time Password (OTP) methods like e.g. the OTP available in Microsoft Authenticator. Generally, you need to make sure that you run the latest version of the NPS extension. For more information on supported versions and what (registry) workaround you can use and other requirements that apply, follow <a href="https://learn.microsoft.com/en-us/azure/active-directory/authentication/how-to-mfa-number-match#nps-extension">this guide</a></div><div><br /></div><div>If your organization uses Remote Desktop Gateway and the user is registered for OTP code along with Microsoft Authenticator push notifications, the user won't be able to meet the Azure AD MFA challenge and Remote Desktop Gateway sign-in will fail.</div><div><br /></div><div><b>Release notes on this change</b></div><div><b><br /></b></div><div>Below is a snippet of the release notes of the NPS extension version 1.2.2131.2 that address the change that Microsoft made.</div><div><br /></div><div><div><i>"...Changed the default value of OVERRIDE_NUMBER_MATCHING_WITH_OTP from False to a Microsoft managed value. There is no change to the current authentication experience for users. Microsoft will begin enabling number matching for all users of the Microsoft Authenticator app starting 27th of February 2023.</i></div><div><i>After this date, if your organization has not set the OVERRIDE_NUMBER_MATCHING_WITH_OTP value to False, your Microsoft Authenticator users will be required to enter an OTP code instead of the Approve/Deny push notification experience..."</i></div><div><br /></div></div><div><b>Solution (more of a workaround)</b></div><div><b><br /></b></div><div>What you can do to prevent failed sign-ins after February 27, 2023 is the following. Set OVERRIDE_NUMBER_MATCHING_WITH_OTP = FALSE.</div><div><br /></div><div><div>To create the registry key that overrides push notifications on your NPS Server:</div><div><br /></div><div>1. Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AzureMfa.</div><div>2. Key: OVERRIDE_NUMBER_MATCHING_WITH_OTP, Value = TRUE</div><div>4. Restart the NPS Service.</div></div><div><br /></div><div>What this does is fall back to Approve/Deny push notifications when using Microsoft Authenticator.</div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-40701406047084207472023-01-16T21:39:00.001+01:002023-01-16T21:39:27.193+01:00ChatGPT to author Bicep templates?<p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">I'm sure that by now many have heard about ChatGPT. If not, ChatGPT is a large language model developed by OpenAI. It is based on the GPT (Generative Pre-training Transformer) architecture, which was trained on a massive amount of text data to generate human-like text. ChatGPT is fine-tuned to perform specific language tasks such as answering questions, generating text and more. It uses the latest advances in neural network technology to understand and respond to natural language input in a way that mimics human conversation. It can be used for various applications such as chatbots, automated customer service, language translation and more.</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">I took ChatGPT for a spin to see how accurate and detailed it would be to write (Infra as) Code. Somehow Bicep felt like a good candidate! (in case you don't know why, follow <a href="https://www.amazon.com/Getting-started-Bicep-Infrastructure-Azure-ebook/dp/B0984MQY2N" style="background-color: var(--artdeco-reset-link-background-color-transparent); border: var(--artdeco-reset-link-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); overflow-wrap: break-word; padding: var(--artdeco-reset-base-padding-zero); text-decoration: var(--artdeco-reset-link-text-decoration-none); touch-action: manipulation; vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">this link</a> 😊)</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">The first question I asked was to author a simple Bicep template to create a Vnet.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img lazy-image ember-view" id="ember1501" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQEygVel0g-pGQ/article-inline_image-shrink_1000_1488/0/1673897514690?e=1679529600&v=beta&t=7h-bVcbz3j2TIRNfs-X1f-cputZNLdbGaM32SUiA52Y" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">I was blown away by the initial response which came back instantly! That looks awesome for a first try! Do note that ChatGPT says Bicep is still in preview. The reason is that ChatGPT is trained on a large dataset of text data that was current as of 2021, so it may not have information that is more recent than that. The training data used to build the model is also constantly being updated, so the information available to ChatGPT may change over time.</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Also note that ChatGPT gave some advise on network designs as well, how cool is that!</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">A best practice however would be to use a parameter instead of 'resourceGroup().location'. So lets tell ChatGPT to adapt to that and also tell it to to make resourceGroup().location the default value of the parameter.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img lazy-image ember-view" id="ember1502" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQE49oBzDAIWUg/article-inline_image-shrink_1000_1488/0/1673897828699?e=1679529600&v=beta&t=0QiXyIGfdBOI7a5fLQMYl9TNbVjNbsgwcVpF0Hhdi_c" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">That was easy! Next, we'll tell it to use a different API version when dealing with VNets.</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img lazy-image ember-view" id="ember1503" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQEM_DRB85KVww/article-inline_image-shrink_1000_1488/0/1673898079513?e=1679529600&v=beta&t=4SctBe-UvzD7o7TDvElF9B3jzoy0bd9aCGkzV9jgvL4" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">There we go. Finally, lets see if it can also generate a parameters file with a couple of sample values. Of course it can!</p><div class="reader-image-block reader-image-block--full-width" style="background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: var(--spacing-four-x); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><figure class="reader-image-block__figure" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: var(--artdeco-reset-base-display-block); font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-image-view-model " style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex
" style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; display: flex !important; font-size: var(--artdeco-reset-base-font-size-hundred-percent); margin: var(--artdeco-reset-base-margin-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><img alt="No alt text provided for this image" class="ivm-view-attr__img--centered reader-image-block__img lazy-image ember-view" id="ember1504" loading="lazy" src="https://media.licdn.com/dms/image/D4E12AQH7HC3A0qNB_A/article-inline_image-shrink_1000_1488/0/1673900354408?e=1679529600&v=beta&t=uOFvNWqlkgncDmOsfSGuz8i-yMfVidawQiElqS7EKHc" style="background-position: 50% center; background-size: cover; border-radius: 0px; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: var(--color-text); font-size: var(--artdeco-reset-base-font-size-hundred-percent); height: auto; margin: var(--artdeco-reset-base-margin-zero); max-width: 100%; object-fit: cover; object-position: center center; outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline); width: 720px;" /></div></div></figure></div><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">And this is just scratching the surface on what ChatGPT is able to do based on a simple example, there is so much more!</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">ChatGPT can help with writing code by providing code snippets, examples, and templates for a specific programming language or framework. It can also help with troubleshooting errors by providing solutions to common problems. Additionally, ChatGPT can assist with understanding the proper syntax and usage of a particular command or function by providing explanations and documentation.</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">ChatGPT can also help with writing code by providing suggestions for code improvements and better practices and by suggesting alternative ways to implement a certain functionality. It can also help with understanding and working with complex code by providing explanations of the code's behavior and providing examples of how to use it.</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">It's important to note that while ChatGPT can help with writing code, it's not a replacement for human programmers. ChatGPT can provide suggestions and examples, but it can't replace the experience and understanding of the problem domain that a human developer has.</p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);"><span style="background: var(--artdeco-reset-base-background-transparent); border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; font-size: var(--artdeco-reset-base-font-size-hundred-percent); font-weight: var(--artdeco-reset-typography-font-weight-bold); margin: var(--artdeco-reset-base-margin-zero); outline: var(--artdeco-reset-base-outline-zero); padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">Strong advise: do not blindly trust AI generated code for production environments. Use AI to assist you, not to replace you.</span></p><p class="reader-text-block__paragraph" style="--artdeco-reset-typography_getfontsize: 1.6rem; --artdeco-reset-typography_getlineheight: 1.5; background-color: white; border: var(--artdeco-reset-base-border-zero); box-sizing: inherit; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Fira Sans", Ubuntu, Oxygen, "Oxygen Sans", Cantarell, "Droid Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Lucida Grande", Helvetica, Arial, sans-serif; font-size: var(--font-size-large); line-height: 1.75; margin: 1.6rem 0px; padding: var(--artdeco-reset-base-padding-zero); vertical-align: var(--artdeco-reset-base-vertical-align-baseline);">And guess what...part of this article was actually written by ChatGPT itself! Did you notice that? The possibilities are endless and I'm looking forward to test driving this some more! What are your thoughts?</p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-12775042197595311802022-07-11T09:31:00.000+02:002022-07-11T09:31:03.187+02:00RDP Shortpath in action!<h4 style="text-align: left;"> <span style="background-color: white; color: #292929; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; letter-spacing: 0px;">What is RDP Shortpath?</span></h4><div class="ev ew ex ey ez l" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin-bottom: 40px;"><div class="o dz" style="box-sizing: inherit; display: flex; justify-content: center;"><div class="eo cf fa fb fc fd fe ff fg fh fi" style="box-sizing: inherit; margin: 0px 32px; max-width: 692px; min-width: 0px; width: 691.998px;"><article style="box-sizing: inherit;"><div class="l" style="box-sizing: inherit;"><div class="l" style="box-sizing: inherit;"><section style="box-sizing: inherit;"><div style="box-sizing: inherit;"><div class="ib ic id ie if" style="box-sizing: inherit; overflow-wrap: break-word; word-break: break-word;"><p class="pw-post-body-paragraph kd ke ii kf b kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la ib gj" data-selectable-paragraph="" id="274f" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">RDP Shortpath is all about offering better reliability and consistent latency for Azure Virtual Desktop (AVD). For a regular AVD session, all traffic is always tunneled through a gateway that is hosted by Microsoft as part of the AVD Service in Azure. RDP Shortpath allows direct RDP traffic from client to host and, after authentication and authorization, essentially bypasses the Gateway.</p><p class="pw-post-body-paragraph kd ke ii kf b kg lb ki kj kk lc km kn ko ld kq kr ks le ku kv kw lf ky kz la ib gj" data-selectable-paragraph="" id="9063" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">You might be familiar with the RD Gateway role as part of Remote Desktop Services. This role provides a similar service as it also tunnels RDP Traffic from the RD Client towards the RD Session host by only requiring outbound TCP traffic over 443 (SSL). There are distinct differences however. First, the AVD Gateway is hosted and controlled by Microsoft so you don’t see it in your subscription and it is managed and maintained for you. Second, AVD Gateway does not require you to open port 3389 from gateway to host as the AVD Agent on the host only requires outbound ports. The latter is called reverse connect and allows full separation between the gateway and host. Very important from a security standpoint of course.</p><p class="pw-post-body-paragraph kd ke ii kf b kg lb ki kj kk lc km kn ko ld kq kr ks le ku kv kw lf ky kz la ib gj" data-selectable-paragraph="" id="d65f" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Why is this important to the topic of RDP Shortpath? The AVD Gateway only support RDP-TCP, meaning we cannot leverage RDP-UDP. If you’ve worked with RDS before, you’ll know that having RDP-UDP available significantly boosts the overall RDP experience. This is especially the case how graphics intensive applications or applications that are latency-sensitive. Ever since the release of AVD (and before that WVD), there has been a big ask for RDP-UDP and it has been on the radar and roadmap for some time.</p><p class="pw-post-body-paragraph kd ke ii kf b kg lb ki kj kk lc km kn ko ld kq kr ks le ku kv kw lf ky kz la ib gj" data-selectable-paragraph="" id="2d85" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">With RDP Shortpath, Microsoft delivered this promise. This allows for direct communication from the AVD Client to the AVD host. This reduces round-trip time, improving user experience, especially with latency-sensitive applications. RDP Shortpath does not replace reverse connect as all session brokering is still performed by the AVD Control Plane.</p><h4 style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; text-align: left; word-break: break-word;"><span style="font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; letter-spacing: 0px;">RDP Shortpath comes in two different options</span></h4><p class="pw-post-body-paragraph kd ke ii kf b kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la ib gj" data-selectable-paragraph="" id="4bc9" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">The first option is RDP Shortpath for managed networks. For this option your AVD Clients needs direct TCP port 3389 to the host. This option is mostly ment for trusted connections like Express Route and Site-To-Site VPN. You can also use a public IP on the host, but for security reasons I would advise against that. More information on the setup and the requirements can be found here: <a class="au lg" href="https://docs.microsoft.com/en-us/azure/virtual-desktop/shortpath" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">Azure Virtual Desktop RDP Shortpath for managed networks</a>.</p><p class="pw-post-body-paragraph kd ke ii kf b kg lb ki kj kk lc km kn ko ld kq kr ks le ku kv kw lf ky kz la ib gj" data-selectable-paragraph="" id="016f" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">The second option is Azure Virtual Desktop RDP Shortpath for public networks, which is currently into public preview. For this option, no TCP port 3389 to the host is required and as a result, a private network like Express Route or Site-To-Site VPN is also not required. More information on the setup and the requirements can be found here: <a class="au lg" href="https://docs.microsoft.com/en-us/azure/virtual-desktop/shortpath-public" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">Azure Virtual Desktop RDP Shortpath for public networks (preview)</a>.</p><p class="pw-post-body-paragraph kd ke ii kf b kg lb ki kj kk lc km kn ko ld kq kr ks le ku kv kw lf ky kz la ib gj" data-selectable-paragraph="" id="8fb6" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Although RDP Shortpath for public networks is still into public preview (Microsoft recommends to not use it for production yet and configure it on a validation host pool), my experiences with the feature have been super great so far.</p><h4 style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; text-align: left; word-break: break-word;"><span style="font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; letter-spacing: 0px;">Enable RDP Shortpath for public networks preview</span></h4><p class="pw-post-body-paragraph kd ke ii kf b kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la ib gj" data-selectable-paragraph="" id="b435" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">To participate in the RDP Shortpath for public networks preview, all you have to do is add the registry entry ICEControl as shown below.</p><p class="pw-post-body-paragraph kd ke ii kf b kg lb ki kj kk lc km kn ko ld kq kr ks le ku kv kw lf ky kz la ib gj" data-selectable-paragraph="" id="e3a2" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">REG ADD “HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations” /v ICEControl /t REG_DWORD /d 2 /f</p><p class="pw-post-body-paragraph kd ke ii kf b kg lb ki kj kk lc km kn ko ld kq kr ks le ku kv kw lf ky kz la ib gj" data-selectable-paragraph="" id="73ef" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">And to disable RDP Shortpath for public networks preview, simply remove the ICEControl registry entry as shown below.</p><p class="pw-post-body-paragraph kd ke ii kf b kg lb ki kj kk lc km kn ko ld kq kr ks le ku kv kw lf ky kz la ib gj" data-selectable-paragraph="" id="2a06" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">REG DELETE “HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations” /v ICEControl /f</p><h4 style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; text-align: left; word-break: break-word;"><span style="font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; letter-spacing: 0px;">Confirm RDP Shortpath is operational</span></h4><p class="pw-post-body-paragraph kd ke ii kf b kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la ib gj" data-selectable-paragraph="" id="7c92" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">Once enabled, the easier way to confirm that RDP Shortpath for public network is working (also applies to managed networks) is by clicking on the Connection information in the blue bar. As you can see below, it says ‘UDP is enabled’ and the further down states UDP as the transport protocol.</p><p class="pw-post-body-paragraph kd ke ii kf b kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la ib gj" data-selectable-paragraph="" id="7c92" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;"><img alt="" class="cf lr ls" height="451" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*gH3hbhUnUBp7wsEC" style="box-sizing: inherit; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></p><p class="pw-post-body-paragraph kd ke ii kf b kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la ib gj" data-selectable-paragraph="" id="7c92" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;"><span style="font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; letter-spacing: 0px;"><br /></span></p><h4 style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; text-align: left; word-break: break-word;"><span style="font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; letter-spacing: 0px;">Putting RDP Shortpath to action</span></h4><p class="pw-post-body-paragraph kd ke ii kf b kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la ib gj" data-selectable-paragraph="" id="e812" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">Over time, I have performed several tests with RDP Shortpath both for Public as well as for private networks, even when RDP Shortpath was still in technical preview. A subset of those videos are available on <a class="au lg" href="https://www.youtube.com/channel/UCdwV5ypyqE01nyeQqAfr5Wg/videos" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">my YouTube channel</a>.</p><p class="pw-post-body-paragraph kd ke ii kf b kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la ib gj" data-selectable-paragraph="" id="e812" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;"><img alt="" class="cf lr ls" height="241" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*9ZK5o3V188SiQpJa" style="box-sizing: inherit; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></p><p class="pw-post-body-paragraph kd ke ii kf b kg lb ki kj kk lc km kn ko ld kq kr ks le ku kv kw lf ky kz la ib gj" data-selectable-paragraph="" id="540b" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">In my most recent test from last week, I took RDP Shortpath for Public Networks to the test using an <a class="au lg" href="https://docs.microsoft.com/en-us/azure/virtual-machines/nva10v5-series" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">NVads A10 v5-series</a> Session Host in Azure Virtual Desktop. These VM’s are powered by a <a class="au lg" href="https://www.nvidia.com/en-us/data-center/products/a10-gpu/" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">NVIDIA A10</a> GPU. What’s also great about the NVads A10 v5 series is that it allows you to select models with a partial GPU. So for scenarios where a full A10 GPU is not required, you can also select a size with 1/2, 1/3 or even 1/6 of a GPU. Back in March of this year, when this new series was still ito preview, <a class="au lg" href="https://www.linkedin.com/in/michelroth/" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">Michel Roth</a> (Microsoft Azure HPC team), wrote a great article called <a class="au lg" href="https://www.linkedin.com/pulse/why-nvads-a10-v5-series-lowers-avd-costs-even-further-michel-roth/?trackingId=Cz2xFJf2kV3NL5U4opE2xQ%3D%3D" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">Why the NVads A10 v5 series lowers AVD costs even further</a> which contains interesting insights into the benefits and costs.</p><p class="pw-post-body-paragraph kd ke ii kf b kg lb ki kj kk lc km kn ko ld kq kr ks le ku kv kw lf ky kz la ib gj" data-selectable-paragraph="" id="6102" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Back to my test case. To testdrive RDP Shortpath on the GPU enabled machine in a fun way, I used GTA5 running inside the AVD Session Host! The results were amazing. As you can see in the screenshot below the round trip latency was only 8ms and 49 frames per second. During this test run the frames per second fluctuated between 46 and 50 frames per second.</p><p class="pw-post-body-paragraph kd ke ii kf b kg lb ki kj kk lc km kn ko ld kq kr ks le ku kv kw lf ky kz la ib gj" data-selectable-paragraph="" id="6102" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;"><img alt="" class="cf lr ls" height="435" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*9YtAkG4yxmxfKeNL" style="box-sizing: inherit; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></p><p class="pw-post-body-paragraph kd ke ii kf b kg lb ki kj kk lc km kn ko ld kq kr ks le ku kv kw lf ky kz la ib gj" data-selectable-paragraph="" id="bdbf" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Want to see it in action? below is a link to the video I published last week! <a class="au lg" href="https://www.youtube.com/watch?v=V6t91hrs4KY" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit; letter-spacing: -0.003em;" target="_blank">AVD — GPU — RDP Shortpath demo, with GTA — YouTube</a></p><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="381" src="https://www.youtube.com/embed/V6t91hrs4KY" width="458" youtube-src-id="V6t91hrs4KY"></iframe></div><br /><p class="pw-post-body-paragraph kd ke ii kf b kg lb ki kj kk lc km kn ko ld kq kr ks le ku kv kw lf ky kz la ib gj" data-selectable-paragraph="" id="bdbf" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;"><br /></p><figure class="li lj lk ll ga lm fo fp paragraph-image" style="box-sizing: inherit; clear: both; margin: 56px auto 0px;"><div class="ln lo dq lp cf lq" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lv" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 871px;"><br /><br /></div></div></figure></div></div></section></div></div></article></div></div></div>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-87338246853940082572022-07-05T09:02:00.003+02:002022-07-05T09:02:45.210+02:00Parallels RAS 19 Expression based filtering and Multiple Multi-factor Authentication (MFA) providers!<p> <span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em;">This is article number three in a series I’m publishing on Parallels Remote Application Server version 19. In the previous two articles I discussed support for</span><span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em;"> </span><a class="au kd" href="https://www.linkedin.com/pulse/parallels-remote-application-server-version-19-now-supports-berson" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em;" target="_blank">Let’s Encrypt</a><span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em;"> </span><span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em;">and</span><span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em;"> </span><a class="au kd" href="https://www.linkedin.com/pulse/parallels-remote-application-server-version-19-public-freek-berson" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em;" target="_blank">integration with MSIX app attach</a><span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em;">.</span></p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="1504" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">In this article I will focus on two smaller, but definetly not less powerful features. I will show you how to use Expression based filtering & policies, and Multiple Multi-factor Authentication (MFA) providers.</p><h1 class="ke kf ii bn kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb gj" data-selectable-paragraph="" id="1dd2" style="background-color: white; box-sizing: inherit; color: #292929; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; line-height: 28px; margin: 3.14em 0px -0.37em;">Expression based filtering & policies</h1><p class="pw-post-body-paragraph jf jg ii jh b ji lc jk jl jm ld jo jp jq le js jt ju lf jw jx jy lg ka kb kc ib gj" data-selectable-paragraph="" id="24dc" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">Expression-based filtering rules and criteria, allow you to more granularly control to who has access to what published items, to what objects the RAS Client Connection policy is applied, restrict user logon hours for accessing Farm resources, and manage MFA requirements.</p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="3157" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">In this example I’ll show you how easy it is to apply an expression-based filter on a published application or desktop. First, select a published resource and open the filter tab.</p><figure class="li lj lk ll ga lm fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ln lo dq lp cf lq" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lh" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1380px;"><img alt="" class="cf lr ls" height="162" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*KzcvK8st6CSd5RTL" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="8ecb" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Next, notice there already is a default filter there, which basicially applies in case no other previous filter apply. Click the + sign to create a new filter, and provide a name. In this example I want to prevent users from launching PowerBI from the web client, so I name it No Web Clients. Now click Tasks, and in this example I want to filter on Client device operating system.</p><figure class="li lj lk ll ga lm fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ln lo dq lp cf lq" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lh" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1380px;"><img alt="" class="cf lr ls" height="272" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*saX6xMIrc3GpNzu7" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="3b5e" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">I select ‘User Portal (Web Client)’ because that is the client type I want to prevent access from.</p><figure class="li lj lk ll ga lm fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ln lo dq lp cf lq" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lt" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 940px;"><img alt="" class="cf lr ls" height="441" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*zGAthaZ-kzc3cjvt" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="6794" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">As a last step, click ‘Allow if’ to easily flip it to ‘Deny if’. Notice that a super readable sentance is now generated saying: Deny if users or goup is everyone and the operating system is User Portal (Web CLient). Also notice that many of the words are links you can easily click on to change the rule properties.</p><figure class="li lj lk ll ga lm fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ln lo dq lp cf lq" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lt" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 940px;"><img alt="" class="cf lr ls" height="359" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*R0os_XW7kBW-sMbx" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="1841" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Now log on on to both the Web client as well as the Windows client with the same username to see the expected end result, PowerBI is not available as a published app in the Web Client where it is available in the Windows client.</p><figure class="li lj lk ll ga lm fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ln lo dq lp cf lq" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lu" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1243px;"><img alt="" class="cf lr ls" height="564" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*0ThtHVnwDpGVUA4t" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="2c36" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Another great thing about Expression Based Filters is that these can also be applied to the extensive list of policies that are included in RAS. The example below shows the creation of a new policy with the ability to add an expression to control when (under which conditions) the policy gets applied. Super powerful!</p><figure class="li lj lk ll ga lm fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ln lo dq lp cf lq" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lt" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 940px;"><img alt="" class="cf lr ls" height="500" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*jhgzuHWFM1t04KpE" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="76e8" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">And finally, a new criteria has been added called ‘Theme’. This allows you to filter based on a Theme created in Parallels RAS. For example, below is a sample of a newly created theme containing some branding and user experience settings.</p><figure class="li lj lk ll ga lm fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ln lo dq lp cf lq" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lv" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 827px;"><img alt="" class="cf lr ls" height="496" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*1B_TQvdM3RHvkAxB" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="8f94" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">I can now create an expression based filter on this new created theme. In this case I am denying access if the specific theme was being used.</p><figure class="li lj lk ll ga lm fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ln lo dq lp cf lq" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lw" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 776px;"><img alt="" class="cf lr ls" height="383" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*BO8ux_YOrEwyEYA1" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><h1 class="ke kf ii bn kg kh ki kj kk kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la lb gj" data-selectable-paragraph="" id="057d" style="background-color: white; box-sizing: inherit; color: #292929; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; line-height: 28px; margin: 3.14em 0px -0.37em;">Multiple Multi-factor Authentication (MFA) providers.</h1><p class="pw-post-body-paragraph jf jg ii jh b ji lc jk jl jm ld jo jp jq le js jt ju lf jw jx jy lg ka kb kc ib gj" data-selectable-paragraph="" id="9cf3" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">The same method of creating conditions also applies to for example the MFA settings in Parallels RAS. In RAS19, increased flexibility is added for using multiple MFA providers without the requirement to deploy different Parallels RAS environments. Plus, combining the MFA settings with restrictions is really powerful! In the example below I have configured DUO MFA as an MFA provider and on the restrictions tab I configured to disable Duo MFA for the users avdtest1 and avdtest2 and also for the devics avd-demo-1 and avd-demo-2.</p><figure class="li lj lk ll ga lm fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ln lo dq lp cf lq" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lx" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1035px;"><img alt="" class="cf lr ls" height="642" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*rEiMKXkpnxhrA2Ci" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="64ac" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">And in Parallels RAS 19, I can now create another MFA provider, in this case Google Authenticator, and enable that for the previously excluded users and devices.</p><figure class="li lj lk ll ga lm fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ln lo dq lp cf lq" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lx" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1035px;"><img alt="" class="cf lr ls" height="653" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*rQn5SmH0qcBkue2s" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="b56a" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Being able to configure multiple MFA providers in such an easy way is definetly a great feature. The capabilities of the super essy to use restrictions and filters add even more power and simplicity to the admin!</p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="69c3" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;"><span class="jh ij" style="box-sizing: inherit; font-weight: 700;">Give it a try! Log in to your existing </span><a class="au kd" href="https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmy.parallels.com%2Fras%2Fbeta&data=05%7C01%7CFreek.Berson%40wortell.nl%7C83dfa7f111994108853b08da422cf0ed%7Cb1a6616c94734cab82b6b6affeed3e12%7C1%7C0%7C637895058078268487%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=s6oqHL03lAuN%2Fn1CGeqXcrCv7XCZqa2bnidJOES3vTo%3D&reserved=0" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank"><span class="jh ij" style="box-sizing: inherit; font-weight: 700;">Parallels My Account</span></a><span class="jh ij" style="box-sizing: inherit; font-weight: 700;">, download and install the Parallels RAS 19 Technical Preview to get started. If you do not already have an account, please visit my.parallels.com/register</span></p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-28469447860862634872022-06-08T10:27:00.000+02:002022-06-08T10:27:09.808+02:00Parallels Remote Application Server version 19 now supports Let’s Encrypt!<p> <span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em;">On June 1st 2022 Parallels released Remote Application Server 19 Public Preview! This version comes with a lot of new exciting features! In a previous article I focused on the</span><span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em;"> </span><a class="au kd" href="https://www.linkedin.com/pulse/parallels-remote-application-server-version-19-public-freek-berson/?trackingId=JMvrZJMBRTCWpjETMGAhzw%3D%3D" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; background-color: white; box-sizing: inherit; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em;" target="_blank">MSIX app attach support</a><span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em;">. In this article I want to address the support for Let’s Encrypt!</span></p><article style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;"><div class="l" style="box-sizing: inherit;"><div class="l" style="box-sizing: inherit;"><section style="box-sizing: inherit;"><div style="box-sizing: inherit;"><div class="ib ic id ie if" style="box-sizing: inherit; overflow-wrap: break-word; word-break: break-word;"><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="7b34" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Let’s Encrypt is a free, automated, and open certificate authority by the nonprofit <a class="au kd" href="https://www.abetterinternet.org/" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">Internet Security Research Group (ISRG)</a>. Their mission is creating a more secure and privacy-respecting web for eveyone by promoting adoption of HTTPS. They do not charge any fees for their certificates that are valid for 90 days. The certificate management automation provided by Parallels RAS allows to issue, automatic renew, manual renew and revoke certificates.</p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="e707" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">There are two basic requirements that are needed to get started.</p><ol class="" style="box-sizing: inherit; list-style: none none; margin: 0px; padding: 0px;"><li class="ke kf ii jh b ji jj jm jn jq kg ju kh jy ki kc kj kk kl km gj" data-selectable-paragraph="" id="2d92" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: decimal; margin-bottom: -0.46em; margin-left: 30px; margin-top: 2.14em; padding-left: 0px;">You need a publicly accessible domain that resolves to the Secure Gateway directly or through third-party load balancers.</li><li class="ke kf ii jh b ji kn jm ko jq kp ju kq jy kr kc kj kk kl km gj" data-selectable-paragraph="" id="ecda" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: decimal; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.14em; padding-left: 0px;">On the the Secure Gateway, port 80 must be opened for incoming Let’s Encrypt requests</li></ol><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="0d31" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">First, to make sure that only Let’s Encrypt is able to access port 80 on your Secure Gateway, configure the network properties of the Secure Gateway as shown below.</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="box-sizing: inherit; clear: both; margin: 56px auto 0px;"><div class="ky kz dq la cf lb" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp ks" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 762px;"><img alt="" class="cf lc ld" height="649" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*RCHWvkClZzlGP_Yn" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="7d85" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Next, go to farm, certificates, and select ‘Let’s Encrypt settings’.</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="box-sizing: inherit; clear: both; margin: 56px auto 0px;"><div class="fo fp le" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 404px;"><img alt="" class="cf lc ld" height="643" loading="lazy" role="presentation" src="https://miro.medium.com/max/808/0*kb4OpOF1Ev8uk-C0" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 403.997px;" width="404" /></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="2d53" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Select the ‘I have read and accept Let’s Encrypt EULA’ option, provide an expiration email address, and optionally change how many days before expiration you want to automaticially renew.</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="box-sizing: inherit; clear: both; margin: 56px auto 0px;"><div class="ky kz dq la cf lb" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lf" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 811px;"><img alt="" class="cf lc ld" height="424" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*NWAbGgB-ZqGDeoTc" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="32df" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Now select the + sign and choose ‘Issue Let’s Encrypt certificate’.</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="box-sizing: inherit; clear: both; margin: 56px auto 0px;"><div class="fo fp lg" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 604px;"><img alt="" class="cf lc ld" height="363" loading="lazy" role="presentation" src="https://miro.medium.com/max/1208/0*0-n4Z-07mNL8Y2SF" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 603.993px;" width="604" /></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="59f6" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Now provide the required information to issue the certificate. Once you have done that the certificate will appear in the list and will show a status of ‘Issuing’ first.</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="box-sizing: inherit; clear: both; margin: 56px auto 0px;"><div class="fo fp lh" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 700px;"><img alt="" class="cf lc ld" height="674" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*7q7iMImCHYpOjvmz" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="cb6c" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Once this is completed, this only takes a few minutes, you are ready to go!</p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="78ee" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">To confirm, connect to the web portal and as you can see below, the certificate is in use, valid and publicially trusted!</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="box-sizing: inherit; clear: both; margin: 56px auto 0px;"><div class="ky kz dq la cf lb" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp li" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1488px;"><img alt="" class="cf lc ld" height="445" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*EOD6fhxPzpouqIQj" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="359a" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">And the session information of the Parallels RAS 19 client also shows the certificate.</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="box-sizing: inherit; clear: both; margin: 56px auto 0px;"><div class="ky kz dq la cf lb" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lj" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1318px;"><img alt="" class="cf lc ld" height="520" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*3sp0xYEHau4fR1sc" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="08b2" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Both manually renewing and revoking is also possible from within the Parallels RAS console. To renew or revoke, simple right click the certificate, select control, and perform the desired action.</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="box-sizing: inherit; clear: both; margin: 56px auto 0px;"><div class="ky kz dq la cf lb" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lk" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1166px;"><img alt="" class="cf lc ld" height="252" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/0*FwU3uHekDd63jO5u" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="8ad9" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Parallels did a great job in making the issuing, renewing, and revoking of certificates via Let’s Encrypt super easy! Overall, Parallels really excels in continuously bringing improvements to RAS based on community as well as customer feedback. I’ve been part of the <a class="au kd" href="https://www.parallels.com/partners/vipp/" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">Parallels VIPP</a> group since 2017 and can tell you the Let’s Encrypt support is only one of many, many examples where Parallels truly listens to feedback, updates their backlog accordingly and makes it happen!</p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="8ce4" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">For more information on Let’s Encrypt visit <a class="au kd" href="https://letsencrypt.org/" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">letsencrypt.org</a></p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="5c55" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Give it a try! Log in to your existing <a class="au kd" href="https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmy.parallels.com%2Fras%2Fbeta&data=05%7C01%7CFreek.Berson%40wortell.nl%7C83dfa7f111994108853b08da422cf0ed%7Cb1a6616c94734cab82b6b6affeed3e12%7C1%7C0%7C637895058078268487%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=s6oqHL03lAuN%2Fn1CGeqXcrCv7XCZqa2bnidJOES3vTo%3D&reserved=0" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">Parallels My Account</a>, download and install the Parallels RAS 19 Technical Preview to get started. If you do not already have an account, please visit my.parallels.com/register</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="box-sizing: inherit; clear: both; margin: 56px auto 0px;"><div class="ky kz dq la cf lb" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp ll" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1405px;"><img alt="" class="cf lc ld" height="299" loading="lazy" role="presentation" src="https://miro.medium.com/max/1400/1*QkkU1YAm20a85Bm9NmCmEA.png" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div><div><br /></div></div></figure></div></div></section></div></div></article>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-26314017258007663922022-06-01T15:19:00.002+02:002022-06-01T15:19:15.488+02:00Parallels Remote Application Server version 19 Public Preview!<p> <span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em;">Parallels just released Remote Application Server 19 Public Preview! This version comes with a lot of new exciting features!</span></p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="ac6b" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Here is a quick list of the top 4 features that are announced</p><ul class="" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; list-style: none none; margin: 0px; padding: 0px;"><li class="kd ke ii jh b ji jj jm jn jq kf ju kg jy kh kc ki kj kk kl gj" data-selectable-paragraph="" id="6109" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: disc; margin-bottom: -0.46em; margin-left: 30px; margin-top: 2.14em; padding-left: 0px;">Amazon Web Services (AWS) as a cloud provider — Parallels RAS 19 extends the list of supported cloud computing providers by integrating with Amazon EC2. This integration will allow customers to utilize RAS Templates based on Amazon EC2 instances and build hybrid and cloud environments with a unified administrative and end-user experience.</li><li class="kd ke ii jh b ji km jm kn jq ko ju kp jy kq kc ki kj kk kl gj" data-selectable-paragraph="" id="bdd4" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: disc; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.14em; padding-left: 0px;">MSIX app attach Integration — Parallels RAS 19 provides a new and modern application delivery method — Application Packages, based on MSIX app attach. This App Layering technology enables customers to separate applications from the core operating system and deliver applications to users dynamically. This makes it easier to create a RAS template and get more control by providing the right application for the right user.</li><li class="kd ke ii jh b ji km jm kn jq ko ju kp jy kq kc ki kj kk kl gj" data-selectable-paragraph="" id="999d" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: disc; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.14em; padding-left: 0px;">Let’s Encrypt Certificate Management — Let’s Encrypt (LE) is a global Certificate Authority (CA). This organization behind LE is non-profit and provide free SSL/TLS certificates with each certificate valid for 90 days, thus requiring to be renewed during the period. Parallels RAS 19 includes automated certificate management which provides the ability to issue, renew and revoke certificates directly from the RAS Console.</li><li class="kd ke ii jh b ji km jm kn jq ko ju kp jy kq kc ki kj kk kl gj" data-selectable-paragraph="" id="a7f5" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 28px; list-style-type: disc; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.14em; padding-left: 0px;">Parallels Client for Windows on ARM64 — Parallels Client for Windows has been rebuilt and optimized to natively run on machines that are powered by ARM64 processors which were created to be more lightweight and power-efficient.</li></ul><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="2f20" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Besides these, Parallels RAS 19 now also covers Expression based filtering & policies, Power Management, Email-based account discovery, Logon hours restrictions, Multiple Multi-factor Authentication (MFA) providers, and Specific URL redirection.</p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="4eba" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;"><span style="letter-spacing: -0.003em;">---</span></p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="4eba" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;"><span style="letter-spacing: -0.003em;">I’ve had the opportunity to test drive Parallels RAS 19 during a private technical preview and in this article I want to focus on the MSIX app attach support. You can expect additional articles to follow covering the other new features of this release!</span></p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="f6e8" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">---</p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="543d" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">As you might know MSIX app attach is Microsoft’s application layering solution that allows you to dynamically attach applications, which are essentially extracted MSIX packages inside a container, available in a user session. I wrote a couple of blog posts on this topic before like <a class="au kr" href="https://microsoftplatform.blogspot.com/2020/12/msix-app-attach-wvd-integration-my.html" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">MSIX app attach WVD integration, my first test drive!</a> and <a class="au kr" href="https://microsoftplatform.blogspot.com/2020/06/new-github-script-automating.html" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">New GitHub Script: Automating the transformation of MSIX packages into MSIX app attach, ready for WVD!</a> And more information on MSIX app attach can also be found inside the Microsoft Docs pages like e.g. <a class="au kr" href="https://docs.microsoft.com/en-us/azure/virtual-desktop/what-is-app-attach" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">What is MSIX app attach?</a></p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="e705" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Below is the list of MSIX app attach related features that Parallels RAS 19 contains.</p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="41fd" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">• Discover and import packages from existing MSIX images (CIM, VHD(X))</p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="0060" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">• Support for packages created with 3rd parties’ tools (MS MSIX Packaging Tool, appCURE, etc…).</p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="81d8" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">• Package version management and versions tags support.</p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="9944" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">• Package certificates management.</p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="2459" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">• Application Packages management on Remote Desktop Session Hosts.</p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="2084" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">• New wizard for publishing applications from packages or desktop publishing.</p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="35b3" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">As a requirement, you need Windows Server 2022 as the RD Session host, a network share where MSIX app attach packages are stored and the RD Session host need read permissions to the share.</p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="424e" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">The first thing you do is enable the Application Packages feature as shown below.</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ky kz dq la cf lb" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp ks" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1526px;"><img alt="" class="cf lc ld" height="502" role="presentation" src="https://miro.medium.com/max/1400/0*lPq5SW3lrENcCKYb" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="ed68" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Next, you can start adding new MSIX application packages to Parallels RAS. Browse to the UNC path where your MSIX app attach packages are stored. In my case this is Azure Files and, in this example, I use Power BI as the package.</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ky kz dq la cf lb" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp le" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1528px;"><img alt="" class="cf lc ld" height="502" role="presentation" src="https://miro.medium.com/max/1400/0*Iwq0iuI9RUFTwG9d" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="df36" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">In the Display Name field specify the name that will be used for this package in Parallels RAS and click finish.</p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="2875" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">You can also use MSIX app attach packages that contain multiple applications. In my example below I have an MSIX app attach package containing three applications. The wizard shows me nice drop-down list of all applications that were discovered in the package.</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ky kz dq la cf lb" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp le" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1528px;"><img alt="" class="cf lc ld" height="505" role="presentation" src="https://miro.medium.com/max/1400/0*o759u0XE5r1lzxHV" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="d5e9" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">After adding a couple of MSIX app attach packages, the result looks like below.</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ky kz dq la cf lb" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lf" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1536px;"><img alt="" class="cf lc ld" height="505" role="presentation" src="https://miro.medium.com/max/1400/0*zTORAh5Wq0MQyVnK" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="205d" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Next, add the packages to a RD Session Host. Once added, packaged applications behave the exact same way as regular applications in Parallels RAS 19.</p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="d370" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">To add the applications, go to Farm, RD Session Host open the properties and go to the Application packages tab and add the application packages using the + icon.</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ky kz dq la cf lb" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lg" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1530px;"><img alt="" class="cf lc ld" height="502" role="presentation" src="https://miro.medium.com/max/1400/0*k2HZWWB-HDk2YVQf" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="cb37" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Once completed, Parallels RAS takes care of the MSIX app attach staging step and as a result the MSIX packages are now mounted on the RD Session Host server(s) as shown below. Note that in my case some application packages came from a combined MSIX app attach container called demo-msix-apps.</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ky kz dq la cf lb" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lh" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1243px;"><img alt="" class="cf lc ld" height="634" role="presentation" src="https://miro.medium.com/max/1400/0*oyQXofylRKqnilEF" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="e4a8" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">As mentioned before, MSIX app attach application are treated the same way as any other application in Parallels RAS. As shown below, you can publish them the same way as well. In this case I have published all the MSIX app attach applications and a Full Desktop.</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ky kz dq la cf lb" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp le" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1528px;"><img alt="" class="cf lc ld" height="508" role="presentation" src="https://miro.medium.com/max/1400/0*_7onH8hXT6N8-JAF" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="7c0f" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">After applying the configuration, log on to the Parallels client. You can now see the published apps and desktop.</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ky kz dq la cf lb" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp li" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 812px;"><img alt="" class="cf lc ld" height="450" role="presentation" src="https://miro.medium.com/max/1400/0*XdM85DyJzZHuOpw_" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="94b3" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">After logging on to the published desktop, the MSIX app attach registering step takes place and as a result the user sees the MSIX app attached applications.</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ky kz dq la cf lb" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lj" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 823px;"><img alt="" class="cf lc ld" height="723" role="presentation" src="https://miro.medium.com/max/1400/0*g-bF5CwSthRRMtJk" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="d0c3" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">And, if you take a look at the folder C:\Program Files\WindowsApps you can see the various junction points indicating that the MSIX applications are not locally installed but junction points to the Azure Files share.</p><figure class="kt ku kv kw ga kx fo fp paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="ky kz dq la cf lb" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="fo fp lk" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1474px;"><img alt="" class="cf lc ld" height="367" role="presentation" src="https://miro.medium.com/max/1400/0*9DEa5KnIMZpxsk-S" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="01b9" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Parallels did a great job integrating MSIX app attach into Remote Application Server 19! More reviews on other Parallels RAS 19 features will follow soon!</p><p class="pw-post-body-paragraph jf jg ii jh b ji jj jk jl jm jn jo jp jq jr js jt ju jv jw jx jy jz ka kb kc ib gj" data-selectable-paragraph="" id="55a6" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;"><b>Give it a try! Log in to your existing <a class="au kr" href="https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmy.parallels.com%2Fras%2Fbeta&data=05%7C01%7CFreek.Berson%40wortell.nl%7C83dfa7f111994108853b08da422cf0ed%7Cb1a6616c94734cab82b6b6affeed3e12%7C1%7C0%7C637895058078268487%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=s6oqHL03lAuN%2Fn1CGeqXcrCv7XCZqa2bnidJOES3vTo%3D&reserved=0" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">Parallels My Account</a>, download and install the Parallels RAS 19 Technical Preview to get started. If you do not already have an account, please visit my.parallels.com/register</b></p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-61267130597839023902022-05-12T09:36:00.000+02:002022-05-12T09:36:17.601+02:00Monitoring Azure Virtual Desktop with eG Enterprise<h1 style="text-align: left;"><span style="background-color: white; color: #292929; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px;">Why Azure Virtual Desktop, and why today?</span></h1><p class="pw-post-body-paragraph kl km iq kn b ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li ij ge" data-selectable-paragraph="" id="d2d2" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">If there is one thing we learned over the past 2 years, it is that hybrid work is here to stay. Many organizations have struggled with the challenges of working entirely remote during the early days of the pandemic. Digital transformation took a giant leap, and there is no way back. Businesses and organizations are no longer operated the way they were before 2020, and people, who are the most crucial part of a successful digital transformation, have different mindsets and priorities. It requires organizations to adapt and think differently on how to provide a flexible working environment and workplace for everyone.</p><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="a20d" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Looking back, the generally availability of Azure Virtual Desktop could not have come at a better time. Early 2020 I have helped many organizations embrace Azure Virtual Desktop to provide a secure workplace for everyone in a fast and flexible way. To date, Azure Virtual Desktop has grown into a mature platform and got even more traction with the release of Windows 365, Microsoft’s Desktop as a Service on top the Azure Virtual Desktop platform.</p><h1 class="jn jo iq bn jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk ge" data-selectable-paragraph="" id="f50a" style="background-color: white; box-sizing: inherit; color: #292929; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; line-height: 28px; margin: 3.14em 0px -0.37em;">Where do innovative ecosystem partners come in?</h1><p class="pw-post-body-paragraph kl km iq kn b ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li ij ge" data-selectable-paragraph="" id="b308" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">Even though Azure Virtual Desktop is a feature rich platform, Microsoft works with a large number of ecosystem partners that provide additional value on top of native Azure Virtual Desktop. As more organizations start to use Azure Virtual Desktop, one of the topics that becomes more and more important is getting insights in usage, performance, and monitoring. Out of the box, Azure Virtual Desktop comes with AVD Insights. This is a set of workbooks and dashboards that provides information on the usage of Azure Virtual Desktop based on telemetry data that is being collected in an Azure Log Analytics Workspace. It provides insights on things like average use, concurrency, average logon times, session diagnostics and host performance. Although AVD Insights already provides a lot of information, it is a dashboard that focusses on just the Azure Virtual Desktop layer. The end user experience in Azure virtual Desktop is determined by many more components and services. AVD Insights also not does not tell us much on the perceived end user experience and only allows pinpointing a root cause of a problem to a certain extend.</p><h1 class="jn jo iq bn jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk ge" data-selectable-paragraph="" id="30d8" style="background-color: white; box-sizing: inherit; color: #292929; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; line-height: 28px; margin: 3.14em 0px -0.37em;">eG Enterprise for end-to-end monitoring of Azure Virtual Desktop</h1><p class="pw-post-body-paragraph kl km iq kn b ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li ij ge" data-selectable-paragraph="" id="a228" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">In scenarios where you want to pinpoint slowness of a user session, get detailed insights on sessions and applications that are used, spot issues in the supporting Cloud infrastructure beyond the Azure Virtual Desktop resources, or want to periodically create detailed reports, you need a 3rd party solution. I’ve had the privilege to personally test drive eG Enterprise 7.2 during a private preview which includes capabilities to monitor Azure Virtual Desktop to provide answers to these questions. In this article I’m sharing some of my experiences.</p><h1 class="jn jo iq bn jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk ge" data-selectable-paragraph="" id="03b5" style="background-color: white; box-sizing: inherit; color: #292929; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; line-height: 28px; margin: 3.14em 0px -0.37em;">Sharing my experience with eG Enterprise for Azure Virtual Desktop</h1><p class="pw-post-body-paragraph kl km iq kn b ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li ij ge" data-selectable-paragraph="" id="1fed" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">First of all, the console of eG Enterprise is entirely web-based, which is great. In my case I’m using eG Enterprise Cloud. As the screenshot below shows, you get an end-to-end topology of the health of our Azure Virtual Desktop environment. Beyond the Azure Virtual Desktop services and session hosts, you can also include supporting infrastructure like Azure Active Directory, Active Directory Domain Services, Azure AD connect and any backend servers or services you are using.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq lo" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 903px;"><img alt="" class="cf ly lz" height="473" role="presentation" src="https://miro.medium.com/max/1400/0*RwO3TJPrymFwxwZF" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><h1 class="jn jo iq bn jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk ge" data-selectable-paragraph="" id="f544" style="background-color: white; box-sizing: inherit; color: #292929; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; line-height: 28px; margin: 3.14em 0px -0.37em;">AVD components</h1><p class="pw-post-body-paragraph kl km iq kn b ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li ij ge" data-selectable-paragraph="" id="b5cc" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">Starting with the AVD Brokering services, eG Enterprise provides in-depth details about the Azure Virtual Desktop service by covering your workspaces, app groups and host pools. The example below focuses on a specific host pool showing all details about the current usage. eG Enterprise also has auto-discover functionality for host pools, which makes the configuration super easy.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="334" role="presentation" src="https://miro.medium.com/max/1400/0*SjWRyQC6b13zk8qt" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="421c" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">The great thing here, and this goes for entire console, is that you can click on any items and get more information and history. For example, the screenshot below shows the available Session Hosts over the last 3 hours.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="gp gq mb" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 602px;"><img alt="" class="cf ly lz" height="399" role="presentation" src="https://miro.medium.com/max/1204/0*TPHSvYKsugLnpoxQ" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 601.998px;" width="602" /></div></figure><h1 class="jn jo iq bn jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk ge" data-selectable-paragraph="" id="ed28" style="background-color: white; box-sizing: inherit; color: #292929; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; line-height: 28px; margin: 3.14em 0px -0.37em;">AVD Services</h1><p class="pw-post-body-paragraph kl km iq kn b ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li ij ge" data-selectable-paragraph="" id="ccaa" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">Besides the AVD components you are running, eG Enterprise also monitors the AVD Service itself. For example, detailed availability of the AVD Web Access services as shown below.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="231" role="presentation" src="https://miro.medium.com/max/1400/0*o097zWRzlesJ2Jbx" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><h1 class="jn jo iq bn jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk ge" data-selectable-paragraph="" id="cf28" style="background-color: white; box-sizing: inherit; color: #292929; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; line-height: 28px; margin: 3.14em 0px -0.37em;">AVD Session Hosts</h1><p class="pw-post-body-paragraph kl km iq kn b ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li ij ge" data-selectable-paragraph="" id="f9c8" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">If you drill down into the one of the host pools, you can easily navigate to the performance of a single session host. This allows you to get a very detailed overview of the metrics of user sessions of a single session host as shown below.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="236" role="presentation" src="https://miro.medium.com/max/1400/0*Hsp9xCuUMSglqZ4d" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="eba6" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Drilling down further you can also get detailed information about the operating system.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="521" role="presentation" src="https://miro.medium.com/max/1400/0*VUJoi_q-vORZ3leD" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><h1 class="jn jo iq bn jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk ge" data-selectable-paragraph="" id="c807" style="background-color: white; box-sizing: inherit; color: #292929; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; line-height: 28px; margin: 3.14em 0px -0.37em;">User Sessions</h1><p class="pw-post-body-paragraph kl km iq kn b ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li ij ge" data-selectable-paragraph="" id="b0b9" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">Were eG Enterprise really excels is the ability to keep on drilling down into more details, for example the ability to get detailed information about the experience of a single user session.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="522" role="presentation" src="https://miro.medium.com/max/1400/0*UVtneBFNuUjvFA6T" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="aa43" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">And in this specific use case, I’m investigating more detailed GPU performance inside the Session Host.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="523" role="presentation" src="https://miro.medium.com/max/1400/0*Xl0bR9AeHIrskNUD" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="d726" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">And finally, you can even easily navigate into the performance and resource consumption of individual applications! For example, in the below screenshot I’m looking at the metrics of Microsoft Edge.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="522" role="presentation" src="https://miro.medium.com/max/1400/0*uR41zF1gwvNeELJT" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="b8fc" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Using the top bar menu, you can further drill into the Azure Virtual Desktop environment.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="370" role="presentation" src="https://miro.medium.com/max/1400/0*5dLLNU5wjjpSWsWi" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><h1 class="jn jo iq bn jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk ge" data-selectable-paragraph="" id="70bd" style="background-color: white; box-sizing: inherit; color: #292929; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; line-height: 28px; margin: 3.14em 0px -0.37em;">AVD High Level overview</h1><p class="pw-post-body-paragraph kl km iq kn b ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li ij ge" data-selectable-paragraph="" id="7992" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">The overview page provides you with a high-level overview of your host pools. It includes information like the number of host pools, the health, and session information per host pool. Again, all of these can be drilled down into by simply clicking on them.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="324" role="presentation" src="https://miro.medium.com/max/1400/0*cWv8H_yFAM8zUAQ4" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="413a" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">The session hosts tab provides you with a clean summary of the environment. Showing the overall resources consumed, a status per host and information related to active and disconnected sessions.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="523" role="presentation" src="https://miro.medium.com/max/1400/0*9MGsZtjzuqjlc0qu" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="2c2a" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Again, the console makes it very intuitive to drill down into the performance per individual user showing details like logon duration, round trip latency and bandwidth consumption.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="221" role="presentation" src="https://miro.medium.com/max/1400/0*mQbfFveh2p04djgh" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><h1 class="jn jo iq bn jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk ge" data-selectable-paragraph="" id="39bb" style="background-color: white; box-sizing: inherit; color: #292929; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; line-height: 28px; margin: 3.14em 0px -0.37em;">Detailed user session telemetry</h1><p class="pw-post-body-paragraph kl km iq kn b ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li ij ge" data-selectable-paragraph="" id="9db8" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">Clicking on a specific user provides even more details about the user session. You are presented with session information containing the users IP address, client version, a break down on the logon sequence, and even information on the FSLogix disk usage in the lower right corner.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="458" role="presentation" src="https://miro.medium.com/max/1400/0*BGOiWVBCj6F0VZy_" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="7d7b" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Again, what I personally really like about eG Enterprise is how almost anything allows you to drill down further and see historical information or discover trends. There are too many scenarios to show here, but for example clicking on the FSLogix disk space, the diagram below shows the growth of the FSlogix Profile Container over time.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="428" role="presentation" src="https://miro.medium.com/max/1400/0*bXKZMevZfNkVbqaH" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="e9fa" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">On that same page, you can also view more details on the consumption per process for this specific user.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="523" role="presentation" src="https://miro.medium.com/max/1400/0*8RXfgfLpRR9jwWXt" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="7dac" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">The User Experience tab provides a higher-level overview. In this case for example, I have three active sessions from the same client located West Europe. You can clearly tell one of these three sessions is connected via an Azure Virtual Desktop Control Plane in another region, in this case East US.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="522" role="presentation" src="https://miro.medium.com/max/1400/0*6HXGWDGvJniyqMZ3" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="c83f" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Besides all this information per user or per host pool, sometimes you also want to view details on applications across all your environments. This is exactly what the Applications tab contains. The overview below contains the number of instances per application as well as great details on the resource consumption!</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="523" role="presentation" src="https://miro.medium.com/max/1400/0*t2KnOeNJKBipr1u-" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><h1 class="jn jo iq bn jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk ge" data-selectable-paragraph="" id="3670" style="background-color: white; box-sizing: inherit; color: #292929; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; line-height: 28px; margin: 3.14em 0px -0.37em;">Azure Environment</h1><p class="pw-post-body-paragraph kl km iq kn b ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li ij ge" data-selectable-paragraph="" id="2bc5" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">As addressed earlier, eG Enterprise goes beyond the monitoring of Azure Virtual Desktop and is truly end-to-end. The screenshot below shows how eG Enterprise also includes telemetry and health about your Azure environment! For example, you can see the number of virtual machines, their size, location, and SKU. But interestingly also the trend of the virtual machines. This allows you to easily spot changes in number of virtual machines over time as well as gain information on how many of those were powered on and what the top5 trend is in terms of performance. All this information can of course also be found throughout various places in the Azure Portal or using Azure CLI, but the way eG Enterprise brings this information together in a single pane of glass including trends and environment dynamics, which makes it super easy to digest!</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="525" role="presentation" src="https://miro.medium.com/max/1400/0*SSl___ICCjAl1wEr" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="396c" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Again, the diagram is also highly interactive. As shown below, you can easily get insights in the performance metrics for all virtual machines to spot issues or configure alerting based on thresholds.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="214" role="presentation" src="https://miro.medium.com/max/1400/0*6sTFcKyPWQDeiCGR" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="0586" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Going one level deeper you are presented with even more details about current performance as well as trends about a single virtual machine.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="475" role="presentation" src="https://miro.medium.com/max/1400/0*WjampdEIENkI5BuK" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="20f3" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Azure Quotas are typically also something you have to deal with in larger environments. Insights on these quotas are made easily accessible in the console as well. For example, here is the current quota of the NVADSA10v5 Family vCPUs I have running as part of the A10 GPU public preview.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="365" role="presentation" src="https://miro.medium.com/max/1400/0*do0kobuTSBD6spaD" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><h1 class="jn jo iq bn jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk ge" data-selectable-paragraph="" id="de71" style="background-color: white; box-sizing: inherit; color: #292929; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; line-height: 28px; margin: 3.14em 0px -0.37em;">Azure Active Directory</h1><p class="pw-post-body-paragraph kl km iq kn b ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li ij ge" data-selectable-paragraph="" id="dd4c" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">You can also perform in depth monitoring of Azure Active Directory administrative activities. This allows you to keep track of activities and send alerts on suspicious activities related to objects like users, groups, or app registrations.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="522" role="presentation" src="https://miro.medium.com/max/1400/0*dCjcqijkvgOeOqnR" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="de03" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">This also includes Azure Active Directory Sign-in activities as shown below.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="198" role="presentation" src="https://miro.medium.com/max/1400/0*D-xjXN8Qgo1tcAWI" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="7e38" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">The power behind eG Enterprise is that it really allows you to monitor the entire Azure Virtual Desktop stack to achieve end-to-end monitoring. Besides the Azure Virtual Desktop, Azure Infrastructure and Azure Active Directory components you can also add any other service you want to monitor including any SaaS, IaaS, virtualization platform or backends you might be running. For many of those eG Enterprise provides an agentless approach, but where needed, agents for various platforms are also included.</p><h1 class="jn jo iq bn jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk ge" data-selectable-paragraph="" id="be8e" style="background-color: white; box-sizing: inherit; color: #292929; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; line-height: 28px; margin: 3.14em 0px -0.37em;">Reporting</h1><p class="pw-post-body-paragraph kl km iq kn b ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li ij ge" data-selectable-paragraph="" id="73d1" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">Interactive dashboards are great, but a monitoring solution is not complete without reporting functionality. Being able to automatically generate and distribute reports on the usage, uptime and performance of your environment is critical. eG Enterprise comes with a wide variety of different types of reports out of the box. Executive, operational, analytics or domain specific, they are all included. Let’s cover some Azure Virtual Desktop specific examples.</p><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="47c3" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">The report below provides details on the usage of Azure Virtual Desktop. It answers questions like who logged on? For how long? What was their average resource consumption?</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="164" role="presentation" src="https://miro.medium.com/max/1400/0*-245hGZwfGF-vXPD" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="06de" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Furthermore, the reports below show you the top 10 applications being used. These reports can be run on various levels, per broker, per host pool, and per session host.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="256" role="presentation" src="https://miro.medium.com/max/1400/0*6N2Ov4aSWpheL3Gx" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="ec29" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">A very useful report is one related to logon performance. The report below shows you the average logon time during a specific time range, a logon process breakdown as well as detailed analytics of each logon step.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="630" role="presentation" src="https://miro.medium.com/max/1400/0*aqatLRP0fy-Ki9YP" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="e81a" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">More specifically, you can also generate a report that focusses on slow logons over a period of time. This allows you get insights in where and when slow logons occurred and more importantly, drill down to perform a root cause analysis.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="627" role="presentation" src="https://miro.medium.com/max/1400/0*0DKyqhtQIuzkI1PT" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="bc06" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">You can also gain detailed insights on the usage per application to find out how often, how long, by which user, and on which session host a specific application was used.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="537" role="presentation" src="https://miro.medium.com/max/1400/0*GVwto07Us8bWkBA6" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="e607" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">More high level executive KPI reports are also possible. For example, the report below which shows the health of all components in the stack.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="204" role="presentation" src="https://miro.medium.com/max/1400/0*j2_o10X8OlGoXTbJ" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="2b35" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">All of the reports are customizable including the ability to create full custom reports, and you can also create your favorite reports, exports them to pdf, or automatically generate & email them periodically.</p><h1 class="jn jo iq bn jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk ge" data-selectable-paragraph="" id="1a10" style="background-color: white; box-sizing: inherit; color: #292929; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; line-height: 28px; margin: 3.14em 0px -0.37em;">Logon Simulations & synthetic users</h1><p class="pw-post-body-paragraph kl km iq kn b ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li ij ge" data-selectable-paragraph="" id="213c" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">eG Enterprise also provides synthetic monitoring solutions that allow you to proactively test, detect, and diagnose problems. A variety of synthetic monitoring functionalities, and logon simulations are provided. You can use synthetic monitoring to baseline the performance and user experience to identify changes in the future.</p><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="513d" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">The screenshot below shows the result of a logon simulation test for Azure Virtual Desktop. I really like the way eG Enterprise presents the information of the logon sequence showing each logon step, and the duration of each individual step.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="513" role="presentation" src="https://miro.medium.com/max/1400/0*OLbAJcVtq5kRDBrU" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="2964" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Note that the last step ‘Application/Desktop launch complete’ shows an image icon, upon clicking that icon, a screenshot is presented showing the actual output, the perceived end user experience!</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="gp gq mc" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 640px;"><img alt="" class="cf ly lz" height="439" role="presentation" src="https://miro.medium.com/max/1280/0*bmPp5vmQsQzZ1M4m" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 639.993px;" width="640" /></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="e909" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">A great way to confirm a successful test, but of course the real value is also being able to see the result in case of an unsuccessful test. For example, if no Session Hosts are available in the configured host pool, the ‘Session Establishment’ step obviously fails.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="449" role="presentation" src="https://miro.medium.com/max/1400/0*Q2Ig_jmz-dxJzDsc" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="e5eb" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">And the collected screenshot clearly indicates the reason!</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="gp gq md" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 491px;"><img alt="" class="cf ly lz" height="332" role="presentation" src="https://miro.medium.com/max/982/0*E4ToMnqepMJZudME" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 490.997px;" width="491" /></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="ea3e" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Once you have a baseline test, you are also collecting historical information. For example, the screenshot below shows the test duration over a period of time.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="416" role="presentation" src="https://miro.medium.com/max/1400/0*0hEIdTi_48an-NiP" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="4821" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">And finally, you can also create reports on logon simulations. The report below is per external agent and shows successful and failed logon simulations over a period of time.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="417" role="presentation" src="https://miro.medium.com/max/1400/0*4X8LPMNIJuassTCN" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="b18e" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">A report by Application/Desktop is also possible. The report below shows the availability of each individual step. Notice the unavailability inside the Application/Desktop launch diagram. That was during the test described earlier where all session hosts were set in drain mode.</p><figure class="lp lq lr ls hb lt gp gq paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="lu lv dq lw cf lx" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 691.998px; z-index: auto;" tabindex="0"><div class="gp gq ma" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 752px;"><img alt="" class="cf ly lz" height="628" role="presentation" src="https://miro.medium.com/max/1400/0*wOrP8mghygOnUKXX" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 691.998px;" width="700" /></div></div></figure><h1 class="jn jo iq bn jp jq jr js jt ju jv jw jx jy jz ka kb kc kd ke kf kg kh ki kj kk ge" data-selectable-paragraph="" id="5616" style="background-color: white; box-sizing: inherit; color: #292929; font-family: sohne, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 22px; line-height: 28px; margin: 3.14em 0px -0.37em;">Summary</h1><p class="pw-post-body-paragraph kl km iq kn b ko kp kq kr ks kt ku kv kw kx ky kz la lb lc ld le lf lg lh li ij ge" data-selectable-paragraph="" id="0cc3" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 0.86em 0px -0.46em; word-break: break-word;">I’m impressed what eG Enterprise has to offer in end-to-end monitoring for Azure Virtual Desktop. The auto discovery capabilities, including out of the box thresholds, allow for easy and fast configuration. Getting detailed insights in logon duration, application launch times and the perceived end user experience is great. The ability to gather load simulation tests details using a synthetic user is super helpful and the way they are displayed in the console is great. eG Enterprise goes beyond monitoring Azure Virtual Desktop only, with the ability to also closely monitor all surrounding infrastructure like Azure, Azure Active Directory, Active Directory Domain Services and any application backend. This makes eG Enterprise truly end-to-end. The reporting capabilities provide highly detailed as well executive level health overviews of your entire environment and can be created periodically in an automated way.</p><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="22ee" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Stay tuned for more news from eG Innovations on eG Enterprise 7.2 and monitoring Azure Virtual Desktop! I want to thank eG Innovations for providing the opportunity to test drive this functionality during preview!</p><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="ca18" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">For more information on eG Enterprise for Azure Virtual Desktop visit <a class="au me" href="https://www.eginnovations.com/azure-virtual-desktop-monitoring-avd" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">eginnovations.com/azure-virtual-desktop-monitoring-avd</a></p><p class="pw-post-body-paragraph kl km iq kn b ko lj kq kr ks lk ku kv kw ll ky kz la lm lc ld le ln lg lh li ij ge" data-selectable-paragraph="" id="02d6" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">#AVD #AzureVirtualDesktop #eginnovations</p><blockquote class="mf mg mh" style="background-color: white; box-shadow: rgb(41, 41, 41) 3px 0px 0px 0px inset; box-sizing: inherit; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 0px 0px 0px -20px; padding-left: 23px;"><p class="kl km mi kn b ko lj kq kr ks lk ku kv mj ll ky kz mk lm lc ld ml ln lg lh li ij ge" data-selectable-paragraph="" id="2d50" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; font-style: italic; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Originally posted here: <a class="au me" href="https://www.linkedin.com/pulse/monitoring-azure-virtual-desktop-eg-enterprise-freek-berson/" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">https://www.linkedin.com/pulse/monitoring-azure-virtual-desktop-eg-enterprise-freek-berson/</a></p></blockquote>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-7919446576219279302022-03-24T11:41:00.003+01:002022-03-24T11:41:33.493+01:00My repo containing decks & recorded sessions!<p>My repository contains a continuously growing list of the slide decks I used while presenting 🎥 (and co-presenting with community friends) at various in-person around the world 🌎, online conferences, user groups and webinars. Topics discussed in these sessions are Azure Virtual Desktop (AVD), Remote Desktop Services (RDS), Bicep and ARM Templates and much more!</p><p><a href="https://github.com/fberson/Slidedecks">https://github.com/fberson/Slidedecks</a></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://github.com/fberson/Slidedecks" style="margin-left: 1em; margin-right: 1em;" target="_blank"><img alt="" data-original-height="1220" data-original-width="980" height="690" src="https://blogger.googleusercontent.com/img/a/AVvXsEifRy-LCIX9vWUTMRX37Ee8Lvivd451ILfiiv3nkbQFCAAyzxe9PFCn7Ln_I-uw5BLsL1Yz9C8jlfNbswBMA6Jgi8mLMleHHOucIfRD9UbsUuxNT8l-cGYiwNfz6r2EKEwFBIoE8cx-nPqtsDMlRkWRIdtdM4m8iTU3CK4oqDUCOt8Qfva4gsE0scDiXg=w555-h690" width="555" /></a></div><br /><br /><p></p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-12745691389075657862021-11-17T09:23:00.003+01:002021-11-17T09:23:29.227+01:00Empowering AVD Image deployments with Azure Pipelines, Bicep and Liquit!<p><span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em;">In any Cloud implementation, automation is key in becoming successful. Azure Virtual Desktop (AVD) is no different. AVD is a service in Azure and for a big part its managed by Microsoft for you. But it doesn’t stop there. Microsoft manages the control plane components and you as the partner or customer organization need to deal with the components that you are responsible for. Basically, anything that shows up in your or your customers Azure Subscription as well as the various AVD clients you use.</span></p><p><span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em;">This means you as the partner or customer organization can focus on what’s really important, the perceived end user experience and optimizing that experience for your specific use case or scenario. This involves things like auto-scaling, profile management, image optimization and yes, also maintaining applications and putting in place proper application life cycle management.</span></p><p><span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em;">Its probably no surprise that by far the number one application published and used in AVD is Microsoft 365 apps for enterprise. Microsoft already does a good job at providing that in various marketplace images for AVD including the FSLogix agent that improves the user experience. Most AVD environments however also include 3rd party applications specific to the customers organization.</span></p><p><span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em;">When dealing with AVD Personal scenarios it makes sense to treat your AVD personal hosts as you would treat your physical devices. Since there is a 1-to-1 relationship between the user and the VM, you can have the same application distribution and update approach for both physical and virtual environments. When dealing with AVD Pooled Scenarios, many organizations prefer a ‘traditional’ approach based on a golden image strategy. This ensures that the user experience is same the regardless of the session host their session lands on. It also allows testing applications and OS updates in a separate staging environment prior to production. Furthermore, it allows reverting back to a previous image version in case issues arise. And, based on Infrastructure as Code, you can deploy and expand your host pool in a fully automated way.</span></p><p><span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em;">In an ideal world, both user profiles and all applications are fully separated from the Session Host OS. For the first piece is the puzzle, FSLogix Profile Containers already makes sure a user’s profile is fully separated and stored centrally on Azure Files or Azure NetApp files. For the second piece of the puzzle, MSIX app attach is a great solution. It allows you to place an extracted MSIX application inside a VHDX container and attach it to the Session Host. This is fully transparent to the OS as well as to the user. Basically, the OS is tricked into thinking an MSIX application was installed and you can register the application to a set of users. As ideal as this sounds, it does mean that the application needs to be in the MSIX format. Hopefully application vendors will start to embrace MSIX and delivers their applications natively as MSIX too. Until that time however, applications need to be transformed from MSI or Exe towards MSIX. Although there are both free and paid tools out there that help you in this process, most organizations will not achieve 100% success rate in the transformation process.</span></p><p><span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em;">There are many ways to deal with installing applications as part of your AVD Image Deployment. In this blog post, I focus on using a fully automated approach using Liquit as the application source and an Azure DevOps Pipeline leveraging Bicep and Az Cli for the automation part.</span></p><p><span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em;">The goals is to create a new image from scratch based on an Azure Market place image, have Liquit install all applications, capture the image towards an Image Gallery and deploy new Session Host servers towards an AVD Host pool.</span></p><ul class="" style="background-color: white; box-sizing: inherit; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; list-style: none none; margin: 0px; padding: 0px;"><li class="gf gg ct gh b gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf dq" data-selectable-paragraph="" id="cdc2" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; list-style-type: disc; margin-bottom: -0.46em; margin-left: 30px; margin-top: 2em; padding-left: 0px;">It all starts with a Deployment in Liquit containing the applications we want to install as part of this AVD Image. In this case its a combination of applications coming from the huge Liquit Setup Store as well as custom added and modified applications.</li><li class="gf gg ct gh b gi hg gk gl gm hh go gp gq hi gs gt gu hj gw gx gy hk ha hb hc hd he hf dq" data-selectable-paragraph="" id="619d" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; list-style-type: disc; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.05em; padding-left: 0px;">As part of an Azure DevOps pipeline, Bicep is used to deploy a new Template VM in Azure based on the OS version and SKU provided as the parameter.</li><li class="gf gg ct gh b gi hg gk gl gm hh go gp gq hi gs gt gu hj gw gx gy hk ha hb hc hd he hf dq" data-selectable-paragraph="" id="98a8" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; list-style-type: disc; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.05em; padding-left: 0px;">Next, the Liquit Agent is installed and a pre-configured agent.xml is downloaded from a secure Azure Files location to configure the Liquit Agent.</li><li class="gf gg ct gh b gi hg gk gl gm hh go gp gq hi gs gt gu hj gw gx gy hk ha hb hc hd he hf dq" data-selectable-paragraph="" id="3cf1" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; list-style-type: disc; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.05em; padding-left: 0px;">The Liquit Agent now installs all the applications as configured in the Deployment</li><li class="gf gg ct gh b gi hg gk gl gm hh go gp gq hi gs gt gu hj gw gx gy hk ha hb hc hd he hf dq" data-selectable-paragraph="" id="eabb" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; list-style-type: disc; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.05em; padding-left: 0px;">Next, the Template VM is sysprepped, stopped and deallocated</li><li class="gf gg ct gh b gi hg gk gl gm hh go gp gq hi gs gt gu hj gw gx gy hk ha hb hc hd he hf dq" data-selectable-paragraph="" id="dcf4" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; list-style-type: disc; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.05em; padding-left: 0px;">The pipeline continues by capturing the template VM and placing as a new Image Version inside an Azure Compute Gallery (previously Shared Image Gallery) and the sysprepped Template VM is removed from Azure.</li><li class="gf gg ct gh b gi hg gk gl gm hh go gp gq hi gs gt gu hj gw gx gy hk ha hb hc hd he hf dq" data-selectable-paragraph="" id="e00c" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; list-style-type: disc; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.05em; padding-left: 0px;">Next, the pipeline generates a new host pool registration token to prepare for the Session Host servers to be added.</li><li class="gf gg ct gh b gi hg gk gl gm hh go gp gq hi gs gt gu hj gw gx gy hk ha hb hc hd he hf dq" data-selectable-paragraph="" id="2ffe" style="box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; list-style-type: disc; margin-bottom: -0.46em; margin-left: 30px; margin-top: 1.05em; padding-left: 0px;">And finally, the pipeline deploys x number of Session Host Servers, joins them to the domain, installs the AVD Agent and adds them to the configured Host pool.</li></ul><figure class="hm hn ho hp hq hr bx by paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="hs ht hu hv aj hw" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 679.998px; z-index: auto;" tabindex="0"><div class="bx by hl" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1867px;"><div class="ic s hu id" style="background-color: #f2f2f2; box-sizing: inherit; margin: auto; position: relative;"><div class="ie if s" style="box-sizing: inherit; height: 0px; padding-bottom: 340.97px;"><div class="hx hy t u v hz aj bb ia ib" style="box-sizing: inherit; height: 340.97px; left: 0px; opacity: 0; overflow: hidden; position: absolute; top: 0px; transform: translateZ(0px); transition: opacity 100ms ease 400ms; width: 679.998px; will-change: transform;"><img alt="" class="t u v hz aj ig ih mm qs" height="351" role="presentation" src="https://miro.medium.com/max/60/0*6IYJP6ikDllK5RgL?q=20" style="box-sizing: inherit; filter: blur(20px); height: 340.97px; left: 0px; position: absolute; top: 0px; transform: scale(1.1); transition: visibility 0ms ease 400ms; vertical-align: middle; visibility: hidden; width: 679.998px;" width="700" /></div><img alt="" class="ka lr t u v hz aj c" height="351" role="presentation" sizes="700px" src="https://miro.medium.com/max/817/0*6IYJP6ikDllK5RgL" srcset="https://miro.medium.com/max/322/0*6IYJP6ikDllK5RgL 276w, https://miro.medium.com/max/644/0*6IYJP6ikDllK5RgL 552w, https://miro.medium.com/max/747/0*6IYJP6ikDllK5RgL 640w, https://miro.medium.com/max/817/0*6IYJP6ikDllK5RgL 700w" style="background-color: white; box-sizing: inherit; height: 340.97px; left: 0px; opacity: 1; position: absolute; top: 0px; transition: opacity 400ms ease 0ms; vertical-align: middle; width: 679.998px;" width="700" /></div></div></div></div></figure><p class="gf gg ct gh b gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc cl dq" data-selectable-paragraph="" id="10f1" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">The entire process only took 26 minutes to complete! In case of an application update or new application, it can simply be added to the Liquit Deployment and within 26 minutes it is available in the AVD Host pool. Introducing an approval step between a deployment towards a test environment and a production environment can of course easily be added.</p><p class="gf gg ct gh b gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc cl dq" data-selectable-paragraph="" id="10f1" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;"><span style="letter-spacing: -0.003em;">Interested in the details and code behind this deployment? Join me on a webinar together with the Liquit team on December 7th 3PM CET, for demo-heavy session that walks through this scenario!</span></p><p class="gf gg ct gh b gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc cl dq" data-selectable-paragraph="" id="a96e" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;"><a class="el ij" href="https://register.gotowebinar.com/register/3599764104761845515" rel="noopener ugc nofollow" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;" target="_blank">https://register.gotowebinar.com/register/3599764104761845515</a></p><figure class="hm hn ho hp hq hr bx by paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="hs ht hu hv aj hw" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 679.998px; z-index: auto;" tabindex="0"><div class="bx by ik" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 800px;"><div class="ic s hu id" style="background-color: #f2f2f2; box-sizing: inherit; margin: auto; position: relative;"><div class="il if s" style="box-sizing: inherit; height: 0px; padding-bottom: 382.729px;"><div class="hx hy t u v hz aj bb ia ib" style="box-sizing: inherit; height: 382.729px; left: 0px; opacity: 0; overflow: hidden; position: absolute; top: 0px; transform: translateZ(0px); transition: opacity 100ms ease 400ms; width: 679.998px; will-change: transform;"><img alt="" class="t u v hz aj ig ih mm qs" height="394" role="presentation" src="https://miro.medium.com/max/60/0*WkIlwM-k5LfGOwqF?q=20" style="box-sizing: inherit; filter: blur(20px); height: 382.729px; left: 0px; position: absolute; top: 0px; transform: scale(1.1); transition: visibility 0ms ease 400ms; vertical-align: middle; visibility: hidden; width: 679.998px;" width="700" /></div><img alt="" class="ka lr t u v hz aj c" height="394" role="presentation" sizes="700px" src="https://miro.medium.com/max/817/0*WkIlwM-k5LfGOwqF" srcset="https://miro.medium.com/max/322/0*WkIlwM-k5LfGOwqF 276w, https://miro.medium.com/max/644/0*WkIlwM-k5LfGOwqF 552w, https://miro.medium.com/max/747/0*WkIlwM-k5LfGOwqF 640w, https://miro.medium.com/max/817/0*WkIlwM-k5LfGOwqF 700w" style="background-color: white; box-sizing: inherit; height: 382.729px; left: 0px; opacity: 1; position: absolute; top: 0px; transition: opacity 400ms ease 0ms; vertical-align: middle; width: 679.998px;" width="700" /></div></div></div></div></figure><p class="gf gg ct gh b gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx gy gz ha hb hc cl dq" data-selectable-paragraph="" id="1997" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">#AVD #Liquit #AzureVirtualDesktop</p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-65649087702513141312021-08-23T08:55:00.003+02:002021-08-23T08:55:21.266+02:00Multimedia redirection for Azure Virtual Desktop preview<p><span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; letter-spacing: -0.003em;"><span style="font-size: x-large;">L</span></span><span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em;">ast week the public preview of Multimedia redirection (MMR) for Azure Virtual Desktop was announced! MMR provides the user with a very smooth video playback experience while watching videos in a browser running on Azure Virtual Desktop.</span></p><p class="ga gb cq gc b gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx ci dn" data-selectable-paragraph="" id="206d" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Essentially what happens is that the video from the browser to offloaded to the local machine for faster processing and rendering. As a result of that, the user is presented with a smooth video experience, even when playing a full screen 4k video. Not only that, since the playback is offloaded to the local a significant drop in resources on the AVD host will also occur which leads to a higher user density. Typically you’ll see less CPU used on the AVD host and the local GPU being leveraged.</p><p class="ga gb cq gc b gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx ci dn" data-selectable-paragraph="" id="2ff9" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">To get this to work you need a couple of <a class="ei gy" href="https://docs.microsoft.com/en-us/azure/virtual-desktop/multimedia-redirection#requirements" rel="noopener" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;">requirements</a> (some of those are related to preview version of MMR). Also note that both Edge and Chrome are supported.</p><p class="ga gb cq gc b gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx ci dn" data-selectable-paragraph="" id="d7d5" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">After installing the the multimedia redirection extension on your AVD hosts, it can be enabled inside the browse as shown below.</p><figure class="ha hb hc hd he hf bu bv paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="hg hh hi hj aj hk" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 679.998px; z-index: auto;" tabindex="0"><div class="bu bv gz" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 1264px;"><img alt="" class="aj hl hm" height="252" role="presentation" src="https://miro.medium.com/max/1400/1*QiWifXIweSxI4QK-6-ebQw.png" style="box-sizing: inherit; height: auto; max-width: 100%; vertical-align: middle; width: 679.998px;" width="700" /></div></div></figure><p class="ga gb cq gc b gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx ci dn" data-selectable-paragraph="" id="bbdc" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Once enabled you will see the AVD icon in the upper right corner of your browser indicating the extension is enabled. For this current preview, only YouTube is supported but you can already test other webservices by selecting “Enable for all sites” which, as it states is currently in an experimental face.</p><figure class="ha hb hc hd he hf bu bv paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="hg hh hi hj aj hk" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 679.998px; z-index: auto;" tabindex="0"><div class="bu bv hn" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 735px;"><div class="ht s hi hu" style="background-color: #f2f2f2; box-sizing: inherit; margin: auto; position: relative;"><div class="hv hw s" style="box-sizing: inherit; height: 0px; padding-bottom: 625.596px;"><div class="ho hp t u v hq aj bb hr hs" style="box-sizing: inherit; height: 625.596px; left: 0px; opacity: 0; overflow: hidden; position: absolute; top: 0px; transform: translateZ(0px); transition: opacity 100ms ease 400ms; width: 679.998px; will-change: transform;"><img alt="" class="t u v hq aj hx hy ls qc" height="644" role="presentation" src="https://miro.medium.com/max/60/1*FGWYWlu5ms8VbsWhSuog_A.png?q=20" style="box-sizing: inherit; filter: blur(20px); height: 625.596px; left: 0px; position: absolute; top: 0px; transform: scale(1.1); transition: visibility 0ms ease 400ms; vertical-align: middle; visibility: hidden; width: 679.998px;" width="700" /></div><img alt="" class="jq ln t u v hq aj c" height="644" role="presentation" sizes="700px" src="https://miro.medium.com/max/817/1*FGWYWlu5ms8VbsWhSuog_A.png" srcset="https://miro.medium.com/max/322/1*FGWYWlu5ms8VbsWhSuog_A.png 276w, https://miro.medium.com/max/644/1*FGWYWlu5ms8VbsWhSuog_A.png 552w, https://miro.medium.com/max/747/1*FGWYWlu5ms8VbsWhSuog_A.png 640w, https://miro.medium.com/max/817/1*FGWYWlu5ms8VbsWhSuog_A.png 700w" style="background-color: white; box-sizing: inherit; height: 625.596px; left: 0px; opacity: 1; position: absolute; top: 0px; transition: opacity 400ms ease 0ms; vertical-align: middle; width: 679.998px;" width="700" /></div></div></div></div></figure><p class="ga gb cq gc b gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx ci dn" data-selectable-paragraph="" id="945f" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">To take MMR to the test I did a comparison of running a 4K YouTube video in full screen in an AVD Session with and without MMR enabled on a session host without GPU.</p><p class="ga gb cq gc b gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx ci dn" data-selectable-paragraph="" id="6e7c" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;"><a class="ei gy" href="https://www.youtube.com/watch?v=i1Z4EuPDoCw" rel="noopener" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;">Azure Virtual Desktop Multimedia Redirection (preview) — YouTube</a></p><figure class="ha hb hc hd he hf bu bv paragraph-image" style="background-color: white; box-sizing: inherit; clear: both; color: rgba(0, 0, 0, 0.8); font-family: medium-content-sans-serif-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; margin: 56px auto 0px;"><div class="hg hh hi hj aj hk" role="button" style="box-sizing: inherit; cursor: zoom-in; position: relative; transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) 0s; width: 679.998px; z-index: auto;" tabindex="0"><div class="bu bv ia" style="box-sizing: inherit; margin-left: auto; margin-right: auto; max-width: 2226px;"><div class="ht s hi hu" style="background-color: #f2f2f2; box-sizing: inherit; margin: auto; position: relative;"><div class="ib hw s" style="box-sizing: inherit; height: 0px; padding-bottom: 352.622px;"><div class="ho hp t u v hq aj bb hr hs" style="box-sizing: inherit; height: 352.622px; left: 0px; opacity: 0; overflow: hidden; position: absolute; top: 0px; transform: translateZ(0px); transition: opacity 100ms ease 400ms; width: 679.998px; will-change: transform;"><img alt="" class="t u v hq aj hx hy ls qc" height="363" role="presentation" src="https://miro.medium.com/max/60/1*kDPtw3tn9ekllQoeK_6GWw.png?q=20" style="box-sizing: inherit; filter: blur(20px); height: 352.622px; left: 0px; position: absolute; top: 0px; transform: scale(1.1); transition: visibility 0ms ease 400ms; vertical-align: middle; visibility: hidden; width: 679.998px;" width="700" /></div><img alt="" class="jq ln t u v hq aj c" height="363" role="presentation" sizes="700px" src="https://miro.medium.com/max/817/1*kDPtw3tn9ekllQoeK_6GWw.png" srcset="https://miro.medium.com/max/322/1*kDPtw3tn9ekllQoeK_6GWw.png 276w, https://miro.medium.com/max/644/1*kDPtw3tn9ekllQoeK_6GWw.png 552w, https://miro.medium.com/max/747/1*kDPtw3tn9ekllQoeK_6GWw.png 640w, https://miro.medium.com/max/817/1*kDPtw3tn9ekllQoeK_6GWw.png 700w" style="background-color: white; box-sizing: inherit; height: 352.622px; left: 0px; opacity: 1; position: absolute; top: 0px; transition: opacity 400ms ease 0ms; vertical-align: middle; width: 679.998px;" width="700" /></div></div></div></div></figure><p class="ga gb cq gc b gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx ci dn" data-selectable-paragraph="" id="f560" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">The video playback in the remote session was very smooth with MMR enabled and there was a significant drop in CPU usage noticeable. Also, the local GPU was clearly being leveraged for the rendering of the offloaded YouTube video.</p><p class="ga gb cq gc b gd ge gf gg gh gi gj gk gl gm gn go gp gq gr gs gt gu gv gw gx ci dn" data-selectable-paragraph="" id="3666" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">Although still in public preview with some <a class="ei gy" href="https://docs.microsoft.com/en-us/azure/virtual-desktop/multimedia-redirection#known-issues-and-limitations" rel="noopener" style="-webkit-tap-highlight-color: transparent; box-sizing: inherit;">current limitations</a> to be aware of and this being a very early test, the results were already amazing. I’m looking forward to seeing how this continues to evolve.</p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-58034583066988927312021-07-13T07:57:00.000+02:002021-07-13T07:57:44.497+02:00New book: 'Getting started with Bicep' now available!<p></p><blockquote>Happy to announce my new book: <u>Getting started with Bicep : Infrastructure as code</u> is now available on Amazon both in <b>kindle</b> and<b> paper back</b>!</blockquote><p></p><p class="graf graf--p" name="653a">I’m extremely honored and thankful that both <a class="markup--anchor markup--p-anchor" data-href="https://www.linkedin.com/in/ACoAAAAFrCIBw5XV78wSeLpbGyF8GVU1_p-mcXk" href="https://www.linkedin.com/in/ACoAAAAFrCIBw5XV78wSeLpbGyF8GVU1_p-mcXk" rel="noopener" target="_blank">Mark Russinovich</a> and <a class="markup--anchor markup--p-anchor" data-href="https://www.linkedin.com/in/ACoAAAlozLkB5wSj3xEck-Yikfcq7u1N-wz3lC4" href="https://www.linkedin.com/in/ACoAAAlozLkB5wSj3xEck-Yikfcq7u1N-wz3lC4" rel="noopener" target="_blank">Alex Frankel</a> wrote on introduction to this book! Thank you so much for taking the time! A huge thank you to <a class="markup--anchor markup--p-anchor" data-href="https://www.linkedin.com/in/ACoAAAFZ9zcB2PgN-XOYhCRcVkJP1-SfLczPz-s" href="https://www.linkedin.com/in/ACoAAAFZ9zcB2PgN-XOYhCRcVkJP1-SfLczPz-s" rel="noopener" target="_blank">Kristin Griffin</a>, <a class="markup--anchor markup--p-anchor" data-href="https://www.linkedin.com/in/ACoAAAAY5dMBTK_JVnLTW8wR7ata3ZaWu7Iaotk" href="https://www.linkedin.com/in/ACoAAAAY5dMBTK_JVnLTW8wR7ata3ZaWu7Iaotk" rel="noopener" target="_blank">Esther Barthel</a> and <a class="markup--anchor markup--p-anchor" data-href="https://www.linkedin.com/in/ACoAAAFXKxABqdd3XFooS8S3D6ghOPpQanO1jjo" href="https://www.linkedin.com/in/ACoAAAFXKxABqdd3XFooS8S3D6ghOPpQanO1jjo" rel="noopener" target="_blank">Marcel Eeken</a> who reviewed the book and provided great feedback! I could not have done this without you! And finally, a big thanks to <a class="markup--anchor markup--p-anchor" data-href="https://www.linkedin.com/in/ACoAAAsoIyEB27Pkpt_BqQt8XaVfmZrUc5pnbG4" href="https://www.linkedin.com/in/ACoAAAsoIyEB27Pkpt_BqQt8XaVfmZrUc5pnbG4" rel="noopener" target="_blank">Stefan Ivemo</a> who authored a great guest chapter covering his community project, a PowerShell module for Bicep! </p><p class="graf graf--p" name="dc22"><a class="markup--anchor markup--p-anchor" data-href="https://www.amazon.com/Getting-started-Bicep-Infrastructure-Azure-ebook/dp/B0984MQY2N" href="https://www.amazon.com/Getting-started-Bicep-Infrastructure-Azure-ebook/dp/B0984MQY2N" rel="noopener" target="_blank"><span style="font-size: medium;">Click here to order!</span></a></p><figure class="graf graf--figure" name="328d"><img class="graf-image" data-height="391" data-image-id="1*ZaWKKlVHxA73lJr9lMc_eA.png" data-width="1262" height="188" src="https://cdn-images-1.medium.com/max/933/1*ZaWKKlVHxA73lJr9lMc_eA.png" width="608" /></figure><p class="graf graf--p" name="1ccc"><strong class="markup--strong markup--p-strong">Description:</strong></p><p class="graf graf--p" name="6230">Infrastructure as Code is crucial to becoming successful in the Azure Cloud. Azure Resource Manager allows you to create resources in Azure in a declarative way. For many years we have been using ARM Templates to declare resources in a JSON format. Although ARM Templates are very powerful, the implementation of the JSON language is hard to read, maintain and debug. Bicep, a Domain Specific Language, overcomes these issues by providing a transparent abstraction layer on top of ARM and ARM Templates. This significantly improves the authoring experience. Bicep is easy to understand at a glance and straightforward to learn regardless of your experience with other programming languages. The book starts with some history and background in Infrastructure as Code and ARM Templates. It continues by explaining Bicep and providing guidance on how to get started. After the introduction, you will start your journey by understanding the syntax of Bicep. You will start by learning the basics first and you will gradually dive deeper in the more advanced scenarios. The book also contains a dedicated chapter on a big real-world example which provides you with great insights on how to leverage Bicep for production usage. Part of this book is also the Bicep playground, visualizer and a PowerShell module for Bicep provided by the community. Sample code used in this book is available on a dedicated GitHub repository.</p><p class="graf graf--p" name="2ab6"><strong class="markup--strong markup--p-strong">What you will learn:</strong></p><ul class="postList"><li class="graf graf--li" name="dd3b">How to get started with the Bicep CLI and VSCode Extension</li><li class="graf graf--li" name="82c4">Deploying Bicep files to Azure, including template specs</li><li class="graf graf--li" name="7263">Understanding the Bicep file structure</li><li class="graf graf--li" name="bf4d">How to use the basic concepts of variables, parameters, tags, decorators, expressions, and symbolic names</li><li class="graf graf--li" name="7ca3">Getting familiar with more advanced topics like dependencies, loops, conditions, target scopes, modules, and nesting</li><li class="graf graf--li" name="0caa">Leveraging features like snippets, scaffolding, and linter that support you while authoring Bicep templates.</li></ul><p class="graf graf--p" name="e1d1"><strong class="markup--strong markup--p-strong">Dedicated GitHub repository:</strong></p><p class="graf graf--p" name="6267">Part of this book is a <a class="markup--anchor markup--p-anchor" data-href="https://github.com/fberson/Getting-started-with-Bicep-Infrastructure-as-code-on-Azure" href="https://github.com/fberson/Getting-started-with-Bicep-Infrastructure-as-code-on-Azure" rel="noopener nofollow noopener" target="_blank">dedicated GitHub repository</a> containing the sample code that is used throughout the book.</p><figure class="graf graf--figure" name="0aff"><img class="graf-image" data-height="608" data-image-id="1*HznE8a8PRf4S_zZNgQGzrw.png" data-width="1055" height="344" src="https://cdn-images-1.medium.com/max/933/1*HznE8a8PRf4S_zZNgQGzrw.png" width="600" /></figure><p class="graf graf--p graf--empty" name="e32d"><br /></p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-48046413018250915862021-04-16T09:18:00.003+02:002021-04-16T09:22:22.380+02:00Bicep code snippets for WVD!<p class="graf graf--p" name="e1bd">Yesterday, a couple of code snippets I contributed to Bicep 💪, were merged in the latest Bicep CLI version 0.3.310! Super cool to see this in action myself for the first time.</p><figure class="graf graf--figure" name="ad0e"><a href="https://www.youtube.com/watch?v=1k-hOEmDCcQ&t=1s"><img class="graf-image" data-height="843" data-image-id="1*bJij0J8R1Dr-K2C_QpL_qw.png" data-is-featured="true" data-width="1209" height="357" src="https://cdn-images-1.medium.com/max/933/1*bJij0J8R1Dr-K2C_QpL_qw.png" width="512" /></a></figure><p class="graf graf--p" name="b60c">What does it allow you to do? Bicep is the DSL which allows you to create Azure Resources in a declarative way. The Bicep VSCode extension already does a great job of providing Intellisense, code completion and much more! Recently, the concept of Code Snippets was also introduced in Bicep. This allows you to declare resources in a super fast way.</p><p class="graf graf--p" name="78d1">The Code Snippets I contributed allow you to declare WVD resources in a matter of seconds. It’s hard to capture this in a couple of screenshots, so I created a <a href="https://www.youtube.com/watch?v=1k-hOEmDCcQ&t=1s">quick video</a> to show this in action!</p><p class="graf graf--p" name="78d1"><a class="markup--anchor markup--p-anchor" data-href="https://www.youtube.com/watch?v=1k-hOEmDCcQ" href="https://www.youtube.com/watch?v=1k-hOEmDCcQ" rel="noopener" target="_blank">Bicep code snippets for WVD in action! — YouTube</a></p><p class="graf graf--p" name="24ec">Subscribe to my You Tube channel to get updates on new videos!</p><p class="graf graf--p" name="5c6f"><br /></p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-47457291229618610232021-04-08T14:56:00.001+02:002021-04-08T14:56:12.410+02:00Slide decks of my speaking engagements<p class="gx gy fn gz b ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq db dw" data-selectable-paragraph="" id="6886" style="background-color: white; box-sizing: inherit; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; margin: 24px 0px -0.46em; word-break: break-word;"><span style="color: #292929;">I decided it was about time to publish the decks of my speaking engagements into a central repo. Github ⭐ seemed like the perfect place, so here it is. It contains a first subset of my sessions over the past years from in-person events around the world 🌎(pre-Covid), various community conferences, meetups & webinars 🎥! </span><span style="color: #0b5394;"><a href="https://github.com/fberson/Slidedecks"><span style="color: #0b5394;">https://github.com/fberson/Slidedecks</span></a>.</span><span style="color: #292929;"> Most session discuss topics around Windows Virtual Desktop, Remote Desktop Services, ARM Templates and Bicep!</span></p><p class="gx gy fn gz b ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq db dw" data-selectable-paragraph="" id="6886" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; margin: 24px 0px -0.46em; word-break: break-word;"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://github.com/fberson/Slidedecks" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="914" data-original-width="817" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWJgrt7nyl435pS5Mwgz0NAYMLS3mFnwVAtGFEaUf-SMZEUxjVubcMNefsyUjORZXqWUjknIGjyr8alaU0LNFtMCwew-n2nYgXRCHteS_U_ZtVzo1kC9BwaZPG53xI_ruk8TszP-gTZA7W/w358-h400/image.png" width="358" /></a></div><br /><br /><p></p><p class="gx gy fn gz b ha hs hb hc hd ht he hf hg hu hh hi hj hv hk hl hm hw hn ho hq db dw" data-selectable-paragraph="" id="11d8" style="background-color: white; box-sizing: inherit; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 32px; margin: 2em 0px -0.46em; word-break: break-word;">#WVD #Bicep #Community</p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-91972067888202543442020-12-22T08:33:00.004+01:002020-12-22T08:33:50.664+01:00e-book: Windows Virtual Desktop Migration Guide for Remote Desktop Services<p>I authored the e-book Windows Virtual Desktop
Migration Guide for
Remote Desktop Services. This book takes you through a 7-step process of migrating your RDS workloads to WVD. </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://azure.microsoft.com/en-gb/resources/windows-virtual-desktop-migration-guide-for-remote-desktop-services/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="720" data-original-width="1111" height="412" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkbt-etHKyAkLSeZSaYxR-jEnhRdMfnqmbfwXuLiEJbD8aVhIG25hLUiuc2wK0LRJcWyog1wNzZ5A92hVCNcHuP4o7A2FrhvsBMDG6xDLok1bB57bnV7Qf8v4lxyPmwL7jG09Vz7cLJAID/w636-h412/image.png" width="636" /></a></div><br />The book focusses on the migration process and with only 40 pages it's easy to digest! <p></p><p>The e-book is published by Microsoft as a <b>free </b>download: <a href="https://azure.microsoft.com/en-gb/resources/windows-virtual-desktop-migration-guide-for-remote-desktop-services/" style="font-family: "Segoe UI", sans-serif;">https://azure.microsoft.com/en-gb/resources/windows-virtual-desktop-migration-guide-for-remote-desktop-services/</a></p><p class="MsoNormal"><span lang="NL" style="font-family: "Segoe UI",sans-serif; mso-ansi-language: NL;"><o:p></o:p></span></p><br /><br /><p></p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0tag:blogger.com,1999:blog-6293099363289106257.post-14276007674637465132020-12-15T13:10:00.001+01:002020-12-15T13:10:39.016+01:00Parallels RAS integration with Windows Virtual Desktop!<p class="graf graf--p" name="f4fa">Recently Parallels announced version 18 of their Remote Application Server (RAS) product is coming soon! The release notes with added features and improvements for this version is huge! The highlights are as:</p><ul class="postList"><li class="graf graf--li" name="a639">Windows Virtual Desktop Integration</li><li class="graf graf--li" name="bbd6">FSLogix Profile Containers Integration</li><li class="graf graf--li" name="181a">UX Evaluator & Advanced Session Metrics</li><li class="graf graf--li" name="c281">Automated Image Optimizations</li><li class="graf graf--li" name="9029">RDSH & VDI Local Storage Distribution</li><li class="graf graf--li" name="286a">Management Portal</li></ul><p class="graf graf--p" name="43cc">For an explanation of the full list of this release see this article: <a class="markup--anchor markup--p-anchor" data-href="https://www.parallels.com/products/ras/wvd-coming-soon-ras18/#fslogix" href="https://www.parallels.com/products/ras/wvd-coming-soon-ras18/#fslogix" rel="nofollow noopener noopener" target="_blank">Coming Soon in Parallels RAS 18</a>. In this article I want to focus on the Windows Virtual Desktop Integration. I remember conversations with many people of the Parallels RAS team discussing Windows Virtual Desk integration approaches based on their early mock up diagrams. I had the privilege of testing version 18 release during technical preview and it’s great to see the ideas and discussions come to life integration into their product. They did a great job! The parallels RAS product is known for it’s feature richness without the complexity, and they managed to pull that off once again with the WVD Integration!</p><p class="graf graf--p" name="9a2e">If you’re familiar with installing Parallels RAS, the installation process of version 18 will look very similar. You do of course have to have a couple of additional requirements in place specifically for the WVD integration. Because of the integration, a couple of permissions on the Azure AD and Azure Resources side need to be in place and Parallels RAS uses an App registration for all of this. I will not cover these steps for now as they will be shared in great detail when version 18 will hit general availability.</p><p class="graf graf--p" name="26ae">Below is the architecture of the integration with WVD. It shows a hybrid deployment with on premises setup, however RAS can of course also be deployment entirely on Azure as well.</p><figure class="graf graf--figure" name="1602"><img class="graf-image" data-height="873" data-image-id="0*gYwz9rjhSlXzLPu3" data-width="1672" src="https://cdn-images-1.medium.com/max/933/0*gYwz9rjhSlXzLPu3" /></figure><p class="graf graf--p" name="c4b8">After the installation you will immediately notice the new Wizard in the admin console that guides you through the process of configuring WVD integration.</p><figure class="graf graf--figure" name="5169"><img class="graf-image" data-height="782" data-image-id="0*bK5dblX_0BCY9Dcf" data-width="1430" src="https://cdn-images-1.medium.com/max/933/0*bK5dblX_0BCY9Dcf" /></figure><p class="graf graf--p" name="481d">The first steps is to provide a location where the WVD agent and bootloader will be placed. This is because Parallels RAS will perform the installation of these components for you. Next, you provide the credentials that Parallels RAS will use to communicate with Azure, this result into a Provider object.</p><figure class="graf graf--figure" name="0e98"><img class="graf-image" data-height="683" data-image-id="0*yIBnPwL3PEkqEd_N" data-width="600" src="https://cdn-images-1.medium.com/max/933/0*yIBnPwL3PEkqEd_N" /></figure><p class="graf graf--p" name="c1fa">The next step in the wizard is creating the WVD Workspace, you’ll obviously see the same parameters compared to creating the Workspace directly in Azure.</p><figure class="graf graf--figure" name="8fcf"><img class="graf-image" data-height="698" data-image-id="0*MFAXBONxlwPQ7FD8" data-width="626" src="https://cdn-images-1.medium.com/max/933/0*MFAXBONxlwPQ7FD8" /></figure><p class="graf graf--p" name="7199">The next step is the creation of the WVD Host pool including the properties like load balancing etc. Notice that Parallels RAS already provides the option to configure a Power On for hosts on demand, which includes pooled configurations! This means the first user to connect to a host pool causes a WVD host to Power On in case all hosts are powered off due to auto scaling.</p><figure class="graf graf--figure" name="7ed8"><img class="graf-image" data-height="687" data-image-id="0*5e7oiiUjYKPUwa8r" data-width="1237" src="https://cdn-images-1.medium.com/max/933/0*5e7oiiUjYKPUwa8r" /></figure><p class="graf graf--p" name="33a0">Next we can define the Template to be used for the provisioning of WVD Hosts. We have 2 options here.</p><ul class="postList"><li class="graf graf--li" name="f7e5">Custom Host means we can point to any running VM in Azure that we want to use as a template source. Upon selecting a VM, Parallels will take a snapshot of that VM and use that to provision WVD hosts.</li><li class="graf graf--li" name="6992">Azure Gallery means we can select any existing Template Image from the Azure Marketplace or our own Shared Image Gallery (SIG).</li></ul><figure class="graf graf--figure" name="38c3"><img class="graf-image" data-height="754" data-image-id="0*MoFqOsraPBwkJlDU" data-width="1380" src="https://cdn-images-1.medium.com/max/933/0*MoFqOsraPBwkJlDU" /></figure><p class="graf graf--p" name="8a62">Note that if you already have existing hosts and do not need autoscaling, then you can also use Standalone (unmanaged) option instead.</p><p class="graf graf--p" name="1456">The next step allows us to configure the naming convention for WVD hosts, the number of VM’s, buffers and whether the newly deployed hosts should remain powered on after deployment or turned off for later use.</p><figure class="graf graf--figure" name="20ec"><img class="graf-image" data-height="690" data-image-id="0*hogUtJYBTv7heU3p" data-width="1217" src="https://cdn-images-1.medium.com/max/933/0*hogUtJYBTv7heU3p" /></figure><p class="graf graf--p" name="eceb">The next step is to provide sizing, and networking details. The wizard presents easy to use dropdown boxes with information taken directly from your Azure Subscription.</p><figure class="graf graf--figure" name="8933"><img class="graf-image" data-height="680" data-image-id="0*1NPu4IIqI-VRF8Hx" data-width="603" src="https://cdn-images-1.medium.com/max/933/0*1NPu4IIqI-VRF8Hx" /></figure><p class="graf graf--p" name="3895">And finally, the wizard allows us to configure image optimization settings that Parallels RAS provides out of he box, which is a great feature. It also allows us to either use Sysprep or Parallels RASprep to prepare the images.</p><figure class="graf graf--figure" name="98c6"><img class="graf-image" data-height="695" data-image-id="0*U7UB7asyL70F-Q7z" data-width="1233" src="https://cdn-images-1.medium.com/max/933/0*U7UB7asyL70F-Q7z" /></figure><p class="graf graf--p" name="a2dd">Upon completion, Parallels RAS will create our Workspace, Host pool and App group, prepare the Image in Azure and deploy x number of WVD hosts, join them to the domain and add them to the WVD host pool. Below is a quick summary of what the result looks like in the console.</p><figure class="graf graf--figure" name="51df"><img class="graf-image" data-height="601" data-image-id="0*UmovSH_Wcbswy1ns" data-width="1124" src="https://cdn-images-1.medium.com/max/933/0*UmovSH_Wcbswy1ns" /></figure><p class="graf graf--p" name="3854">Similar to how we are used to publish applications and desktops in the Parallels console, we can also do this for WVD resources. The great thing is that we can now also mix and match resources from RDS on premises and WVD using a single console and providing these to the user using a single Parallels RAS client, which means Hybrid scenarios!</p><figure class="graf graf--figure" name="ddd5"><img class="graf-image" data-height="530" data-image-id="0*gbbFfsIMG0dWwbFL" data-width="800" src="https://cdn-images-1.medium.com/max/933/0*gbbFfsIMG0dWwbFL" /></figure><p class="graf graf--p" name="ccd2">When opening the Parallels Client for Windows and logging on were a presented with the Desktop hosted in WVD.</p><figure class="graf graf--figure" name="7996"><img class="graf-image" data-height="530" data-image-id="0*6x2LzBoZPNfpUcS7" data-width="859" src="https://cdn-images-1.medium.com/max/933/0*6x2LzBoZPNfpUcS7" /></figure><p class="graf graf--p" name="0670">Upon connection we leverage the WVD Client (default option) which means we get all the capabilities of the WVD Windows client.</p><figure class="graf graf--figure" name="2028"><img class="graf-image" data-height="813" data-image-id="0*zTGTHRW0Ss3UcH67" data-width="997" src="https://cdn-images-1.medium.com/max/933/0*zTGTHRW0Ss3UcH67" /></figure><p class="graf graf--p" name="1d73">And this release of Parallels RAS also contains a fully integrated way of configuring FSLogix including all of the advanced settings, very cool!</p><figure class="graf graf--figure" name="b9e6"><img class="graf-image" data-height="616" data-image-id="0*MaN_OpqXOBn7snup" data-width="1202" src="https://cdn-images-1.medium.com/max/933/0*MaN_OpqXOBn7snup" /></figure><p class="graf graf--p" name="32b5">The RAS Console also provides great session details</p><figure class="graf graf--figure" name="ed23"><img class="graf-image" data-height="927" data-image-id="0*aSVeIOaens0bi9q2" data-width="1054" src="https://cdn-images-1.medium.com/max/933/0*aSVeIOaens0bi9q2" /></figure><p class="graf graf--p" name="d82b">And we can also interact with the session directly, including shadowing.</p><figure class="graf graf--figure" name="63d2"><img class="graf-image" data-height="576" data-image-id="0*-84TjSlm829RkcFL" data-width="893" src="https://cdn-images-1.medium.com/max/933/0*-84TjSlm829RkcFL" /></figure><figure class="graf graf--figure" name="3268"><img class="graf-image" data-height="757" data-image-id="0*i31mJYQQQy11_KPU" data-width="1275" src="https://cdn-images-1.medium.com/max/933/0*i31mJYQQQy11_KPU" /></figure><p class="graf graf--p" name="6467">And finally, below you see a Hybrid scenario with Applications and Desktops coming from an RDSH farm as well as a Desktop coming from WVD, all in a single client with a single identity!</p><figure class="graf graf--figure" name="1b09"><img class="graf-image" data-height="497" data-image-id="0*i99pBhMIl_m1Zgux" data-width="824" src="https://cdn-images-1.medium.com/max/933/0*i99pBhMIl_m1Zgux" /></figure><p class="graf graf--p" name="3241">This article focussed on the WVD integration of release of Parallels RAS, the team once again did an amazing job! As said before, they provide great additional features on top of native VWD without the penalty of over complexing things. Special thanks to Christian Aquilina, Director of Program Management at Parallels for providing me tech preview access and reviewing this article. Stay tuned for Parallels RAS 18 to become Generally available and try it out for your self!</p>Freek Bersonhttp://www.blogger.com/profile/12038184330882338623noreply@blogger.com0