CINXE.COM

AKS & HELM | Microsoft Community Hub

<!DOCTYPE html><html lang="en-US"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><link rel="icon" href="https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/themes/customTheme1/favicon-1730836283320.png?time=1730836286415&amp;image-dimensions=32x32" type="image/png"/><link rel="apple-touch-icon" href="https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/themes/customTheme1/favicon-1730836283320.png?time=1730836286415&amp;image-dimensions=180x180" type="image/png"/><link rel="manifest" href="/manifest.webmanifest/customTheme1/1732222159099"/><style>@font-face { font-family: "Segoe UI"; font-style: normal; font-weight: 400; font-display: swap; src: local("Segoe UI-normal-400"), url("https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/themes/customTheme1/SegoeUI-normal-400.woff2") format('woff2'); } @font-face { font-family: "Segoe UI"; font-style: normal; font-weight: 300; font-display: swap; src: local("Segoe UI-normal-300"), url("https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/themes/customTheme1/SegoeUI-normal-300.woff2") format('woff2'); } @font-face { font-family: "Segoe UI"; font-style: normal; font-weight: 600; font-display: swap; src: local("Segoe UI-normal-600"), url("https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/themes/customTheme1/SegoeUI-normal-600.woff2") format('woff2'); } @font-face { font-family: "Segoe UI"; font-style: normal; font-weight: 700; font-display: swap; src: local("Segoe UI-normal-700"), url("https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/themes/customTheme1/SegoeUI-normal-700.woff2") format('woff2'); } @font-face { font-family: "Segoe UI"; font-style: italic; font-weight: 400; font-display: swap; src: local("Segoe UI-italic-400"), url("https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/themes/customTheme1/SegoeUI-italic-400.woff2") format('woff2'); }</style><style type="text/css">:root { --lia-vars-loaded: flex;--lia-body-margin: 0;--lia-body-max-width: 100%;--lia-container-max-width: 1300px;--lia-one-column-narrow-width: 800px;--lia-grid-gutter-width-md: 30px;--lia-grid-gutter-width-xs: 10px;--lia-bs-black-h: 0;--lia-bs-black-s: 0%;--lia-bs-black-l: 0%;--lia-bs-black: hsl(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l));--lia-bs-white-h: 0;--lia-bs-white-s: 0%;--lia-bs-white-l: 100%;--lia-bs-white: hsl(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l));--lia-bs-gray-100-h: 0;--lia-bs-gray-100-s: 0%;--lia-bs-gray-100-l: 96.86274509803921%;--lia-bs-gray-100: hsl(var(--lia-bs-gray-100-h), var(--lia-bs-gray-100-s), var(--lia-bs-gray-100-l));--lia-bs-gray-200-h: 0;--lia-bs-gray-200-s: 0%;--lia-bs-gray-200-l: 96.86274509803921%;--lia-bs-gray-200: hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), var(--lia-bs-gray-200-l));--lia-bs-gray-300-h: 0;--lia-bs-gray-300-s: 0%;--lia-bs-gray-300-l: 90.98039215686275%;--lia-bs-gray-300: hsl(var(--lia-bs-gray-300-h), var(--lia-bs-gray-300-s), var(--lia-bs-gray-300-l));--lia-bs-gray-400-h: 0;--lia-bs-gray-400-s: 0%;--lia-bs-gray-400-l: 85.09803921568627%;--lia-bs-gray-400: hsl(var(--lia-bs-gray-400-h), var(--lia-bs-gray-400-s), var(--lia-bs-gray-400-l));--lia-bs-gray-500-h: 0;--lia-bs-gray-500-s: 0%;--lia-bs-gray-500-l: 80%;--lia-bs-gray-500: hsl(var(--lia-bs-gray-500-h), var(--lia-bs-gray-500-s), var(--lia-bs-gray-500-l));--lia-bs-gray-600-h: 0;--lia-bs-gray-600-s: 0%;--lia-bs-gray-600-l: 44.31372549019608%;--lia-bs-gray-600: hsl(var(--lia-bs-gray-600-h), var(--lia-bs-gray-600-s), var(--lia-bs-gray-600-l));--lia-bs-gray-700-h: 0;--lia-bs-gray-700-s: 0%;--lia-bs-gray-700-l: 43.92156862745098%;--lia-bs-gray-700: hsl(var(--lia-bs-gray-700-h), var(--lia-bs-gray-700-s), var(--lia-bs-gray-700-l));--lia-bs-gray-800-h: 0;--lia-bs-gray-800-s: 0%;--lia-bs-gray-800-l: 32.94117647058823%;--lia-bs-gray-800: hsl(var(--lia-bs-gray-800-h), var(--lia-bs-gray-800-s), var(--lia-bs-gray-800-l));--lia-bs-gray-900-h: 0;--lia-bs-gray-900-s: 0%;--lia-bs-gray-900-l: 20%;--lia-bs-gray-900: hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l));--lia-bs-dark-h: 0;--lia-bs-dark-s: 0%;--lia-bs-dark-l: 32.94117647058823%;--lia-bs-dark: hsl(var(--lia-bs-dark-h), var(--lia-bs-dark-s), var(--lia-bs-dark-l));--lia-bs-light-h: 0;--lia-bs-light-s: 0%;--lia-bs-light-l: 96.86274509803921%;--lia-bs-light: hsl(var(--lia-bs-light-h), var(--lia-bs-light-s), var(--lia-bs-light-l));--lia-bs-primary-h: 210.2830188679245;--lia-bs-primary-s: 100%;--lia-bs-primary-l: 41.568627450980394%;--lia-bs-primary: hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l));--lia-bs-secondary-h: 0;--lia-bs-secondary-s: 0%;--lia-bs-secondary-l: 20%;--lia-bs-secondary: hsl(var(--lia-bs-secondary-h), var(--lia-bs-secondary-s), var(--lia-bs-secondary-l));--lia-bs-body-bg-h: 0;--lia-bs-body-bg-s: 0%;--lia-bs-body-bg-l: 100%;--lia-bs-body-bg: hsl(var(--lia-bs-body-bg-h), var(--lia-bs-body-bg-s), var(--lia-bs-body-bg-l));--lia-bs-body-color-h: 0;--lia-bs-body-color-s: 0%;--lia-bs-body-color-l: 20%;--lia-bs-body-color: hsl(var(--lia-bs-body-color-h), var(--lia-bs-body-color-s), var(--lia-bs-body-color-l));--lia-bs-info-h: 206.66666666666674;--lia-bs-info-s: 73.63636363636363%;--lia-bs-info-l: 56.86274509803921%;--lia-bs-info: hsl(var(--lia-bs-info-h), var(--lia-bs-info-s), var(--lia-bs-info-l));--lia-bs-success-h: 169.5454545454545;--lia-bs-success-s: 53.2258064516129%;--lia-bs-success-l: 51.37254901960784%;--lia-bs-success: hsl(var(--lia-bs-success-h), var(--lia-bs-success-s), var(--lia-bs-success-l));--lia-bs-warning-h: 43.04347826086956;--lia-bs-warning-s: 96.8421052631579%;--lia-bs-warning-l: 62.745098039215684%;--lia-bs-warning: hsl(var(--lia-bs-warning-h), var(--lia-bs-warning-s), var(--lia-bs-warning-l));--lia-bs-danger-h: 9.316770186335418;--lia-bs-danger-s: 74.88372093023257%;--lia-bs-danger-l: 42.15686274509804%;--lia-bs-danger: hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), var(--lia-bs-danger-l));--lia-alert-system-color-h: 24;--lia-alert-system-color-s: 100%;--lia-alert-system-color-l: 50%;--lia-alert-system-color: hsl(var(--lia-alert-system-color-h), var(--lia-alert-system-color-s), var(--lia-alert-system-color-l));--lia-bs-text-muted-h: 0;--lia-bs-text-muted-s: 0%;--lia-bs-text-muted-l: 43.92156862745098%;--lia-bs-text-muted: hsl(var(--lia-bs-text-muted-h), var(--lia-bs-text-muted-s), var(--lia-bs-text-muted-l));--lia-highlight-color-h: 57.804878048780495;--lia-highlight-color-s: 100%;--lia-highlight-color-l: 83.92156862745098%;--lia-highlight-color: hsl(var(--lia-highlight-color-h), var(--lia-highlight-color-s), var(--lia-highlight-color-l));--lia-outline-color: var(--lia-bs-primary);--lia-bs-font-size-base: 16px;--lia-bs-font-size-sm: 14px;--lia-font-size-xxs: 11px;--lia-font-size-xs: 12px;--lia-bs-font-size-lg: 20px;--lia-bs-small-font-size: 14px;--lia-font-size-xl: 24px;--lia-bs-font-family-base: Segoe UI, system-ui;--lia-bs-font-weight-base: 400;--lia-bs-font-weight-light: 300;--lia-bs-font-weight-normal: 400;--lia-font-weight-md: 500;--lia-bs-font-weight-bold: 700;--lia-font-style-base: normal;--lia-bs-line-height-base: 1.5;--lia-bs-h1-font-size: 34px;--lia-bs-h2-font-size: 32px;--lia-bs-h3-font-size: 28px;--lia-bs-h4-font-size: 24px;--lia-bs-h5-font-size: 20px;--lia-bs-h6-font-size: 16px;--lia-bs-headings-font-family: Segoe UI, system-ui;--lia-bs-headings-line-height: 1.3;--lia-bs-headings-font-weight: 400;--lia-headings-font-style: normal;--lia-subheader-font-size: 11px;--lia-subheader-font-weight: 500;--lia-bs-headings-color: var(--lia-bs-body-color);--lia-h1-letter-spacing: normal;--lia-h2-letter-spacing: normal;--lia-h3-letter-spacing: normal;--lia-h4-letter-spacing: normal;--lia-h5-letter-spacing: normal;--lia-h6-letter-spacing: normal;--lia-letter-spacing-subheading: 2px;--lia-letter-spacing-sm: normal;--lia-letter-spacing-xs: normal;--lia-h1-font-weight: var(--lia-bs-headings-font-weight);--lia-h2-font-weight: var(--lia-bs-headings-font-weight);--lia-h3-font-weight: var(--lia-bs-headings-font-weight);--lia-h4-font-weight: var(--lia-bs-headings-font-weight);--lia-h5-font-weight: var(--lia-bs-headings-font-weight);--lia-h6-font-weight: var(--lia-bs-headings-font-weight);--lia-btn-font-style: normal;--lia-bs-btn-font-weight: 700;--lia-btn-text-transform: none;--lia-bs-btn-disabled-opacity: 0.5;--lia-bs-btn-border-radius-sm: 3px;--lia-bs-btn-border-radius: 3px;--lia-bs-btn-border-radius-lg: 5px;--lia-bs-btn-padding-x: 12px;--lia-bs-btn-padding-x-lg: 16px;--lia-btn-padding-x-hero: 60px;--lia-bs-btn-padding-y: 5px;--lia-bs-btn-padding-y-lg: 7px;--lia-btn-padding-y-hero: var(--lia-bs-btn-padding-y-lg);--lia-btn-primary-text-color: var(--lia-bs-white);--lia-btn-primary-text-hover-color: var(--lia-bs-white);--lia-btn-primary-text-active-color: var(--lia-bs-white);--lia-btn-primary-bg-color: var(--lia-bs-primary);--lia-btn-primary-bg-hover-color: hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.85));--lia-btn-primary-bg-active-color: hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.7));--lia-btn-primary-border: 1px solid transparent;--lia-btn-primary-border-hover: 1px solid transparent;--lia-btn-primary-border-active: 1px solid transparent;--lia-btn-primary-border-focus: 1px solid var(--lia-bs-white);--lia-btn-primary-box-shadow-focus: 0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2);--lia-btn-secondary-text-color: var(--lia-bs-gray-900);--lia-btn-secondary-text-hover-color: hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.95));--lia-btn-secondary-text-active-color: hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.9));--lia-btn-secondary-bg-color: var(--lia-bs-gray-200);--lia-btn-secondary-bg-hover-color: hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.96));--lia-btn-secondary-bg-active-color: hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.92));--lia-btn-secondary-border: 1px solid transparent;--lia-btn-secondary-border-hover: 1px solid transparent;--lia-btn-secondary-border-active: 1px solid transparent;--lia-btn-secondary-border-focus: 1px solid transparent;--lia-btn-secondary-box-shadow-focus: 0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2);--lia-btn-tertiary-text-color: var(--lia-bs-gray-900);--lia-btn-tertiary-text-hover-color: hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.95));--lia-btn-tertiary-text-active-color: hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.9));--lia-btn-tertiary-bg-color: transparent;--lia-btn-tertiary-bg-hover-color: transparent;--lia-btn-tertiary-bg-active-color: hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.04);--lia-btn-tertiary-border: 1px solid transparent;--lia-btn-tertiary-border-hover: 1px solid hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08);--lia-btn-tertiary-border-active: 1px solid transparent;--lia-btn-tertiary-border-focus: 1px solid transparent;--lia-btn-tertiary-box-shadow-focus: 0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2);--lia-btn-destructive-text-color: var(--lia-bs-danger);--lia-btn-destructive-text-hover-color: hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.95));--lia-btn-destructive-text-active-color: hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.9));--lia-btn-destructive-bg-color: var(--lia-bs-gray-200);--lia-btn-destructive-bg-hover-color: hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.96));--lia-btn-destructive-bg-active-color: hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.92));--lia-btn-destructive-border: 1px solid transparent;--lia-btn-destructive-border-hover: 1px solid transparent;--lia-btn-destructive-border-active: 1px solid transparent;--lia-btn-destructive-border-focus: 1px solid transparent;--lia-btn-destructive-box-shadow-focus: 0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2);--lia-bs-border-color: hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08);--lia-bs-border-radius-sm: 3px;--lia-bs-border-radius: 5px;--lia-bs-border-radius-lg: 9px;--lia-border-radius-50: 100vw;--lia-content-item-border: none;--lia-box-shadow-xs: 0 0 0 1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.08), 0 3px 0 -1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.16);--lia-bs-box-shadow-sm: 0 2px 4px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.12);--lia-bs-box-shadow: 0 5px 15px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.3);--lia-bs-box-shadow-lg: 0 10px 30px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.3);--lia-bs-link-color: var(--lia-bs-primary);--lia-bs-link-hover-color: hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) - 10%));--lia-bs-link-decoration: none;--lia-bs-link-hover-decoration: underline;--lia-timing-fast: 150ms;--lia-timing-normal: 250ms;--lia-timing-slow: 500ms;--lia-timing-slowest: 750ms;--lia-timing-function: cubic-bezier(0.07, 0.91, 0.51, 1);--lia-avatar-border-radius: 50%;--lia-default-message-font-style: NORMAL;--lia-default-message-font-weight: 400;--lia-default-message-link-color: var(--lia-bs-link-color);--lia-default-message-link-decoration: none;--lia-default-message-link-font-weight: 400;--lia-default-message-link-font-style: NORMAL;--lia-forum-color-h: 207.03703703703695;--lia-forum-color-s: 73.63636363636363%;--lia-forum-color-l: 56.86274509803921%;--lia-forum-color: hsl(var(--lia-forum-color-h), var(--lia-forum-color-s), var(--lia-forum-color-l));--lia-forum-font-family: var(--lia-bs-font-family-base);--lia-forum-font-weight: var(--lia-default-message-font-weight);--lia-forum-line-height: var(--lia-bs-line-height-base);--lia-forum-font-style: var(--lia-default-message-font-style);--lia-forum-message-link-color: var(--lia-default-message-link-color);--lia-forum-message-link-decoration: var(--lia-default-message-link-decoration);--lia-forum-message-link-font-style: var(--lia-default-message-link-font-style);--lia-forum-message-link-font-weight: var(--lia-default-message-link-font-weight);--lia-forum-solved-color-h: 161.94690265486724;--lia-forum-solved-color-s: 73.85620915032679%;--lia-forum-solved-color-l: 30.000000000000004%;--lia-forum-solved-color: hsl(var(--lia-forum-solved-color-h), var(--lia-forum-solved-color-s), var(--lia-forum-solved-color-l));--lia-blog-color-h: 170.126582278481;--lia-blog-color-s: 73.83177570093459%;--lia-blog-color-l: 41.96078431372548%;--lia-blog-color: hsl(var(--lia-blog-color-h), var(--lia-blog-color-s), var(--lia-blog-color-l));--lia-blog-font-family: var(--lia-bs-font-family-base);--lia-blog-font-weight: var(--lia-default-message-font-weight);--lia-blog-line-height: 1.75;--lia-blog-font-style: var(--lia-default-message-font-style);--lia-blog-message-link-color: var(--lia-default-message-link-color);--lia-blog-message-link-decoration: var(--lia-default-message-link-decoration);--lia-blog-message-link-font-style: var(--lia-default-message-link-font-style);--lia-blog-message-link-font-weight: var(--lia-default-message-link-font-weight);--lia-tkb-color-h: 212.6470588235294;--lia-tkb-color-s: 30.909090909090907%;--lia-tkb-color-l: 43.13725490196079%;--lia-tkb-color: hsl(var(--lia-tkb-color-h), var(--lia-tkb-color-s), var(--lia-tkb-color-l));--lia-tkb-font-family: var(--lia-bs-font-family-base);--lia-tkb-font-weight: var(--lia-default-message-font-weight);--lia-tkb-line-height: 1.75;--lia-tkb-font-style: var(--lia-default-message-font-style);--lia-tkb-message-link-color: var(--lia-default-message-link-color);--lia-tkb-message-link-decoration: var(--lia-default-message-link-decoration);--lia-tkb-message-link-font-style: var(--lia-default-message-link-font-style);--lia-tkb-message-link-font-weight: var(--lia-default-message-link-font-weight);--lia-qanda-color-h: 207.03703703703695;--lia-qanda-color-s: 73.63636363636363%;--lia-qanda-color-l: 56.86274509803921%;--lia-qanda-color: hsl(var(--lia-qanda-color-h), var(--lia-qanda-color-s), var(--lia-qanda-color-l));--lia-qanda-font-family: var(--lia-bs-font-family-base);--lia-qanda-font-weight: var(--lia-default-message-font-weight);--lia-qanda-line-height: var(--lia-bs-line-height-base);--lia-qanda-font-style: var(--lia-default-message-link-font-style);--lia-qanda-message-link-color: var(--lia-default-message-link-color);--lia-qanda-message-link-decoration: var(--lia-default-message-link-decoration);--lia-qanda-message-link-font-style: var(--lia-default-message-link-font-style);--lia-qanda-message-link-font-weight: var(--lia-default-message-link-font-weight);--lia-qanda-solved-color: #3FA023;--lia-idea-color-h: 30.117647058823536;--lia-idea-color-s: 100%;--lia-idea-color-l: 50%;--lia-idea-color: hsl(var(--lia-idea-color-h), var(--lia-idea-color-s), var(--lia-idea-color-l));--lia-idea-font-family: var(--lia-bs-font-family-base);--lia-idea-font-weight: var(--lia-default-message-font-weight);--lia-idea-line-height: var(--lia-bs-line-height-base);--lia-idea-font-style: var(--lia-default-message-font-style);--lia-idea-message-link-color: var(--lia-default-message-link-color);--lia-idea-message-link-decoration: var(--lia-default-message-link-decoration);--lia-idea-message-link-font-style: var(--lia-default-message-link-font-style);--lia-idea-message-link-font-weight: var(--lia-default-message-link-font-weight);--lia-contest-color-h: 42.95081967213116;--lia-contest-color-s: 96.82539682539684%;--lia-contest-color-l: 62.94117647058823%;--lia-contest-color: hsl(var(--lia-contest-color-h), var(--lia-contest-color-s), var(--lia-contest-color-l));--lia-contest-font-family: var(--lia-bs-font-family-base);--lia-contest-font-weight: var(--lia-default-message-font-weight);--lia-contest-line-height: var(--lia-bs-line-height-base);--lia-contest-font-style: var(--lia-default-message-link-font-style);--lia-contest-message-link-color: var(--lia-default-message-link-color);--lia-contest-message-link-decoration: var(--lia-default-message-link-decoration);--lia-contest-message-link-font-style: ITALIC;--lia-contest-message-link-font-weight: var(--lia-default-message-link-font-weight);--lia-occasion-color-h: 9.101123595505612;--lia-occasion-color-s: 74.16666666666666%;--lia-occasion-color-l: 47.05882352941176%;--lia-occasion-color: hsl(var(--lia-occasion-color-h), var(--lia-occasion-color-s), var(--lia-occasion-color-l));--lia-occasion-font-family: var(--lia-bs-font-family-base);--lia-occasion-font-weight: var(--lia-default-message-font-weight);--lia-occasion-line-height: var(--lia-bs-line-height-base);--lia-occasion-font-style: var(--lia-default-message-font-style);--lia-occasion-message-link-color: var(--lia-default-message-link-color);--lia-occasion-message-link-decoration: var(--lia-default-message-link-decoration);--lia-occasion-message-link-font-style: var(--lia-default-message-link-font-style);--lia-occasion-message-link-font-weight: var(--lia-default-message-link-font-weight);--lia-grouphub-color-h: 0;--lia-grouphub-color-s: 0%;--lia-grouphub-color-l: 20%;--lia-grouphub-color: hsl(var(--lia-grouphub-color-h), var(--lia-grouphub-color-s), var(--lia-grouphub-color-l));--lia-category-color-h: 0;--lia-category-color-s: 0%;--lia-category-color-l: 58.03921568627452%;--lia-category-color: hsl(var(--lia-category-color-h), var(--lia-category-color-s), var(--lia-category-color-l));--lia-community-color-h: 0;--lia-community-color-s: 0%;--lia-community-color-l: 100%;--lia-community-color: hsl(var(--lia-community-color-h), var(--lia-community-color-s), var(--lia-community-color-l));--lia-product-color-h: 0;--lia-product-color-s: 0%;--lia-product-color-l: 58.03921568627452%;--lia-product-color: hsl(var(--lia-product-color-h), var(--lia-product-color-s), var(--lia-product-color-l));--lia-panel-bg-color: var(--lia-bs-white);--lia-panel-border-radius: var(--lia-bs-border-radius);--lia-panel-border-color: var(--lia-bs-border-color);--lia-panel-box-shadow: none;--lia-card-bg-color: var(--lia-panel-bg-color);--lia-card-border-radius: var(--lia-panel-border-radius);--lia-card-box-shadow: var(--lia-box-shadow-xs);--lia-bs-modal-content-color: var(--lia-bs-body-color);--lia-bs-modal-content-bg: var(--lia-bs-white);--lia-bs-modal-backdrop-bg: var(--lia-bs-black);--lia-bs-modal-sm: 440px;--lia-bs-modal-md: 760px;--lia-bs-modal-lg: 1080px;--lia-bs-modal-backdrop-opacity: 0.3;--lia-bs-modal-content-box-shadow-xs: var(--lia-bs-box-shadow-sm);--lia-bs-modal-content-box-shadow-xs-up: var(--lia-bs-box-shadow);--lia-bs-modal-header-font-weight: 700;--lia-icon-size-10: 10px;--lia-icon-size-12: 12px;--lia-icon-size-14: 14px;--lia-icon-size-16: 16px;--lia-icon-size-20: 20px;--lia-icon-size-24: 24px;--lia-icon-size-30: 30px;--lia-icon-size-40: 40px;--lia-icon-size-50: 50px;--lia-icon-size-60: 60px;--lia-icon-size-80: 80px;--lia-icon-size-120: 120px;--lia-icon-size-160: 160px;--lia-bs-input-border-color: var(--lia-bs-gray-600);--lia-bs-input-disabled-color: var(--lia-bs-gray-600);--lia-bs-input-focus-border-color: var(--lia-bs-primary);--lia-bs-label-margin-bottom: 10px;--lia-bs-input-btn-font-size: var(--lia-bs-font-size-sm);--lia-bs-input-focus-box-shadow: 0 0 0 3px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2);--lia-check-label-margin-bottom: 2px;--lia-checkbox-border-radius: 3px;--lia-bs-input-border-radius-sm: var(--lia-bs-border-radius-sm);--lia-bs-input-border-radius: var(--lia-bs-border-radius);--lia-bs-input-border-radius-lg: var(--lia-bs-border-radius-lg);--lia-bs-form-text-margin-top: 4px;--lia-textarea-border-radius: var(--lia-bs-border-radius);--lia-input-active-fill-color: var(--lia-bs-primary);--lia-bs-popover-arrow-height: 8px;--lia-bs-popover-arrow-width: 16px;--lia-bs-popover-max-width: 300px;--lia-bs-popover-min-width: 100px;--lia-bs-popover-header-bg: var(--lia-bs-white);--lia-bs-popover-border-color: var(--lia-bs-border-color);--lia-bs-popover-border-radius: var(--lia-bs-border-radius);--lia-bs-popover-box-shadow: 0 0.5rem 1rem hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.15);--lia-bs-dropdown-font-size: var(--lia-bs-font-size-sm);--lia-bs-dropdown-border-color: var(--lia-bs-border-color);--lia-bs-dropdown-border-radius: var(--lia-bs-border-radius-sm);--lia-bs-dropdown-divider-bg: var(--lia-bs-gray-300);--lia-bs-dropdown-item-padding-y: 5px;--lia-bs-dropdown-item-padding-x: 20px;--lia-bs-dropdown-header-color: var(--lia-bs-gray-700);--lia-bs-list-group-item-padding-y: 15px;--lia-bs-list-group-item-padding-x: 15px;--lia-bs-list-group-border-color: var(--lia-bs-gray-300);--lia-list-li-mb-sm: 5px;--lia-list-li-mb-md: 10px;--lia-list-li-mb-lg: 15px;--lia-list-li-mb-xl: 20px;--lia-list-li-mb-xxl: 25px;--lia-img-preview-content-bg-color: var(--lia-bs-gray-900);--lia-img-preview-title-color: var(--lia-bs-white);--lia-img-preview-control-color: var(--lia-bs-white);--lia-img-preview-control-bg-color: var(--lia-bs-gray-800);--lia-load-dot-dark-color: hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.2);--lia-load-dot-light-color: hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.5);--lia-load-bar-dark-color: hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.06);--lia-load-bar-light-color: hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.4);--lia-load-text-color: var(--lia-bs-link-color);--lia-load-text-font-weight: var(--lia-font-weight-md);--lia-load-text-font-size: var(--lia-bs-font-size-sm);--lia-divider-size: 3px;--lia-divider-ml: 4px;--lia-divider-mr: 4px;--lia-divider-border-radius: 50%;--lia-divider-bg-color: var(--lia-bs-gray-600);--lia-divider-bg-color-active: var(--lia-bs-gray-600);--lia-chip-max-width: 300px;--lia-chip-height: 30px;--lia-yiq-light-h: 0;--lia-yiq-light-s: 0%;--lia-yiq-light-l: 100%;--lia-yiq-light: hsl(var(--lia-yiq-light-h), var(--lia-yiq-light-s), var(--lia-yiq-light-l));--lia-yiq-dark-h: 0;--lia-yiq-dark-s: 0%;--lia-yiq-dark-l: 0%;--lia-yiq-dark: hsl(var(--lia-yiq-dark-h), var(--lia-yiq-dark-s), var(--lia-yiq-dark-l));--lia-rte-bg-color: var(--lia-bs-white);--lia-rte-border-radius: var(--lia-panel-border-radius);--lia-rte-box-shadow: var(--lia-panel-box-shadow);--lia-rte-custom-color-1: #bfedd2;--lia-rte-custom-color-2: #fbeeb8;--lia-rte-custom-color-3: #f8cac6;--lia-rte-custom-color-4: #eccafa;--lia-rte-custom-color-5: #c2e0f4;--lia-rte-custom-color-6: #2dc26b;--lia-rte-custom-color-7: #f1c40f;--lia-rte-custom-color-8: #e03e2d;--lia-rte-custom-color-9: #b96ad9;--lia-rte-custom-color-10: #3598db;--lia-rte-custom-color-11: #169179;--lia-rte-custom-color-12: #e67e23;--lia-rte-custom-color-13: #ba372a;--lia-rte-custom-color-14: #843fa1;--lia-rte-custom-color-15: #236fa1;--lia-rte-custom-color-16: #ecf0f1;--lia-rte-custom-color-17: #ced4d9;--lia-rte-custom-color-18: #95a5a6;--lia-rte-custom-color-19: #7e8c8d;--lia-rte-custom-color-20: #34495e;--lia-rte-custom-color-21: #000000;--lia-rte-custom-color-22: #ffffff;--lia-rte-default-message-header-mt: 40px;--lia-rte-default-message-header-mb: 20px;--lia-rte-default-message-item-mt: 0;--lia-rte-default-message-item-mb: 10px;--lia-rte-diff-added-color: hsla(170, 53%, 51%, 0.4);--lia-rte-diff-removed-color: hsla(9, 74%, 47%, 0.4);--lia-rte-diff-none-color: hsla(0, 0%, 80%, 0.4);--lia-rte-diff-changed-color: hsla(43, 97%, 63%, 0.4);--lia-rte-special-message-header-mt: 40px;--lia-rte-special-message-header-mb: 20px;--lia-rte-special-message-item-mt: 0;--lia-rte-special-message-item-mb: 10px;--lia-prism-color: #000000;--lia-prism-bg-color: #f5f2f0;--lia-prism-font-family: var(--font-family-monospace);--lia-prism-font-size: var(--lia-bs-font-size-base);--lia-prism-font-weight-bold: var(--lia-bs-font-weight-bold);--lia-prism-font-style-italic: italic;--lia-prism-tab-size: 2;--lia-prism-highlight-color: #b3d4fc;--lia-prism-comment-color: #62707e;--lia-prism-punctuation-color: #6f6f6f;--lia-prism-namespace-opacity: 0.7;--lia-prism-prop-color: #990055;--lia-prism-selector-color: #517a00;--lia-prism-operator-color: #906736;--lia-prism-operator-bg-color: hsla(0, 0%, 100%, 0.5);--lia-prism-keyword-color: #0076a9;--lia-prism-function-color: #d3284b;--lia-prism-variable-color: #c14700;--lia-tag-bg-color: var(--lia-bs-gray-200);--lia-tag-bg-hover-color: var(--lia-bs-gray-400);--lia-tag-border-radius: var(--lia-bs-border-radius-sm);--lia-tag-color: var(--lia-bs-body-color);--lia-tag-hover-color: var(--lia-bs-body-color);--lia-tag-font-weight: var(--lia-font-weight-md);--lia-tag-font-size: var(--lia-font-size-xxs);--lia-tag-text-transform: uppercase;--lia-tag-letter-spacing: 0.5px;--lia-bs-toast-border-radius: var(--lia-bs-border-radius);--lia-bs-toast-padding-x: 12px;--lia-emoji-skin-tone-default: #ffcd43;--lia-emoji-skin-tone-light: #fae3c5;--lia-emoji-skin-tone-medium-light: #e2cfa5;--lia-emoji-skin-tone-medium: #daa478;--lia-emoji-skin-tone-medium-dark: #a78058;--lia-emoji-skin-tone-dark: #5e4d43;--lia-checkmark-input-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/checkmark-input.svg#checkmark-input);--lia-chevron-down-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/chevron-down.svg#chevron-down);--lia-close-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/close.svg#close);--lia-edit-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/edit.svg#edit);--lia-select-arrow-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/select-arrow.svg#select-arrow);--lia-video-play-active-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/video-play-active.svg#video-play-active);--lia-video-play-disabled-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/video-play-disabled.svg#video-play-disabled);--lia-user-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/user.svg#user);--lia-user-mention-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/mention.svg#mention);--lia-content-blog-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/content-blog.svg#content-blog);--lia-content-knowledge-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/content-knowledge.svg#content-knowledge);--lia-content-category-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/content-category.svg#content-category);--lia-content-contest-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/content-contest.svg#content-contest);--lia-content-discussion-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/content-discussion.svg#content-discussion);--lia-content-discussion-question-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/content-discussion-question.svg#content-discussion-question);--lia-content-occasion-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/content-occasion.svg#content-occasion);--lia-content-group-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/content-group.svg#content-group);--lia-content-idea-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/content-idea.svg#content-idea);--lia-external-link-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/external-link.svg#external-link);--lia-anchor-icon: url(/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/anchor.svg#anchor);--lia-primary-dark-h: var(--lia-bs-primary-h);--lia-primary-dark-s: var(--lia-bs-primary-s);--lia-primary-dark-l: 36%;--lia-primary-dark: hsl(var(--lia-primary-dark-h), var(--lia-primary-dark-s), var(--lia-primary-dark-l));--lia-primary-light-h: var(--lia-bs-primary-h);--lia-primary-light-s: var(--lia-bs-primary-s);--lia-primary-light-l: 74%;--lia-primary-light: hsl(var(--lia-primary-light-h), var(--lia-primary-light-s), var(--lia-primary-light-l));--lia-primary-lighter-h: var(--lia-bs-primary-h);--lia-primary-lighter-s: var(--lia-bs-primary-s);--lia-primary-lighter-l: 89%;--lia-primary-lighter: hsl(var(--lia-primary-lighter-h), var(--lia-primary-lighter-s), var(--lia-primary-lighter-l));--lia-primary-lightest-h: var(--lia-bs-primary-h);--lia-primary-lightest-s: var(--lia-bs-primary-s);--lia-primary-lightest-l: 95%;--lia-primary-lightest: hsl(var(--lia-primary-lightest-h), var(--lia-primary-lightest-s), var(--lia-primary-lightest-l));--lia-info-dark-h: var(--lia-bs-info-h);--lia-info-dark-s: var(--lia-bs-info-s);--lia-info-dark-l: 39%;--lia-info-dark: hsl(var(--lia-info-dark-h), var(--lia-info-dark-s), var(--lia-info-dark-l));--lia-info-light-h: var(--lia-bs-info-h);--lia-info-light-s: var(--lia-bs-info-s);--lia-info-light-l: 72%;--lia-info-light: hsl(var(--lia-info-light-h), var(--lia-info-light-s), var(--lia-info-light-l));--lia-info-lighter-h: var(--lia-bs-info-h);--lia-info-lighter-s: var(--lia-bs-info-s);--lia-info-lighter-l: 85%;--lia-info-lighter: hsl(var(--lia-info-lighter-h), var(--lia-info-lighter-s), var(--lia-info-lighter-l));--lia-info-lightest-h: var(--lia-bs-info-h);--lia-info-lightest-s: var(--lia-bs-info-s);--lia-info-lightest-l: 93%;--lia-info-lightest: hsl(var(--lia-info-lightest-h), var(--lia-info-lightest-s), var(--lia-info-lightest-l));--lia-success-dark-h: var(--lia-bs-success-h);--lia-success-dark-s: var(--lia-bs-success-s);--lia-success-dark-l: 24%;--lia-success-dark: hsl(var(--lia-success-dark-h), var(--lia-success-dark-s), var(--lia-success-dark-l));--lia-success-light-h: var(--lia-bs-success-h);--lia-success-light-s: var(--lia-bs-success-s);--lia-success-light-l: 62%;--lia-success-light: hsl(var(--lia-success-light-h), var(--lia-success-light-s), var(--lia-success-light-l));--lia-success-lighter-h: var(--lia-bs-success-h);--lia-success-lighter-s: var(--lia-bs-success-s);--lia-success-lighter-l: 80%;--lia-success-lighter: hsl(var(--lia-success-lighter-h), var(--lia-success-lighter-s), var(--lia-success-lighter-l));--lia-success-lightest-h: var(--lia-bs-success-h);--lia-success-lightest-s: var(--lia-bs-success-s);--lia-success-lightest-l: 91%;--lia-success-lightest: hsl(var(--lia-success-lightest-h), var(--lia-success-lightest-s), var(--lia-success-lightest-l));--lia-warning-dark-h: var(--lia-bs-warning-h);--lia-warning-dark-s: var(--lia-bs-warning-s);--lia-warning-dark-l: 39%;--lia-warning-dark: hsl(var(--lia-warning-dark-h), var(--lia-warning-dark-s), var(--lia-warning-dark-l));--lia-warning-light-h: var(--lia-bs-warning-h);--lia-warning-light-s: var(--lia-bs-warning-s);--lia-warning-light-l: 68%;--lia-warning-light: hsl(var(--lia-warning-light-h), var(--lia-warning-light-s), var(--lia-warning-light-l));--lia-warning-lighter-h: var(--lia-bs-warning-h);--lia-warning-lighter-s: var(--lia-bs-warning-s);--lia-warning-lighter-l: 84%;--lia-warning-lighter: hsl(var(--lia-warning-lighter-h), var(--lia-warning-lighter-s), var(--lia-warning-lighter-l));--lia-warning-lightest-h: var(--lia-bs-warning-h);--lia-warning-lightest-s: var(--lia-bs-warning-s);--lia-warning-lightest-l: 93%;--lia-warning-lightest: hsl(var(--lia-warning-lightest-h), var(--lia-warning-lightest-s), var(--lia-warning-lightest-l));--lia-danger-dark-h: var(--lia-bs-danger-h);--lia-danger-dark-s: var(--lia-bs-danger-s);--lia-danger-dark-l: 41%;--lia-danger-dark: hsl(var(--lia-danger-dark-h), var(--lia-danger-dark-s), var(--lia-danger-dark-l));--lia-danger-light-h: var(--lia-bs-danger-h);--lia-danger-light-s: var(--lia-bs-danger-s);--lia-danger-light-l: 72%;--lia-danger-light: hsl(var(--lia-danger-light-h), var(--lia-danger-light-s), var(--lia-danger-light-l));--lia-danger-lighter-h: var(--lia-bs-danger-h);--lia-danger-lighter-s: var(--lia-bs-danger-s);--lia-danger-lighter-l: 89%;--lia-danger-lighter: hsl(var(--lia-danger-lighter-h), var(--lia-danger-lighter-s), var(--lia-danger-lighter-l));--lia-danger-lightest-h: var(--lia-bs-danger-h);--lia-danger-lightest-s: var(--lia-bs-danger-s);--lia-danger-lightest-l: 95%;--lia-danger-lightest: hsl(var(--lia-danger-lightest-h), var(--lia-danger-lightest-s), var(--lia-danger-lightest-l)); }</style><title>AKS &amp; HELM | Microsoft Community Hub</title><meta name="robots" content="index,follow"/><meta name="description" content=" &amp;nbsp; O Helm é um gerenciador de pacotes para Kubernetes que ajuda a instalar, gerenciar e atualizar aplicativos Kubernetes. O Helm usa pacotes chamados..."/><meta name="twitter:card" content="summary_large_image"/><meta property="og:title" content="AKS &amp; HELM | Microsoft Community Hub"/><meta property="og:description" content=" &amp;nbsp; O Helm é um gerenciador de pacotes para Kubernetes que ajuda a instalar, gerenciar e atualizar aplicativos Kubernetes. O Helm usa pacotes chamados..."/><meta property="og:url" content="https://techcommunity.microsoft.com/blog/desenvolvedoresbr/aks--helm/3980279"/><meta property="og:type" content="article"/><meta property="article:modified_time" content="2023-11-13T07:05:55.985-08:00"/><meta property="og:image" content="https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTgwMjc5LTUyNDc5NmkwQUM1NEUxRDQxMDdBMzE3?revision=2"/><meta property="og:image:width" content="361"/><meta property="og:image:height" content="257"/><meta property="og:site_name" content="TECHCOMMUNITY.MICROSOFT.COM"/><link rel="canonical" href="https://techcommunity.microsoft.com/blog/desenvolvedoresbr/aks--helm/3980279"/><style type="text/css">:root:root { --lia-nav-bg-color: var(--lia-bs-white); --lia-nav-bg-opacity: 0.8; --lia-nav-pt: 15px; --lia-nav-pb: 15px; --lia-nav-border-bottom: 1px solid var(--lia-bs-border-color); --lia-nav-box-shadow: var(--lia-bs-box-shadow-sm); --lia-nav-brand-mr: 30px; --lia-nav-brand-mr-sm: 10px; --lia-nav-brand-logo-height: 30px; --lia-nav-link-gap: 10px; --lia-nav-link-justify-content: flex-start; --lia-nav-link-py: 5px; --lia-nav-link-px: 10px; --lia-nav-link-dropdown-py: 9px; --lia-nav-link-dropdown-px: var(--lia-nav-link-px); --lia-nav-link-color: var(--lia-bs-body-color); --lia-nav-link-hover-color: var(--lia-bs-body-color); --lia-nav-link-font-size: 14px; --lia-nav-link-font-style: NORMAL; --lia-nav-link-font-weight: 400; --lia-nav-link-text-transform: none; --lia-nav-link-letter-spacing: normal; --lia-nav-link-border-radius: var(--lia-bs-border-radius-sm); --lia-nav-link-bg-color: transparent; --lia-nav-link-bg-hover-color: transparent; --lia-nav-link-border: none; --lia-nav-link-border-hover: none; --lia-nav-link-box-shadow: none; --lia-nav-link-box-shadow-hover: none; --lia-nav-link-text-border-bottom: none; --lia-nav-link-text-border-bottom-hover: 2px solid var(--lia-bs-body-color); --lia-nav-dropdown-pt: 10px; --lia-nav-dropdown-pb: 15px; --lia-nav-dropdown-px: 10px; --lia-nav-dropdown-menu-offset: 2px; --lia-nav-dropdown-divider-mt: 10px; --lia-nav-dropdown-divider-mb: 10px; --lia-nav-dropdown-border-color: hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08); --lia-nav-controller-bg-hover-color: hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1); --lia-nav-controller-icon-color: var(--lia-bs-body-color); --lia-nav-controller-icon-hover-color: var(--lia-bs-body-color); --lia-nav-controller-icon-highlight: hsla(30, 100%, 50%); --lia-nav-controller-icon-highlight-text: var(--lia-yiq-dark); --lia-nav-controller-text-color: var(--lia-nav-controller-icon-color); --lia-nav-controller-text-hover-color: var(--lia-nav-controller-icon-hover-color); --lia-nav-controller-border-radius: var(--lia-border-radius-50); --lia-nav-hamburger-color: var(--lia-nav-controller-icon-color); --lia-nav-hamburger-hover-color: var(--lia-nav-controller-icon-color); --lia-nav-hamburger-bg-color: transparent; --lia-nav-hamburger-bg-hover-color: transparent; --lia-nav-hamburger-border: none; --lia-nav-hamburger-border-hover: none; --lia-nav-collapse-menu-ml: 20px; --lia-nav-collapse-menu-divider-bg: var(--lia-nav-link-color); --lia-nav-collapse-menu-divider-opacity: 0.16; }</style><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":0,"item":"https://techcommunity.microsoft.com","name":"Microsoft Community Hub"},{"@type":"ListItem","position":1,"item":"/category/communities","name":"Communities"},{"@type":"ListItem","position":2,"item":"/category/solutions","name":"Topics"},{"@type":"ListItem","position":3,"item":"/category/RegionalBlogs","name":"Regional Blogs"},{"@type":"ListItem","position":4,"item":"/category/RegionalBlogs/blog/DesenvolvedoresBR","name":"Desenvolvedores BR"}]}</script><style data-testid="CustomComponentContentCss" type="text/css">.custom_widget_Social_Sharing_social-share_c7xxz_1 { .custom_widget_Social_Sharing_sharing-options_c7xxz_2 { position: relative; margin: 0; padding: 0; line-height: 0.625rem; display: flex; justify-content: left; gap: 0.3125rem; list-style-type: none; li { text-align: left; a { min-width: 1.875rem; min-height: 1.875rem; display: block; padding: 0.0625rem; .custom_widget_Social_Sharing_social-share-linkedin_c7xxz_18 { img { background-color: rgb(0, 119, 181); } } .custom_widget_Social_Sharing_social-share-facebook_c7xxz_23 { img { background-color: rgb(59, 89, 152); } } .custom_widget_Social_Sharing_social-share-x_c7xxz_28 { img { background-color: rgb(0, 0, 0); } } .custom_widget_Social_Sharing_social-share-rss_c7xxz_33 { img { background-color: rgb(0, 0, 0); } } .custom_widget_Social_Sharing_social-share-reddit_c7xxz_38 { img { background-color: rgb(255, 69, 0); } } .custom_widget_Social_Sharing_social-share-email_c7xxz_43 { img { background-color: rgb(132, 132, 132); } } } a { img { height: 2rem; } } } } } </style><style data-testid="CustomComponentContentCss" type="text/css">.custom_widget_MicrosoftFooter_context-uhf_f95yq_1 { min-width: 17.5rem; font-size: 0.9375rem; box-sizing: border-box; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; &amp; *, &amp; *:before, &amp; *:after { box-sizing: inherit; } a.custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12 { color: #616161; word-break: break-word; text-decoration: none; } &amp;a:link, &amp;a:focus, &amp;a:hover, &amp;a:active, &amp;a:visited { text-decoration: none; color: inherit; } &amp; div { font-family: &#x27;Segoe UI&#x27;, SegoeUI, &#x27;Helvetica Neue&#x27;, Helvetica, Arial, sans-serif; } } .custom_widget_MicrosoftFooter_c-uhff_f95yq_12 { background: #f2f2f2; margin: -1.5625; width: auto; height: auto; } .custom_widget_MicrosoftFooter_c-uhff-nav_f95yq_35 { margin: 0 auto; max-width: calc(100rem + 10%); padding: 0 5%; box-sizing: inherit; &amp;:before, &amp;:after { content: &#x27; &#x27;; display: table; clear: left; } @media only screen and (max-width: 1083px) { padding-left: 0.75rem; } .custom_widget_MicrosoftFooter_c-heading-4_f95yq_49 { color: #616161; word-break: break-word; font-size: 0.9375rem; line-height: 1.25rem; padding: 2.25rem 0 0.25rem; font-weight: 600; } .custom_widget_MicrosoftFooter_c-uhff-nav-row_f95yq_57 { .custom_widget_MicrosoftFooter_c-uhff-nav-group_f95yq_58 { display: block; float: left; min-height: 0.0625rem; vertical-align: text-top; padding: 0 0.75rem; width: 100%; zoom: 1; &amp;:first-child { padding-left: 0; @media only screen and (max-width: 1083px) { padding-left: 0.75rem; } } @media only screen and (min-width: 540px) and (max-width: 1082px) { width: 33.33333%; } @media only screen and (min-width: 1083px) { width: 16.6666666667%; } ul.custom_widget_MicrosoftFooter_c-list_f95yq_78.custom_widget_MicrosoftFooter_f-bare_f95yq_78 { font-size: 0.6875rem; line-height: 1rem; margin-top: 0; margin-bottom: 0; padding-left: 0; list-style-type: none; li { word-break: break-word; padding: 0.5rem 0; margin: 0; } } } } } .custom_widget_MicrosoftFooter_c-uhff-base_f95yq_94 { background: #f2f2f2; margin: 0 auto; max-width: calc(100rem + 10%); padding: 1.875rem 5% 1rem; &amp;:before, &amp;:after { content: &#x27; &#x27;; display: table; } &amp;:after { clear: both; } a.custom_widget_MicrosoftFooter_c-uhff-ccpa_f95yq_107 { font-size: 0.6875rem; line-height: 1rem; float: left; margin: 0.1875rem 0; } a.custom_widget_MicrosoftFooter_c-uhff-ccpa_f95yq_107:hover { text-decoration: underline; } ul.custom_widget_MicrosoftFooter_c-list_f95yq_78 { font-size: 0.6875rem; line-height: 1rem; float: right; margin: 0.1875rem 0; color: #616161; li { padding: 0 1.5rem 0.25rem 0; display: inline-block; } } .custom_widget_MicrosoftFooter_c-list_f95yq_78.custom_widget_MicrosoftFooter_f-bare_f95yq_78 { padding-left: 0; list-style-type: none; } @media only screen and (max-width: 1083px) { display: flex; flex-wrap: wrap; padding: 1.875rem 1.5rem 1rem; } } </style><script type="application/ld+json">{"@context":"https://schema.org","@type":"BlogPosting","datePublished":"11/13/2023, 3:07:28 PM","description":"O Helm é um gerenciador de pacotes para Kubernetes que ajuda a instalar, gerenciar e atualizar aplicativos Kubernetes. O Helm usa pacotes chamados “charts” que contêm todos os recursos necessários para implantar um aplicativo no Kubernetes.\nAlgumas das operações comuns que você pode executar usando o helm incluem:\n\nhelm install: instala um chart no cluster do Kubernetes.\nhelm upgrade: atualiza um chart já instalado no cluster do Kubernetes.\nhelm delete: remove um chart do cluster do Kubernetes.\nhelm lint: verifica se o chart é válido.\nhelm template: gera o pacote.\n\nPrincipais vantagens\n\nInstalação de uma aplicação conteinerizada no k8s de forma simplificada com apenas um comando\nVersionamento de releases\nAproveitamento dos mesmos arquivos de recursos em vários ambientes\nHelm é um projeto no CNCF - Cloud Native Computing Foundation\n\nComo eu instalo o Helm no Windows para interagir com um cluster AKS?\nPara instalar o Helm no Windows e interagir com um cluster AKS, você pode seguir os seguintes passos:\n\nBaixe o instalador do Helm para Windows a partir do site oficial: https://get.helm.sh/helm-v3.7.1-windows-amd64.zip\nExtraia o conteúdo do arquivo ZIP para uma pasta de sua escolha.\nAdicione a pasta onde o Helm foi extraído ao PATH do Windows\n\n\nhelm version\n\nPasso 1: Criar arquivos Helm\nComece criando uma estrutura de diretórios e arquivos para o Helm.\nhelm create helm-weather\nO comando “helm create” é uma maneira conveniente de iniciar a criação de um novo chart Helm e fornece uma estrutura inicial para você começar a definir como os recursos do Kubernetes serão implantados e configurados usando o Helm. Você pode então personalizar e expandir essa estrutura de acordo com as necessidades do seu aplicativo ou serviço.\ndepois de rodar o comando “helm create” serão criados os seguintes elementos\n\n\nDiretório helm-weather: Este diretório é a raiz do seu chart Helm. Ele conterá todos os outros arquivos e diretórios relacionados ao chart.\n\n\nArquivo Chart.yaml: Este arquivo YAML contém informações sobre o chart, como nome, versão, descrição e outros metadados.\n\n\nDiretório charts: Este diretório é usado para armazenar dependências de charts, caso o chart “helm-weather” dependa de outros charts.\n\n\nDiretório templates: Este diretório é onde você pode definir os modelos de recursos do Kubernetes que serão gerados quando você instalar o chart. Os modelos podem ser escritos em YAML e geralmente são usados para criar recursos como pods, serviços, configurações, etc.\n\n\nArquivo values.yaml: Este arquivo contém os valores padrão que serão usados nos modelos do chart. Você pode substituir esses valores ao instalar o chart para personalizar a implantação.\n\n\nArquivo charts/README.md: Este é um arquivo de documentação que fornece informações sobre o chart, como seu propósito e como usá-lo.\n\n\nArquivo README.md: Este é um arquivo de documentação geral para o chart Helm.\n\n\nPasso 2: Criar uma API Web\nAgora, crie um projeto de API Web usando o .NET Core:\ndotnet new webapi -o api-weather\nPasso 3: Criar a imagem da aplicação\nAdicione um Dockerfile para a sua aplicação. Você pode usar o Visual Studio Code e a extensão Docker para facilitar a criação do arquivo Docker. O Dockerfile pode ter o seguinte conteúdo:\nFROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base \nWORKDIR /app \nEXPOSE 5001 \n \nENV ASPNETCORE\\_URLS=http://+:5001 \n \n\\# Creates a non-root user with an explicit UID and adds permission to access the /app folder \n\\# For more info, please refer to https://aka.ms/vscode-docker-dotnet-configure-containers \nRUN adduser -u 5678 --disabled-password --gecos &quot;&quot; appuser &amp;amp;&amp;amp; chown -R appuser /app \nUSER appuser \n \nFROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:7.0 AS build \nARG configuration=Release \nWORKDIR /src \nCOPY \\[&quot;api-weather.csproj&quot;, &quot;./&quot;\\] \nRUN dotnet restore &quot;api-weather.csproj&quot; \nCOPY . . \nWORKDIR &quot;/src/.&quot; \nRUN dotnet build &quot;api-weather.csproj&quot; -c $configuration -o /app/build \n \nFROM build AS publish \nARG configuration=Release \nRUN dotnet publish &quot;api-weather.csproj&quot; -c $configuration -o /app/publish /p:UseAppHost=false \n \nFROM base AS final \nWORKDIR /app \nCOPY --from=publish /app/publish . \nENTRYPOINT \\[&quot;dotnet&quot;, &quot;api-weather.dll&quot;\\]\nPasso 4: Enviar a imagem para o ACR\nAgora, você pode enviar a imagem Docker para o Azure Container Registry (ACR) usando o Azure CLI ou o Docker:\nUsando o Azure CLI:\naz acr build -t api-sampe01 --registry acrhelm01 .\nOu usando o Docker:\naz acr login -n acrhelm01 \n \ndocker build -t api-sampe01 . \ndocker tag api-sampe01 acrhelm01.azurecr.io/api-sampe01:001 \ndocker push acrhelm01.azurecr.io/api-sampe01:001\nPasso 5: Validar os arquivos Helm\nAcesse o diretório helm-weather e valide os arquivos Helm:\ncd helm-weather \nhelm template ./ --debug\nPasso 6: Gerar o pacote Helm\nAgora, gere o pacote Helm (arquivo tar.gz) a partir do diretório:\nhelm package ./ -d charts\nPasso 7: Acesso ao cluster AKS\nCertifique-se de que você tenha acesso ao cluster AKS onde deseja implantar o aplicativo. Você pode usar o Azure CLI para configurar o acesso:\naz aks get-credentials --resource-group akshelmspoc --name akshelm01\nPasso 8: Instalar o pacote no Cluster\nAgora, você pode implantar o pacote Helm no seu cluster AKS:\nhelm upgrade helm-weather .\\\\charts\\\\helm-weather-0.1.0.tgz --namespace sample01 --create-namespace --install\nPasso 9: Verificar o resultado\nApós a implantação, você pode verificar o status dos recursos no cluster AKS usando o seguinte comando:\nkubectl get all -n sample01\nVocê também pode analisar os detalhes de um pod específico:\nkubectl describe pod helm-weather-7767995446-jchs6 -n sample01\nPodemos ver a imagem do nginx:\nName: helm-weather-7767995446-jchs6 \nNamespace: sample01 \nPriority: 0 \nService Account: helm-weather \nNode: aks-agentpool-30542430-vmss000002/10.224.0.5 \nStart Time: Wed, 27 Sep 2023 11:15:53 -0300 \nLabels: app.kubernetes.io/instance=helm-weather \n app.kubernetes.io/name=helm-weather \n pod-template-hash=7767995446 \nAnnotations: cni.projectcalico.org/containerID: 2273b655dd36ca0d3daaa722cab5a3ce8fd60b463f47fa249be62d9ec75ec6de \n cni.projectcalico.org/podIP: 10.244.1.8/32 \n cni.projectcalico.org/podIPs: 10.244.1.8/32 \nStatus: Running \nIP: 10.244.1.8 \nIPs: \n IP: 10.244.1.8 \nControlled By: ReplicaSet/helm-weather-7767995446 \nContainers: \n helm-weather: \n Container ID: containerd://d07e997d2413a4ca353ce5b3cd6939426127920850c5ede5c740e82d1786065c \n Image: nginx:1.16.0 \n Image ID: docker.io/library/nginx@sha256:3e373fd5b8d41baeddc24be311c5c6929425c04cabf893b874ac09b72a798010 \n Port: 80/TCP \n Host Port: 0/TCP \n State: Running \n Started: Wed, 27 Sep 2023 11:15:57 -0300 \n Ready: True \n Restart Count: 0 \n Liveness: http-get http://:http/ delay=0s timeout=1s period=10s #success=1 #failure=3 \n Readiness: http-get http://:http/ delay=0s timeout=1s period=10s #success=1 #failure=3 \n Environment: &amp;lt;none&amp;gt; \n Mounts: \n /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-vq2xl (ro) \nConditions: \n Type Status \n Initialized True \n Ready True \n ContainersReady True \n PodScheduled True \nVolumes: \n kube-api-access-vq2xl: \n Type: Projected (a volume that contains injected data from multiple sources) \n TokenExpirationSeconds: 3607 \n ConfigMapName: kube-root-ca.crt \n ConfigMapOptional: &amp;lt;nil&amp;gt; \n DownwardAPI: true \nQoS Class: BestEffort \nNode-Selectors: &amp;lt;none&amp;gt; \nTolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s \n node.kubernetes.io/unreachable:NoExecute op=Exists for 300s \nEvents: \n Type Reason Age From Message \n ---- ------ ---- ---- ------- \n Normal Scheduled 4m22s default-scheduler Successfully assigned sample01/helm-weather-7767995446-jchs6 to aks-agentpool-30542430-vmss000002 \n Normal Pulling 4m21s kubelet Pulling image &quot;nginx:1.16.0&quot; \n Normal Pulled 4m18s kubelet Successfully pulled image &quot;nginx:1.16.0&quot; in 3.022874455s (3.022881155s including waiting) \n Normal Created 4m18s kubelet Created container helm-weather \n Normal Started 4m18s kubelet Started container helm-weather\nPasso 10: Configurar o arquivo values.yaml\nEdite o arquivo values.yaml para especificar a imagem Docker e as verificações de liveness e readiness:\nimage: \n repository: acrhelm01.azurecr.io/api-sampe01 \n pullPolicy: IfNotPresent \n # Overrides the image tag whose default is the chart appVersion. \n tag: &quot;001&quot;\nConfigurar o livenessProbe e o readinessProbe\nno arquivo deployment.yaml\nlivenessProbe: \n httpGet: \n path: {{ .Values.livenessProbe.httpGet.path }} \n port: {{ .Values.livenessProbe.httpGet.port }} \nreadinessProbe: \n httpGet: \n path: {{ .Values.readinessProbe.httpGet.path }} \n port: {{ .Values.readinessProbe.httpGet.port }}\ne no arquivo de values.yaml\nlivenessProbe: \n httpGet: \n path: /WeatherForecast \n port: 5001 \n \nreadinessProbe: \n httpGet: \n path: /WeatherForecast \n port: 5001\nEm resumo, essas configurações permitem que os operadores personalizem os valores das configurações do aplicativo quando implantam o chart Helm. As configurações padrão são definidas no arquivo values.yaml, mas podem ser substituídas por valores específicos de implantação, dependendo das necessidades do ambiente em que o chart é implantado. Isso é útil para garantir que o aplicativo seja implantado com configurações adequadas para cada implantação.\nConfigurar o Servico ClusterIP\nno arquivo service.yaml\ntargetPort: {{ .Values.service.targetPort }}\ne no arquivo values.yaml\nservice: \n type: LoadBalancer \n port: 80 \n targetPort: 5001\nValida\nhelm template ./ --debug\ngera outro pacote\nhelm package ./ -d charts --version 0.1.1\nPasso 11: Atualizar o Deploy\nSe você fizer alterações nos valores do Helm, atualize o deploy:\nhelm upgrade helm-weather .\\\\charts\\\\helm-weather-0.1.1.tgz --namespace sample01 --create-namespace --install\nPasso 12: Verificar os Pods\nVerifique o estado dos pods após a atualização:\nkubectl get all -n sample01\nsubiu\nNAME READY STATUS RESTARTS AGE \npod/helm-weather-57488847d8-jdxmz 1/1 Running 0 34m \n \nNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE \nservice/helm-weather ClusterIP 10.0.201.39 &amp;lt;none&amp;gt; 80/TCP 128m \n \nNAME READY UP-TO-DATE AVAILABLE AGE \ndeployment.apps/helm-weather 1/1 1 1 128m \n \nNAME DESIRED CURRENT READY AGE \nreplicaset.apps/helm-weather-568c9ddbd 0 0 0 101m \nreplicaset.apps/helm-weather-57488847d8 1 1 1 34m \nreplicaset.apps/helm-weather-646c667ccd 0 0 0 115m \nreplicaset.apps/helm-weather-7767995446 0 0 0 128m \nreplicaset.apps/helm-weather-7fcd86b448 0 0 0 109m\nTambém podemos automatizar esse processo usando o Azure devops, para isso vamos precisar de duas services connections:\n\ndocker registry\nAzure Resource manager\n\ne das tasks de:\n\nDocker\nHelmDeploy\nHelmInstaller\nHelmDeploy\n\nmais ou menos isso\ntrigger: \n\\- none \n \nstages: \n\\- stage: Build \n displayName: Build Artifact \n jobs: \n - job: Build \n pool: \n vmImage: ubuntu-latest \n displayName: Build Artifact \n steps: \n - task: Docker@2 \n inputs: \n containerRegistry: &apos;acrhelm01&apos; \n repository: &apos;api-weather&apos; \n command: &apos;buildAndPush&apos; \n Dockerfile: &apos;sample01/api-weather/Dockerfile&apos; \n tags: &apos;$(Build.BuildId)&apos; \n - bash: | \n helm template ./sample01/helm-weather \n failOnStderr: true \n displayName: &apos;Helm template - renderiza o template, validacao previa&apos; \n - task: HelmDeploy@0 \n inputs: \n command: &apos;package&apos; \n chartPath: &apos;././sample01/helm-weather&apos; \n chartVersion: &apos;$(Build.BuildId)&apos; \n \n - task: CopyFiles@2 \n inputs: \n Contents: | \n helm-weather/\\*\\*/\\*.tgz \n TargetFolder: &apos;$(Build.ArtifactStagingDirectory)&apos; \n - task: PublishPipelineArtifact@1 \n inputs: \n targetPath: &apos;$(Build.ArtifactStagingDirectory)&apos; \n artifact: &apos;drop&apos; \n publishLocation: &apos;pipeline&apos; \n \n \n\\- stage: Deploy \n displayName: Deploy \n dependsOn: Build \n condition: succeeded() \n jobs: \n - deployment: DeployWeb \n displayName: deploy Web App \n pool: \n vmImage: &apos;Ubuntu-latest&apos; \n environment: &apos;aks&apos; \n strategy: \n runOnce: \n deploy: \n steps: \n - download: current \n artifact: drop \n - task: HelmInstaller@1 \n displayName: &apos;Helm install&apos; \n inputs: \n helmVersionToInstall: 3.11.2 \n - task: HelmDeploy@0 \n inputs: \n connectionType: &apos;Azure Resource Manager&apos; \n azureSubscription: &apos;akshelmpoc&apos; \n azureResourceGroup: &apos;akshelmspoc&apos; \n kubernetesCluster: &apos;akshelm01&apos; \n namespace: &apos;sample01&apos; \n command: &apos;upgrade&apos; \n chartType: &apos;FilePath&apos; \n chartPath: &apos;$(Pipeline.Workspace)/drop/helm-weather-$(Build.BuildID).tgz&apos; \n chartVersion: &apos;$(Build.BuildId)&apos; \n releaseName: &apos;helm-weather&apos; \n overrideValues: &apos;image.repository=acrhelm01.azurecr.io/api-weather,image.tag=$(Build.BuildID)&apos;\nverificar\n kubectl get all -n sample01\n&amp;nbsp;\nNAME READY STATUS RESTARTS AGEpod/helm-weather-77594b48c5-ql96l 1/1 Running 0 24sNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEservice/helm-weather LoadBalancer 10.0.65.168 20.85.198.43 80:30330/TCP 6m45sNAME READY UP-TO-DATE AVAILABLE AGEdeployment.apps/helm-weather 1/1 1 1 6m44sNAME DESIRED CURRENT READY AGEreplicaset.apps/helm-weather-568c9ddbd 0 0 0 6m45sreplicaset.apps/helm-weather-57488847d8 0 0 0 6m45sreplicaset.apps/helm-weather-646c667ccd 0 0 0 6m45sreplicaset.apps/helm-weather-6b5486b6d6 0 0 0 6m45sreplicaset.apps/helm-weather-77594b48c5 1 1 1 25sreplicaset.apps/helm-weather-7767995446 0 0 0 6m45sreplicaset.apps/helm-weather-7fcd86b448 0 0 0 6m45s\n&amp;nbsp;\nhttp://20.85.198.43/WeatherForecast\nConclusão\nCom isso, você configurou com sucesso a implantação de uma aplicação de API web no Azure Kubernetes Service usando Helm e o Azure Container Registry. Além disso, você também automatizou o processo usando o Azure DevOps para maior eficiência\nReferências\n\nHelm\nDesenvolver no Serviço de Kubernetes do Azure (AKS) com o Helm — Azure Kubernetes Service | Microsoft Learn\n","mainEntityOfPage":{"@type":"WebPage","@id":"https://techcommunity.microsoft.com/blog/desenvolvedoresbr/aks--helm/3980279"},"headline":"AKS &amp; HELM","image":["https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTgwMjc5LTUyNDc5NmkwQUM1NEUxRDQxMDdBMzE3?revision=2"],"dateModified":"11/13/2023, 3:05:55 PM","author":{"@type":"Person","name":"wdossantos","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/dS0xMTcxNjczLTMyNTM2MGkwNjkyMDE1OTQ0RkQ5MTM0"},"publisher":{"@type":"Organization","name":"TECHCOMMUNITY.MICROSOFT.COM"}}</script><meta name="next-head-count" content="26"/><noscript id="__next_css__DO_NOT_USE__"></noscript><script id="prism-bootstrap" data-nscript="beforeInteractive" crossorigin="anonymous">window.Prism = window.Prism || {};Prism.manual = true;</script><link rel="preload" href="/_next/static/css/70f9debde82c7430.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/70f9debde82c7430.css" crossorigin="anonymous" data-n-g=""/><link rel="preload" href="/_next/static/css/51354f5913c71cf4.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/51354f5913c71cf4.css" crossorigin="anonymous" data-n-p=""/><link rel="preload" href="/_next/static/css/695513f4460cf9de.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/695513f4460cf9de.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/27354a62d6df58b7.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/27354a62d6df58b7.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/6b6feb98a73e4b36.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/6b6feb98a73e4b36.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/b3570409e4961851.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/b3570409e4961851.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/862b9c0d1ee38b75.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/862b9c0d1ee38b75.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/96e83c4412cdcd6d.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/96e83c4412cdcd6d.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/0aea06143d4d2261.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/0aea06143d4d2261.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/a87e85723550ff6c.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/a87e85723550ff6c.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/da1b9bc00ca1b132.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/da1b9bc00ca1b132.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/2cb7930a61479b70.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/2cb7930a61479b70.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/0da1a563af23ca7c.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/0da1a563af23ca7c.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/0ddbd47ca7e61fdd.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/0ddbd47ca7e61fdd.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/75c3051a6282c4c8.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/75c3051a6282c4c8.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/d9008e6eff4bb31c.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/d9008e6eff4bb31c.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/c8c2af71f10c8f48.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/c8c2af71f10c8f48.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/301c38302d8be06d.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/301c38302d8be06d.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/52b0564d2e1c00bd.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/52b0564d2e1c00bd.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/8cc8a18b0063d113.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/8cc8a18b0063d113.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/2fa8acea5ddb7a0d.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/2fa8acea5ddb7a0d.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/2816a50928585b4e.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/2816a50928585b4e.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/01bbadcc1be827c5.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/01bbadcc1be827c5.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/acce1e159f006524.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/acce1e159f006524.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/eaa1e83705b8a1b9.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/eaa1e83705b8a1b9.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/d9e0f6ee4c8b30bc.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/d9e0f6ee4c8b30bc.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/27d09bf2b6a2209b.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/27d09bf2b6a2209b.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/8e9fe845357bfc67.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/8e9fe845357bfc67.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/741822ca69eb63d7.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/741822ca69eb63d7.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/e50f24e20f7bc6ce.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/e50f24e20f7bc6ce.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/64453358afb21e22.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/64453358afb21e22.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/d251c99cf38a4187.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/d251c99cf38a4187.css" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/c94ef98af7effe01.css" as="style" crossorigin="anonymous"/><link rel="stylesheet" href="/_next/static/css/c94ef98af7effe01.css" crossorigin="anonymous"/><noscript data-n-css=""></noscript><script defer="" crossorigin="anonymous" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script id="cookie_consent" src="https://techcommunity.microsoft.com/t5/s/gxcuf89792/pagescripts/1729284608000/cookie_consent.js?page.id=BlogMessagePage&amp;entity.id=board%3Adesenvolvedoresbr&amp;entity.id=message%3A3980279" defer="" data-nscript="beforeInteractive" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/77463-2acfddc67ff4590a.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/84770-15660bbd05b5edfa.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/97333-fce065001bc1b0c7.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/34062-58f93d648b5d2fe8.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/70193.0446f1b58a8be886.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/83256.5925a1bd3f2ed59e.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/13490.ba9b24b6fc307a1b.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/86460.ba3f744c64cbd793.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/44786.618e88b46021e53c.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/25232.332c8cc01832b7d7.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/43158.727e0ab7008cdc0a.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/40423.6e764a1e65bf4776.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/32773.82bc267815d4f4fb.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/97924.91cfb20317d28b30.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/9407.f7fd6b5f30450438.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/84281.7dbaa6cf0fda7daa.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/37310.e068cf4692ea059c.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/23549.306ead2a29cf2310.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/54340.964a0582cb40e965.js" crossorigin="anonymous"></script><script defer="" src="/_next/static/chunks/91653.02fb1491c9107943.js" crossorigin="anonymous"></script><script src="/_next/static/chunks/webpack-a8859695fbd039ab.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/main-699e4d9ec4f3530c.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/pages/_app-61f6e182962a7a6e.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/15089-e29bf7f37c7b7582.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/56954-a661bff96978ced0.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/37553-349b571b1837d9f5.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/67527-2f9f9c5d94b90716.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/15543-fe4cde6618117bea.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/54341-40537c8a8ab6a93e.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/83729-97dd3581e8d24305.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/23842-414a45ee6e8c5f95.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/85258-3c88938f5903bdfa.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/37330-c326830a1058a439.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/76820-63044a5ae14ef4d9.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/56930-58cd27f5a68847f9.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/97524-1a872e9fae5f72bc.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/51325-f799cb915ede1d5f.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/42098-d0f5af2a77df3416.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/92236-da8b93af03bac1ec.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/36752-d4ea73eca4898eba.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/2873-0a7ce710344b0df9.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/53272-c87fd99570e7af79.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/43847-eb5bebd3c9cb2d5a.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/18182-0e014c201338b900.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/23446-c0f0466a2ad73ed4.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/55411-0dffaf1f7970aab7.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/39667-c3917cde87fb5114.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/74783-96061278f4e4b609.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/32876-a0595b92f1bea0f8.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/chunks/pages/blogs/BlogMessagePage/BlogMessagePage-9851870b31e940d2.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/PueESxikv_D6pRYmXbJsM/_buildManifest.js" defer="" crossorigin="anonymous"></script><script src="/_next/static/PueESxikv_D6pRYmXbJsM/_ssgManifest.js" defer="" crossorigin="anonymous"></script></head><body><div id="__next"><header data-testid="QuiltWrapperSection"><div aria-hidden="true"></div><nav class="Navbar_lia-nav__x3UtG Navbar_lia-nav-fixed__mp9zl" style="--lia-d-nav-bg-combined:hsla(0, 0%, 100%, 0.8)"><div data-testid="ThemedContainer" class="Navbar_lia-container__PneN7 ThemedContainer_lia-fixed-container__MPYgN ThemedContainer_lia-fixed-gutters__1PeHV styles_container__6wTQq"><div class="NavbarHamburgerDropdown_lia-hamburger__wMSGy styles_dropdown__gtmlA"><button data-testid="Button" aria-haspopup="true" aria-expanded="false" aria-label="Side Menu" id=":Reqq6lbem:" type="button" class="styles_lia-g-unstyled-btn__Sglpm NavbarHamburgerDropdown_lia-hamburger-toggle__A99vU styles_dropdown-toggle__lyIUd styles_btn__1HFm0"><span class="HamburgerIcon_lia-hamburger__Vl1W7"><span class="HamburgerIcon_lia-burger-part__gpOaQ HamburgerIcon_lia-lettuce__CHkD6 NavbarHamburgerDropdown_lia-hamburger-icon__CaJzZ"></span><span class="HamburgerIcon_lia-burger-part__gpOaQ HamburgerIcon_lia-tomato__gEm9r NavbarHamburgerDropdown_lia-hamburger-icon__CaJzZ"></span><span class="HamburgerIcon_lia-burger-part__gpOaQ HamburgerIcon_lia-cheese__4316P NavbarHamburgerDropdown_lia-hamburger-icon__CaJzZ"></span></span></button></div><div class="Navbar_lia-brand-wrap__kMjMv"><a class="Navbar_lia-brand-logo___j4kl" href="/"><img src="https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/themes/customTheme1/favicon-1730836271365.png?time=1730836274203" alt="Brand Logo" class="BrandLogo_lia-logo__9HhbP"/></a><a href="#main-content" class="Navbar_lia-skip-content__x8IQ0">Skip to content</a></div><section class="NavbarTextLinks_lia-main-links-container__QOLn4"><div class="NavbarTextLinks_lia-main-links__XTYIO"><a tabindex="0" href="/" class="styles_lia-g-navbar-link___5V8S" data-testid="NavbarLink.gxcuf89792" target="_self"><span class="styles_lia-g-navbar-link-text__hNCPc">Tech Community</span></a><a tabindex="0" href="/Directory" class="styles_lia-g-navbar-link___5V8S" data-testid="NavbarLink.external_link" target="_self"><span class="styles_lia-g-navbar-link-text__hNCPc">Community Hubs</span></a><div data-menu-open="false" class="NavbarDropdown_lia-dropdown__UxoG7 styles_dropdown__gtmlA"><div aria-haspopup="true" aria-label="Press the down arrow to open the menu" data-testid="NavbarDropdown.Toggle" tabindex="-1" id=":Rquqq6lbem:"><a tabindex="0" href="/" class="styles_lia-g-navbar-link___5V8S NavbarDropdownToggle_lia-link-extender__HG9yN NavbarAnchor_lia-disabled__IqfY3" data-testid="NavbarLink.communities" target="_blank"><span class="styles_lia-g-navbar-link-text__hNCPc">Products<svg class="styles_lia-g-navbar-dropdown-icon__MBB_c Icon_lia-icon__on1Gb" data-testid="Icon" style="--lia-local-icon-color:var(--lia-bs-body-color);--lia-local-icon-color-h:var(--lia-bs-body-color-h);--lia-local-icon-color-s:var(--lia-bs-body-color-s);--lia-local-icon-color-l:var(--lia-bs-body-color-l)" aria-hidden="true"><use href="/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/chevron-down.svg#chevron-down"></use></svg></span></a></div></div><div data-menu-open="false" class="NavbarDropdown_lia-dropdown__UxoG7 styles_dropdown__gtmlA"><div aria-haspopup="true" aria-label="Press the down arrow to open the menu" data-testid="NavbarDropdown.Toggle" tabindex="-1" id=":R12uqq6lbem:"><a tabindex="0" href="/" class="styles_lia-g-navbar-link___5V8S NavbarDropdownToggle_lia-link-extender__HG9yN NavbarAnchor_lia-disabled__IqfY3" data-testid="NavbarLink.communities_1" target="_self"><span class="styles_lia-g-navbar-link-text__hNCPc">Topics<svg class="styles_lia-g-navbar-dropdown-icon__MBB_c Icon_lia-icon__on1Gb" data-testid="Icon" style="--lia-local-icon-color:var(--lia-bs-body-color);--lia-local-icon-color-h:var(--lia-bs-body-color-h);--lia-local-icon-color-s:var(--lia-bs-body-color-s);--lia-local-icon-color-l:var(--lia-bs-body-color-l)" aria-hidden="true"><use href="/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/chevron-down.svg#chevron-down"></use></svg></span></a></div></div><a tabindex="0" href="/Blogs" class="styles_lia-g-navbar-link___5V8S" data-testid="NavbarLink.external" target="_self"><span class="styles_lia-g-navbar-link-text__hNCPc">Blogs</span></a><a tabindex="0" href="/Events" class="styles_lia-g-navbar-link___5V8S" data-testid="NavbarLink.external_1" target="_self"><span class="styles_lia-g-navbar-link-text__hNCPc">Events</span></a><div data-menu-open="false" class="NavbarDropdown_lia-dropdown__UxoG7 styles_dropdown__gtmlA"><div aria-haspopup="true" aria-label="Press the down arrow to open the menu" data-testid="NavbarDropdown.Toggle" tabindex="-1" id=":R1quqq6lbem:"><a tabindex="0" href="/category/MicrosoftLearn" class="styles_lia-g-navbar-link___5V8S NavbarDropdownToggle_lia-link-extender__HG9yN NavbarAnchor_lia-disabled__IqfY3" data-testid="NavbarLink.microsoft_learn" target="_self"><span class="styles_lia-g-navbar-link-text__hNCPc">Microsoft Learn<svg class="styles_lia-g-navbar-dropdown-icon__MBB_c Icon_lia-icon__on1Gb" data-testid="Icon" style="--lia-local-icon-color:var(--lia-bs-body-color);--lia-local-icon-color-h:var(--lia-bs-body-color-h);--lia-local-icon-color-s:var(--lia-bs-body-color-s);--lia-local-icon-color-l:var(--lia-bs-body-color-l)" aria-hidden="true"><use href="/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/chevron-down.svg#chevron-down"></use></svg></span></a></div></div><a tabindex="0" href="/category/Community-Info-Center" class="styles_lia-g-navbar-link___5V8S" data-testid="NavbarLink.community_info_center" target="_self"><span class="styles_lia-g-navbar-link-text__hNCPc">Lounge</span></a></div><div class="NavbarTextLinks_lia-more__Lo2H5"></div></section><section class="Navbar_lia-section__0E_DT Navbar_lia-controls__i63Rp"><a data-testid="AuthenticationLink.registration" class="Navbar_lia-controller-text-link__1JNsW styles_lia-g-navbar-link___5V8S" href="/t5/s/gxcuf89792/auth/oidcss/sso_login_redirect/provider/default?referer=https%3A%2F%2Ftechcommunity.microsoft.com%2Fblog%2Fdesenvolvedoresbr%2Faks--helm%2F3980279">Register</a><a data-testid="AuthenticationLink.login" class="Navbar_lia-controller-text-link__1JNsW styles_lia-g-navbar-link___5V8S" href="/t5/s/gxcuf89792/auth/oidcss/sso_login_redirect/provider/default?referer=https%3A%2F%2Ftechcommunity.microsoft.com%2Fblog%2Fdesenvolvedoresbr%2Faks--helm%2F3980279">Sign In</a></section></div></nav><div class="Navbar_lia-nav-spacer__e1b2y" aria-hidden="true"></div><div class="Breadcrumb_lia-breadcrumb-container__qzYKB"><div style="background-color:transparent" class="styles_border-bottom__rm8pu"><nav aria-label="Breadcrumbs" class="Breadcrumb_lia-nav__ilWY3 Breadcrumb_lia-breadcrumb-container-content__95TUn" data-testid="Breadcrumb"><div data-testid="ThemedContainer" style="--lia-breadcrumb-link-color:var(--lia-bs-gray-700);--lia-breadcrumb-divider-opacity:0.5;--lia-breadcrumb-link-highlight-color:var(--lia-bs-primary)" class="Breadcrumb_lia-nav__ilWY3 ThemedContainer_lia-fixed-container__MPYgN ThemedContainer_lia-fixed-gutters__1PeHV styles_container__6wTQq"><ol class="Breadcrumb_lia-crumb-list__Xb5Aw"><li class="Breadcrumb_lia-crumb-list-item__iXBAq"><a data-testid="nodeLink" target="_self" class="Breadcrumb_lia-crumb-item__CSmrj" aria-label="Place Microsoft Community Hub" href="/">Microsoft Community Hub</a></li><li class="Breadcrumb_lia-crumb-divider__Fy21x" aria-hidden="true"><svg class="Breadcrumb_lia-crumb-icon__ZfovN styles_lia-g-icon-size-12__fO_66 Icon_lia-size-12__l8N3M Icon_lia-icon__on1Gb" data-testid="Icon" style="--lia-local-icon-color:var(--lia-bs-gray-500);--lia-local-icon-color-h:var(--lia-bs-gray-500-h);--lia-local-icon-color-s:var(--lia-bs-gray-500-s);--lia-local-icon-color-l:var(--lia-bs-gray-500-l)" aria-hidden="true"><use href="/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/chevron-right.svg#chevron-right"></use></svg></li><li class="Breadcrumb_lia-crumb-list-item__iXBAq"><div class="styles_dropdown__gtmlA"><button data-testid="Button" aria-haspopup="true" aria-expanded="false" aria-label="Additional parent page navigation" type="button" class="Breadcrumb_lia-dropdown-toggle__csMOA styles_dropdown-toggle__lyIUd styles_btn__1HFm0"><svg class="Breadcrumb_lia-ellipsis-icon__ulzm3 styles_lia-g-icon-size-12__fO_66 Icon_lia-size-12__l8N3M Icon_lia-icon__on1Gb" data-testid="Icon" style="--lia-local-icon-color:var(--lia-bs-gray-700);--lia-local-icon-color-h:var(--lia-bs-gray-700-h);--lia-local-icon-color-s:var(--lia-bs-gray-700-s);--lia-local-icon-color-l:var(--lia-bs-gray-700-l)" aria-hidden="true"><use href="/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/ellipsis.svg#ellipsis"></use></svg></button><div x-placement="bottom-start" style="position:absolute;top:0;left:0;opacity:0;pointer-events:none" class="styles_dropdown-menu__gMSix"><a data-testid="nodeLink" target="_self" class="styles_dropdown-item__s_Yb9" aria-label="Place Communities" href="/category/communities">Communities</a><a data-testid="nodeLink" target="_self" class="styles_dropdown-item__s_Yb9" aria-label="Place Topics" href="/category/solutions">Topics</a></div></div></li><li class="Breadcrumb_lia-crumb-divider__Fy21x"><svg class="Breadcrumb_lia-crumb-icon__ZfovN styles_lia-g-icon-size-12__fO_66 Icon_lia-size-12__l8N3M Icon_lia-icon__on1Gb" data-testid="Icon" style="--lia-local-icon-color:var(--lia-bs-gray-500);--lia-local-icon-color-h:var(--lia-bs-gray-500-h);--lia-local-icon-color-s:var(--lia-bs-gray-500-s);--lia-local-icon-color-l:var(--lia-bs-gray-500-l)" aria-hidden="true"><use href="/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/chevron-right.svg#chevron-right"></use></svg></li><li class="Breadcrumb_lia-crumb-list-item__iXBAq"><a data-testid="nodeLink" target="_self" class="Breadcrumb_lia-crumb-item__CSmrj" aria-label="Place Regional Blogs" href="/category/regionalblogs">Regional Blogs</a></li><li class="Breadcrumb_lia-crumb-divider__Fy21x" aria-hidden="true"><svg class="Breadcrumb_lia-crumb-icon__ZfovN styles_lia-g-icon-size-12__fO_66 Icon_lia-size-12__l8N3M Icon_lia-icon__on1Gb" data-testid="Icon" style="--lia-local-icon-color:var(--lia-bs-gray-500);--lia-local-icon-color-h:var(--lia-bs-gray-500-h);--lia-local-icon-color-s:var(--lia-bs-gray-500-s);--lia-local-icon-color-l:var(--lia-bs-gray-500-l)" aria-hidden="true"><use href="/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/chevron-right.svg#chevron-right"></use></svg></li><li class="Breadcrumb_lia-crumb-list-item__iXBAq Breadcrumb_lia-crumb-mobile__phoX_" data-testid="Breadcrumb.Mobilecrumb"><a data-testid="nodeLink" target="_self" class="Breadcrumb_lia-crumb-item__CSmrj" aria-label="Place Desenvolvedores BR" href="/category/regionalblogs/blog/desenvolvedoresbr"><svg class="Breadcrumb_lia-crumb-icon-mobile__TE_1C styles_lia-g-icon-size-16__V9Va_ Icon_lia-size-16__D8_m2 Icon_lia-icon__on1Gb" data-testid="Icon" style="--lia-local-icon-color:var(--lia-bs-gray-700);--lia-local-icon-color-h:var(--lia-bs-gray-700-h);--lia-local-icon-color-s:var(--lia-bs-gray-700-s);--lia-local-icon-color-l:var(--lia-bs-gray-700-l)" aria-hidden="true"><use href="/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/chevron-left.svg#chevron-left"></use></svg>Desenvolvedores BR</a></li></ol><div class="Breadcrumb_lia-crumb-actions__fTD_Z" style="--lia-breadcrumb-link-color:var(--lia-bs-gray-700)"></div></div></nav></div></div><div class="CustomComponent_lia-wrapper__7IqeO" style="--lia-local-bg-color:transparent"><article class="CustomComponent_lia-article__sQ7z4" data-testid="CustomComponent"><section></section></article></div></header><main id="main-content"><section class="QuiltSection_lia-section-spacing__WK9AB" data-testid="QuiltSection-blog-article"><div class="QuiltSection_lia-section-attached-first__zZ7U_"></div><div data-testid="ThemedContainer" class="ThemedContainer_lia-fixed-container__MPYgN styles_container__6wTQq"><div class="styles_text-center__Pja03 styles_text-break__Ny06M styles_sr-only__NOnjB styles_lia-g-mb-15__YNrGd" data-testid="QuiltSectionHeader"><h2 class="styles_sr-only__NOnjB" data-testid="QuiltSectionHeader.Title">Blog Post</h2></div><div class="styles_row__sjnST"><div style="--lia-content-item-border:none" class="QuiltSection_lia-column__iNmDj styles_col-lg-12__u20eR"><div class="styles_lia-g-section-widget__aHMgk"><div class="BlogArticleWidget_lia-blog-container__ckIso"><div class="BlogArticleWidget_lia-message-body-container__deBDw"><div class="MessageViewStandard_lia-wrap__T7pk7"><article class="MessageViewStandard_lia-article__pnxJk styles_lia-g-message-box__arKXm BlogArticleWidget_lia-article__u_l_W" data-testid="StandardMessageView"><section class="MessageViewStandard_lia-section__rh71K" id="uid3980279"><div class="styles_d-flex__7__Y_ styles_flex-column__Vl0ML"><div class="MessageViewStandard_lia-head-wrapper__KIxBz"><div class="MessageViewStandard_lia-title-section__P1a89"><div class="styles_d-flex__7__Y_"><div class="styles_lia-g-subheading__MYxBV MessageViewStandard_lia-node-title__ptFLq NodeTitle_lia-title-and-icon__wEuTM" data-testid="NodeTitle">Desenvolvedores BR </div><div class="styles_lia-g-subheading__MYxBV MessageViewStandard_lia-node-title__ptFLq styles_lia-g-ml-25__j3n4m">8 MIN READ</div></div><h1 title="AKS &amp; HELM" class="styles_text-break__Ny06M MessageViewStandard_lia-cover-image-title__WLVim" data-testid="MessageSubject">AKS &amp; HELM</h1><div class="MessageViewStandard_lia-header__m8KYT"><div class="MessageViewStandard_lia-header-main__2zLqy"><div class="styles_lia-g-mr-10__IIyjn"><a data-hovercard-trigger="true" data-testid="userLink" class="styles_d-block__btBet" aria-label="View Profile: wdossantos" aria-describedby="UserHoverCard-1171673" target="_self" href="/users/wdossantos/1171673"><span class="UserAvatar_lia-avatar__HFfcv styles_lia-g-icon-size-50__HExtr" data-testid="userAvatar"><img src="https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/dS0xMTcxNjczLTMyNTM2MGkwNjkyMDE1OTQ0RkQ5MTM0?image-dimensions=50x50" alt="wdossantos&#x27;s avatar" class="UserAvatar_lia-avatar-img__CUPwZ" aria-hidden="false"/></span></a></div><div class="MessageViewStandard_lia-header-text__6GqFy"><div class="styles_d-flex__7__Y_ styles_align-items-center__OKdH0"><span class="styles_lia-g-divider__X68T2"><a data-hovercard-trigger="true" data-testid="userLink" class="MessageViewStandard_lia-author-text__3ExAu styles_font-weight-bold__3_Kc8 styles_small__seeYj styles_d-flex__7__Y_" aria-label="View Profile: wdossantos" aria-describedby="UserHoverCard-1171673" target="_self" href="/users/wdossantos/1171673">wdossantos</a></span><div class="styles_lia-g-ml-5__SlnKE MessageViewStandard_lia-author-rank__fonU0" data-testid="userRank"><div class="UserRankLabel_lia-rank__CqPss"><img class="UserRankLabel_lia-rank-icon__g_uVM" src="https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/cmstNC05WEo0blc?image-dimensions=100x16&amp;constrain-image=true" alt="Icon for Microsoft rank"/><span style="border-color:#333333;color:#333333" class="UserRankLabel_lia-is-boxed__Ykpfe UserRankLabel_lia-rank-label__epEUI UserRankLabel_lia-is-outline__q_ZVs"><span class="UserRankLabel_text-break__RX8Tt styles_lia-g-clamp__dg3Sg">Microsoft</span></span></div></div></div><span class="MessageViewStandard_lia-author-post-time__OaTrl" data-testid="messageTime"><span title="November 13, 2023 at 3:07 PM" role="none">Nov 13, 2023</span></span></div></div></div></div></div></div><div class="BlogArticleWidget_lia-blog-content__ep83_"><div class="styles_lia-g-message-body__LkV7_ styles_lia-g-message-body-blog__TUnqH styles_clearfix__xFEoC styles_text-body__F7QRV"><P>O Helm é um gerenciador de pacotes para Kubernetes que ajuda a instalar, gerenciar e atualizar aplicativos Kubernetes. O Helm usa pacotes chamados “charts” que contêm todos os recursos necessários para implantar um aplicativo no Kubernetes.</P> <P>Algumas das operações comuns que você pode executar usando o <CODE>helm</CODE> incluem:</P> <UL> <LI><CODE>helm install</CODE>: instala um chart no cluster do Kubernetes.</LI> <LI><CODE>helm upgrade</CODE>: atualiza um chart já instalado no cluster do Kubernetes.</LI> <LI><CODE>helm delete</CODE>: remove um chart do cluster do Kubernetes.</LI> <LI><CODE>helm lint</CODE>: verifica se o chart é válido.</LI> <LI><CODE>helm template</CODE>: gera o pacote.</LI> </UL> <H2 id="community-3980279-toc-hId-594964502">Principais vantagens</H2> <OL type="1"> <LI>Instalação de uma aplicação conteinerizada no k8s de forma simplificada com apenas um comando</LI> <LI>Versionamento de releases</LI> <LI>Aproveitamento dos mesmos arquivos de recursos em vários ambientes</LI> <LI>Helm é um projeto no CNCF - Cloud Native Computing Foundation</LI> </OL> <H2 id="community-3980279-toc-hId--1212489961">Como eu instalo o Helm no Windows para interagir com um cluster AKS?</H2> <P>Para instalar o Helm no Windows e interagir com um cluster AKS, você pode seguir os seguintes passos:</P> <OL type="1"> <LI>Baixe o instalador do Helm para Windows a partir do site oficial: <A href="https://get.helm.sh/helm-v3.7.1-windows-amd64.zip" target="_blank" rel="noopener nofollow noreferrer">https://get.helm.sh/helm-v3.7.1-windows-amd64.zip</A></LI> <LI>Extraia o conteúdo do arquivo ZIP para uma pasta de sua escolha.</LI> <LI>Adicione a pasta onde o Helm foi extraído ao PATH do Windows</LI> </OL> <UL> <LI><CODE>helm version</CODE></LI> </UL> <H2 id="community-3980279-toc-hId-1275022872">Passo 1: Criar arquivos Helm</H2> <P>Comece criando uma estrutura de diretórios e arquivos para o Helm.</P> <PRE><CODE>helm create helm-weather</CODE></PRE> <P>O comando “helm create” é uma maneira conveniente de iniciar a criação de um novo chart Helm e fornece uma estrutura inicial para você começar a definir como os recursos do Kubernetes serão implantados e configurados usando o Helm. Você pode então personalizar e expandir essa estrutura de acordo com as necessidades do seu aplicativo ou serviço.</P> <H3 id="community-3980279-toc-hId-1965584346">depois de rodar o comando “helm create” serão criados os seguintes elementos</H3> <OL type="1"> <LI> <P><CODE>Diretório helm-weather:</CODE> Este diretório é a raiz do seu chart Helm. Ele conterá todos os outros arquivos e diretórios relacionados ao chart.</P> </LI> <LI> <P><CODE>Arquivo Chart.yaml:</CODE> Este arquivo YAML contém informações sobre o chart, como nome, versão, descrição e outros metadados.</P> </LI> <LI> <P><CODE>Diretório charts:</CODE> Este diretório é usado para armazenar dependências de charts, caso o chart “helm-weather” dependa de outros charts.</P> </LI> <LI> <P><CODE>Diretório templates:</CODE> Este diretório é onde você pode definir os modelos de recursos do Kubernetes que serão gerados quando você instalar o chart. Os modelos podem ser escritos em YAML e geralmente são usados para criar recursos como pods, serviços, configurações, etc.</P> </LI> <LI> <P><CODE>Arquivo values.yaml:</CODE> Este arquivo contém os valores padrão que serão usados nos modelos do chart. Você pode substituir esses valores ao instalar o chart para personalizar a implantação.</P> </LI> <LI> <P><CODE>Arquivo charts/README.md:</CODE> Este é um arquivo de documentação que fornece informações sobre o chart, como seu propósito e como usá-lo.</P> </LI> <LI> <P><CODE>Arquivo README.md:</CODE> Este é um arquivo de documentação geral para o chart Helm.</P> </LI> </OL> <H2 id="community-3980279-toc-hId-1955081242">Passo 2: Criar uma API Web</H2> <P>Agora, crie um projeto de API Web usando o .NET Core:</P> <PRE><CODE>dotnet new webapi -o api-weather</CODE></PRE> <H2 id="community-3980279-toc-hId-147626779">Passo 3: Criar a imagem da aplicação</H2> <P>Adicione um Dockerfile para a sua aplicação. Você pode usar o Visual Studio Code e a extensão Docker para facilitar a criação do arquivo Docker. O Dockerfile pode ter o seguinte conteúdo:</P> <PRE><CODE>FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base WORKDIR /app EXPOSE 5001 ENV ASPNETCORE\_URLS=http://+:5001 \# Creates a non-root user with an explicit UID and adds permission to access the /app folder \# For more info, please refer to https://aka.ms/vscode-docker-dotnet-configure-containers RUN adduser -u 5678 --disabled-password --gecos "" appuser &amp;&amp; chown -R appuser /app USER appuser FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:7.0 AS build ARG configuration=Release WORKDIR /src COPY \["api-weather.csproj", "./"\] RUN dotnet restore "api-weather.csproj" COPY . . WORKDIR "/src/." RUN dotnet build "api-weather.csproj" -c $configuration -o /app/build FROM build AS publish ARG configuration=Release RUN dotnet publish "api-weather.csproj" -c $configuration -o /app/publish /p:UseAppHost=false FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT \["dotnet", "api-weather.dll"\]</CODE></PRE> <H2 id="community-3980279-toc-hId--1659827684">Passo 4: Enviar a imagem para o ACR</H2> <P>Agora, você pode enviar a imagem Docker para o Azure Container Registry (ACR) usando o Azure CLI ou o Docker:</P> <P>Usando o Azure CLI:</P> <PRE><CODE>az acr build -t api-sampe01 --registry acrhelm01 .</CODE></PRE> <P>Ou usando o Docker:</P> <PRE><CODE>az acr login -n acrhelm01 docker build -t api-sampe01 . docker tag api-sampe01 acrhelm01.azurecr.io/api-sampe01:001 docker push acrhelm01.azurecr.io/api-sampe01:001</CODE></PRE> <H2 id="community-3980279-toc-hId-827685149">Passo 5: Validar os arquivos Helm</H2> <P>Acesse o diretório <CODE>helm-weather</CODE> e valide os arquivos Helm:</P> <PRE><CODE>cd helm-weather helm template ./ --debug</CODE></PRE> <H2 id="community-3980279-toc-hId--979769314">Passo 6: Gerar o pacote Helm</H2> <P>Agora, gere o pacote Helm (arquivo tar.gz) a partir do diretório:</P> <PRE><CODE>helm package ./ -d charts</CODE></PRE> <H2 id="community-3980279-toc-hId-1507743519">Passo 7: Acesso ao cluster AKS</H2> <P>Certifique-se de que você tenha acesso ao cluster AKS onde deseja implantar o aplicativo. Você pode usar o Azure CLI para configurar o acesso:</P> <PRE><CODE>az aks get-credentials --resource-group akshelmspoc --name akshelm01</CODE></PRE> <H2 id="community-3980279-toc-hId-1374058795">Passo 8: Instalar o pacote no Cluster</H2> <P>Agora, você pode implantar o pacote Helm no seu cluster AKS:</P> <PRE><CODE>helm upgrade helm-weather .\\charts\\helm-weather-0.1.0.tgz --namespace sample01 --create-namespace --install</CODE></PRE> <H2 id="community-3980279-toc-hId--433395668">Passo 9: Verificar o resultado</H2> <P>Após a implantação, você pode verificar o status dos recursos no cluster AKS usando o seguinte comando:</P> <PRE><CODE>kubectl get all -n sample01</CODE></PRE> <P>Você também pode analisar os detalhes de um pod específico:</P> <PRE><CODE>kubectl describe pod helm-weather-7767995446-jchs6 -n sample01</CODE></PRE> <P>Podemos ver a imagem do nginx:</P> <PRE><CODE>Name: helm-weather-7767995446-jchs6 Namespace: sample01 Priority: 0 Service Account: helm-weather Node: aks-agentpool-30542430-vmss000002/10.224.0.5 Start Time: Wed, 27 Sep 2023 11:15:53 -0300 Labels: app.kubernetes.io/instance=helm-weather app.kubernetes.io/name=helm-weather pod-template-hash=7767995446 Annotations: cni.projectcalico.org/containerID: 2273b655dd36ca0d3daaa722cab5a3ce8fd60b463f47fa249be62d9ec75ec6de cni.projectcalico.org/podIP: 10.244.1.8/32 cni.projectcalico.org/podIPs: 10.244.1.8/32 Status: Running IP: 10.244.1.8 IPs: IP: 10.244.1.8 Controlled By: ReplicaSet/helm-weather-7767995446 Containers: helm-weather: Container ID: containerd://d07e997d2413a4ca353ce5b3cd6939426127920850c5ede5c740e82d1786065c Image: nginx:1.16.0 Image ID: docker.io/library/nginx@sha256:3e373fd5b8d41baeddc24be311c5c6929425c04cabf893b874ac09b72a798010 Port: 80/TCP Host Port: 0/TCP State: Running Started: Wed, 27 Sep 2023 11:15:57 -0300 Ready: True Restart Count: 0 Liveness: http-get http://:http/ delay=0s timeout=1s period=10s #success=1 #failure=3 Readiness: http-get http://:http/ delay=0s timeout=1s period=10s #success=1 #failure=3 Environment: &lt;none&gt; Mounts: /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-vq2xl (ro) Conditions: Type Status Initialized True Ready True ContainersReady True PodScheduled True Volumes: kube-api-access-vq2xl: Type: Projected (a volume that contains injected data from multiple sources) TokenExpirationSeconds: 3607 ConfigMapName: kube-root-ca.crt ConfigMapOptional: &lt;nil&gt; DownwardAPI: true QoS Class: BestEffort Node-Selectors: &lt;none&gt; Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 4m22s default-scheduler Successfully assigned sample01/helm-weather-7767995446-jchs6 to aks-agentpool-30542430-vmss000002 Normal Pulling 4m21s kubelet Pulling image "nginx:1.16.0" Normal Pulled 4m18s kubelet Successfully pulled image "nginx:1.16.0" in 3.022874455s (3.022881155s including waiting) Normal Created 4m18s kubelet Created container helm-weather Normal Started 4m18s kubelet Started container helm-weather</CODE></PRE> <H2 id="community-3980279-toc-hId-2054117165">Passo 10: Configurar o arquivo <CODE>values.yaml</CODE></H2> <P>Edite o arquivo <CODE>values.yaml</CODE> para especificar a imagem Docker e as verificações de liveness e readiness:</P> <PRE><CODE>image: repository: acrhelm01.azurecr.io/api-sampe01 pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. tag: "001"</CODE></PRE> <H2 id="community-3980279-toc-hId-246662702">Configurar o livenessProbe e o readinessProbe</H2> <P>no arquivo deployment.yaml</P> <PRE><CODE>livenessProbe: httpGet: path: {{ .Values.livenessProbe.httpGet.path }} port: {{ .Values.livenessProbe.httpGet.port }} readinessProbe: httpGet: path: {{ .Values.readinessProbe.httpGet.path }} port: {{ .Values.readinessProbe.httpGet.port }}</CODE></PRE> <P>e no arquivo de values.yaml</P> <PRE><CODE>livenessProbe: httpGet: path: /WeatherForecast port: 5001 readinessProbe: httpGet: path: /WeatherForecast port: 5001</CODE></PRE> <P>Em resumo, essas configurações permitem que os operadores personalizem os valores das configurações do aplicativo quando implantam o chart Helm. As configurações padrão são definidas no arquivo values.yaml, mas podem ser substituídas por valores específicos de implantação, dependendo das necessidades do ambiente em que o chart é implantado. Isso é útil para garantir que o aplicativo seja implantado com configurações adequadas para cada implantação.</P> <H2 id="community-3980279-toc-hId--1560791761">Configurar o Servico ClusterIP</H2> <P>no arquivo service.yaml</P> <PRE><CODE>targetPort: {{ .Values.service.targetPort }}</CODE></PRE> <P>e no arquivo values.yaml</P> <PRE><CODE>service: type: LoadBalancer port: 80 targetPort: 5001</CODE></PRE> <P>Valida</P> <PRE><CODE>helm template ./ --debug</CODE></PRE> <P>gera outro pacote</P> <PRE><CODE>helm package ./ -d charts --version 0.1.1</CODE></PRE> <H2 id="community-3980279-toc-hId-926721072">Passo 11: Atualizar o Deploy</H2> <P>Se você fizer alterações nos valores do Helm, atualize o deploy:</P> <PRE><CODE>helm upgrade helm-weather .\\charts\\helm-weather-0.1.1.tgz --namespace sample01 --create-namespace --install</CODE></PRE> <H2 id="community-3980279-toc-hId--880733391">Passo 12: Verificar os Pods</H2> <P>Verifique o estado dos pods após a atualização:</P> <PRE><CODE>kubectl get all -n sample01</CODE></PRE> <P>subiu</P> <PRE><CODE>NAME READY STATUS RESTARTS AGE pod/helm-weather-57488847d8-jdxmz 1/1 Running 0 34m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/helm-weather ClusterIP 10.0.201.39 &lt;none&gt; 80/TCP 128m NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/helm-weather 1/1 1 1 128m NAME DESIRED CURRENT READY AGE replicaset.apps/helm-weather-568c9ddbd 0 0 0 101m replicaset.apps/helm-weather-57488847d8 1 1 1 34m replicaset.apps/helm-weather-646c667ccd 0 0 0 115m replicaset.apps/helm-weather-7767995446 0 0 0 128m replicaset.apps/helm-weather-7fcd86b448 0 0 0 109m</CODE></PRE> <P>Também podemos automatizar esse processo usando o Azure devops, para isso vamos precisar de duas services connections:</P> <OL type="1"> <LI>docker registry</LI> <LI>Azure Resource manager</LI> </OL> <P>e das tasks de:</P> <OL type="1"> <LI>Docker</LI> <LI>HelmDeploy</LI> <LI>HelmInstaller</LI> <LI>HelmDeploy</LI> </OL> <P>mais ou menos isso</P> <PRE><CODE>trigger: \- none stages: \- stage: Build displayName: Build Artifact jobs: - job: Build pool: vmImage: ubuntu-latest displayName: Build Artifact steps: - task: Docker@2 inputs: containerRegistry: 'acrhelm01' repository: 'api-weather' command: 'buildAndPush' Dockerfile: 'sample01/api-weather/Dockerfile' tags: '$(Build.BuildId)' - bash: | helm template ./sample01/helm-weather failOnStderr: true displayName: 'Helm template - renderiza o template, validacao previa' - task: HelmDeploy@0 inputs: command: 'package' chartPath: '././sample01/helm-weather' chartVersion: '$(Build.BuildId)' - task: CopyFiles@2 inputs: Contents: | helm-weather/\*\*/\*.tgz TargetFolder: '$(Build.ArtifactStagingDirectory)' - task: PublishPipelineArtifact@1 inputs: targetPath: '$(Build.ArtifactStagingDirectory)' artifact: 'drop' publishLocation: 'pipeline' \- stage: Deploy displayName: Deploy dependsOn: Build condition: succeeded() jobs: - deployment: DeployWeb displayName: deploy Web App pool: vmImage: 'Ubuntu-latest' environment: 'aks' strategy: runOnce: deploy: steps: - download: current artifact: drop - task: HelmInstaller@1 displayName: 'Helm install' inputs: helmVersionToInstall: 3.11.2 - task: HelmDeploy@0 inputs: connectionType: 'Azure Resource Manager' azureSubscription: 'akshelmpoc' azureResourceGroup: 'akshelmspoc' kubernetesCluster: 'akshelm01' namespace: 'sample01' command: 'upgrade' chartType: 'FilePath' chartPath: '$(Pipeline.Workspace)/drop/helm-weather-$(Build.BuildID).tgz' chartVersion: '$(Build.BuildId)' releaseName: 'helm-weather' overrideValues: 'image.repository=acrhelm01.azurecr.io/api-weather,image.tag=$(Build.BuildID)'</CODE></PRE> <P>verificar</P> <PRE><CODE> kubectl get all -n sample01</CODE></PRE> <P>&nbsp;</P> <PRE class="ow oo ly op bo oq ba bj"><SPAN class="or ml ev ly b bf os ot l ou ov" data-selectable-paragraph="">NAME READY STATUS RESTARTS AGE<BR />pod/helm-weather-77594b48c5-ql96l 1/1 Running 0 24s<BR /><BR />NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE<BR />service/helm-weather LoadBalancer 10.0.65.168 20.85.198.43 80:30330/TCP 6m45s<BR /><BR />NAME READY UP-TO-DATE AVAILABLE AGE<BR />deployment.apps/helm-weather 1/1 1 1 6m44s<BR /><BR />NAME DESIRED CURRENT READY AGE<BR />replicaset.apps/helm-weather-568c9ddbd 0 0 0 6m45s<BR />replicaset.apps/helm-weather-57488847d8 0 0 0 6m45s<BR />replicaset.apps/helm-weather-646c667ccd 0 0 0 6m45s<BR />replicaset.apps/helm-weather-6b5486b6d6 0 0 0 6m45s<BR />replicaset.apps/helm-weather-77594b48c5 1 1 1 25s<BR />replicaset.apps/helm-weather-7767995446 0 0 0 6m45s<BR />replicaset.apps/helm-weather-7fcd86b448 0 0 0 6m45s</SPAN></PRE> <P>&nbsp;</P> <P><A href="http://20.85.198.43/WeatherForecast" target="_blank" rel="noopener nofollow noreferrer">http://20.85.198.43/WeatherForecast</A></P> <H2 id="community-3980279-toc-hId-1606779442">Conclusão</H2> <P>Com isso, você configurou com sucesso a implantação de uma aplicação de API web no Azure Kubernetes Service usando Helm e o Azure Container Registry. Além disso, você também automatizou o processo usando o Azure DevOps para maior eficiência</P> <H2 id="community-3980279-toc-hId--200675021">Referências</H2> <OL type="1"> <LI><A href="https://helm.sh/" target="_blank" rel="noopener nofollow noreferrer">Helm</A></LI> <LI><A href="https://learn.microsoft.com/pt-br/azure/aks/quickstart-helm?tabs=azure-cli" target="_blank" rel="noopener noreferrer">Desenvolver no Serviço de Kubernetes do Azure (AKS) com o Helm — Azure Kubernetes Service | Microsoft Learn</A></LI> </OL></div><div class="styles_d-flex__7__Y_ styles_align-items-center__OKdH0"><div class="styles_lia-g-text-xs__xMXX5 styles_lia-g-divider__X68T2 MessageRevision_lia-revision__75lOM"><div class="styles_d-flex__7__Y_ styles_align-items-center__OKdH0"><span data-testid="MessageTimestamp" class="styles_text-body__F7QRV MessageRevision_lia-publish-date__sB2l6">Updated <span title="November 13, 2023 at 3:05 PM">Nov 13, 2023</span></span></div><span data-testid="MessageVersion" class="MessageRevision_lia-revision-text__FVsnQ styles_rounded-sm__gAfAD">Version 1.0</span></div></div><div class="MessageViewStandard_lia-footer__H7yx3 MessageViewStandard_lia-footer-divider__bGc9s"><div class="MessageViewStandard_lia-footer-left__uxaFW MessageViewStandard_lia-has-tags__rcZNi"></div><div class="MessageViewStandard_lia-footer-right__kqY6e"><div class="styles_d-flex__7__Y_ styles_align-items-center__OKdH0"><button data-testid="ReplyButton" aria-label="Comment" type="button" class="styles_lia-g-action-btn__70w24 MessageReplyButton_lia-reply-btn__2ZU73 styles_btn__1HFm0 styles_btn-link__Qn59s"><svg class="styles_lia-g-icon-size-16__V9Va_ Icon_lia-size-16__D8_m2 Icon_lia-icon__on1Gb" data-testid="Icon" style="--lia-local-icon-color:var(--lia-bs-body-color);--lia-local-icon-color-h:var(--lia-bs-body-color-h);--lia-local-icon-color-s:var(--lia-bs-body-color-s);--lia-local-icon-color-l:var(--lia-bs-body-color-l)" aria-hidden="true"><title>Comment</title><use href="/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/comment.svg#comment"></use></svg><span class="MessageReplyButton_lia-reply-text__7NgWG">Comment</span></button></div></div></div><article class="MessageAuthorBio_lia-footer-wrapper__c0isy" data-testid="MessageAuthorBio"><div class="styles_d-flex__7__Y_ styles_align-items-center__OKdH0"><a data-hovercard-trigger="true" data-testid="userLink" class="styles_align-self-start__a5Ju_" aria-label="View Profile: wdossantos" aria-describedby="UserHoverCard-1171673" target="_self" href="/users/wdossantos/1171673"><span class="UserAvatar_lia-avatar__HFfcv styles_lia-g-icon-size-50__HExtr" data-testid="userAvatar"><img src="https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/dS0xMTcxNjczLTMyNTM2MGkwNjkyMDE1OTQ0RkQ5MTM0?image-dimensions=50x50" alt="wdossantos&#x27;s avatar" class="UserAvatar_lia-avatar-img__CUPwZ" aria-hidden="false"/></span></a><div class="MessageAuthorBio_lia-footer-details-wrapper__wmghu"><div class="MessageAuthorBio_lia-footer-details__A_A8m"><div class="styles_d-flex__7__Y_ styles_align-items-center__OKdH0"><a data-hovercard-trigger="true" data-testid="userLink" class="styles_lia-g-divider__X68T2 MessageAuthorBio_lia-author-login__HeCwv" aria-label="View Profile: wdossantos" aria-describedby="UserHoverCard-1171673" target="_self" href="/users/wdossantos/1171673">wdossantos</a><div class="MessageAuthorBio_lia-user-rank__Tdh52" data-testid="userRank"><div class="UserRankLabel_lia-rank__CqPss"><img class="UserRankLabel_lia-rank-icon__g_uVM" src="https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/cmstNC05WEo0blc?image-dimensions=100x16&amp;constrain-image=true" alt="Icon for Microsoft rank"/><span style="border-color:#333333;color:#333333" class="UserRankLabel_lia-is-boxed__Ykpfe UserRankLabel_lia-rank-label__epEUI UserRankLabel_lia-is-outline__q_ZVs"><span class="UserRankLabel_text-break__RX8Tt styles_lia-g-clamp__dg3Sg">Microsoft</span></span></div></div></div><div class="MessageAuthorBio_lia-footer-description__6mbqx" data-testid="UserRegistrationDate">Joined <!-- -->September 30, 2021</div></div><div class="MessageAuthorBio_lia-action__6MD3u styles_d-none__wDjqp"><button title="Send Message" data-testid="SendMessage-Button" aria-label="Send Message" tabindex="0" type="button" class="styles_btn__1HFm0 styles_btn-secondary__Ust3k">Send Message</button></div><div class="MessageAuthorBio_lia-action__6MD3u"><a data-testid="userLink" class="styles_btn__1HFm0 styles_btn-secondary__Ust3k" aria-label="View Profile: wdossantos" target="_self" href="/users/wdossantos/1171673">View Profile</a></div></div></div><div class="styles_d-flex__7__Y_ styles_align-items-center__OKdH0"><a data-hovercard-trigger="true" data-testid="nodeLink" target="_self" class="styles_align-self-start__a5Ju_" aria-label="Go to Desenvolvedores BR board" href="/category/regionalblogs/blog/desenvolvedoresbr"><div class="styles_lia-g-icon-size-50__HExtr Icon_lia-size-50__PduO6 Icon_lia-frame__Que5I" style="--lia-local-icon-color:var(--lia-blog-color);--lia-local-icon-color-h:var(--lia-blog-color-h);--lia-local-icon-color-s:var(--lia-blog-color-s);--lia-local-icon-color-l:var(--lia-blog-color-l)"><svg class="Icon_lia-icon__on1Gb" data-testid="Icon" aria-label="Content Type Blog icon"><use href="/static/graphics/processed/N-kiPDUFZiI-TFPgjoYOcYs5f-g/content-blog.svg#content-blog"></use></svg></div></a><div class="MessageAuthorBio_lia-footer-details-wrapper__wmghu"><div class="MessageAuthorBio_lia-footer-details__A_A8m"><a data-hovercard-trigger="true" data-testid="nodeLink" target="_self" class="MessageAuthorBio_lia-node-title__XQdEJ" aria-label="Place Desenvolvedores BR" href="/category/regionalblogs/blog/desenvolvedoresbr"><span class="styles_lia-g-mb-0__AIhaX NodeTitle_lia-title-and-icon__wEuTM" data-testid="NodeTitle">Desenvolvedores BR </span></a><div class="MessageAuthorBio_lia-footer-description__6mbqx">Follow this blog board to get notified when there&#x27;s new activity</div></div><div class="MessageAuthorBio_lia-action__6MD3u"></div></div></div></article></div></section></article></div></div><div></div></div></div></div></div></div></section><section class="QuiltSection_lia-section-spacing__WK9AB" data-testid="QuiltSection-section-1729184836777"><div data-testid="ThemedContainer" class="ThemedContainer_lia-fixed-container__MPYgN styles_container__6wTQq"><div class="styles_row__sjnST"><div style="--lia-content-item-border:none" class="QuiltSection_lia-column__iNmDj styles_col-lg-8__V2wNr"></div><div style="--lia-content-item-border:1px solid hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)" class="QuiltSection_lia-column__iNmDj styles_col-lg-4__6NfeT"><div class="styles_lia-g-section-widget__aHMgk"><article class="CustomComponent_lia-article__sQ7z4 CustomComponent_lia-with-background__LfN1g" data-testid="CustomComponent"><header class="styles_lia-g-mb-25__5lrHe"><h3 class="styles_h5__q_74t styles_mb-0__dO7t3">Share</h3></header><section><div class="custom_widget_Social_Sharing_social-share_c7xxz_1"> <ul class="custom_widget_Social_Sharing_sharing-options_c7xxz_2"> <li> <a class="custom_widget_Social_Sharing_social-share-linkedin_c7xxz_18" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=https://techcommunity.microsoft.com" target="_blank"> <img alt="Share to LinkedIn" src="https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/components/Social_Sharing/assets/social-share-linkedin.svg"/> </a> </li> <li> <a class="custom_widget_Social_Sharing_social-share-facebook_c7xxz_23" href="http://www.facebook.com/share.php?u=https://techcommunity.microsoft.com" target="_blank"> <img alt="Share to Facebook" src="https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/components/Social_Sharing/assets/social-share-facebook.svg"/> </a> </li> <li> <a class="custom_widget_Social_Sharing_social-share-x_c7xxz_28" href="http://twitter.com/share?text=Check out this post on the Microsoft Tech Community : BlogMessagePage&amp;url=https://techcommunity.microsoft.com" target="_blank"> <img alt="Share to X" src="https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/components/Social_Sharing/assets/social-share-x.svg"/> </a> </li> <li> <a class="custom_widget_Social_Sharing_social-share-reddit_c7xxz_38" href="http://www.reddit.com/submit?url=https://techcommunity.microsoft.com&amp;title=Check%20out%20this%20post%20on%20Microsoft%20Tech%20Community" target="_blank"> <img alt="Share to Reddit" src="https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/components/Social_Sharing/assets/social-share-reddit.svg"/> </a> </li> <li> <a class="custom_widget_Social_Sharing_social-share-email_c7xxz_43" href="mailto:?subject=&amp;body=I found this on the Microsoft Tech Community and wanted to share it with you, check it out : https://techcommunity.microsoft.com" target="_blank"> <img alt="Share to Email" src="https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/components/Social_Sharing/assets/social-share-email.svg"/> </a> </li> <li class="custom_widget_Social_Sharing_social-share-rss_c7xxz_33" id="RSS"> <a class="custom_widget_Social_Sharing_social-share-rss_c7xxz_33" href="/t5/s/gxcuf89792/rss/board?board.id=DesenvolvedoresBR" target="_blank"> <img alt="Subscribe to RSS" src="https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/components/Social_Sharing/assets/rss.svg"/> </a> </li> </ul> </div></section></article></div></div></div></div></section></main><footer data-testid="QuiltWrapperSection"><div class="CustomComponent_lia-wrapper__7IqeO" style="--lia-local-bg-color:transparent"><article class="CustomComponent_lia-article__sQ7z4" data-testid="CustomComponent"><section><footer id="uhf-footer" class="custom_widget_MicrosoftFooter_c-uhff_f95yq_12 custom_widget_MicrosoftFooter_context-uhf_f95yq_1" data-uhf-mscc-rq="false" data-footer-footprint="/MSTechnical/MSTechnicalFooter, fromService: True" data-m="{&quot;cN&quot;:&quot;Uhf footer_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;m1r1a2&quot;}"> <nav class="custom_widget_MicrosoftFooter_c-uhff-nav_f95yq_35" aria-label="Footer Resource links" data-m="{&quot;cN&quot;:&quot;Footer nav_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c1c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c1m1r1a2&quot;}"> <div class="custom_widget_MicrosoftFooter_c-uhff-nav-row_f95yq_57"> <div class="custom_widget_MicrosoftFooter_c-uhff-nav-group_f95yq_58" data-m="{&quot;cN&quot;:&quot;footerNavColumn1_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c1c1c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c1c1m1r1a2&quot;}"> <div class="custom_widget_MicrosoftFooter_c-heading-4_f95yq_49" role="heading" aria-level="2">What&#x27;s new</div> <ul class="custom_widget_MicrosoftFooter_c-list_f95yq_78 custom_widget_MicrosoftFooter_f-bare_f95yq_78"> <li> <a aria-label="Surface Pro 9 What&#x27;s new" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/d/surface-pro-9/93VKD8NP4FVK" data-m="{&quot;cN&quot;:&quot;Footer_WhatsNew_NewSurfacePro8_nav&quot;,&quot;id&quot;:&quot;n1c1c1c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c1c1c1m1r1a2&quot;}">Surface Pro 9</a> </li> <li> <a aria-label="Surface Laptop 5 What&#x27;s new" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/d/surface-laptop-5/8XN49V61S1BN" data-m="{&quot;cN&quot;:&quot;Footer_WhatsNew_SurfaceLaptop2_nav&quot;,&quot;id&quot;:&quot;n2c1c1c1m1r1a2&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c1c1c1m1r1a2&quot;}">Surface Laptop 5</a> </li> <li> <a aria-label="Surface Studio 2+ What&#x27;s new" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/d/surface-studio-2plus/8VLFQC3597K4" data-m="{&quot;cN&quot;:&quot;Footer_WhatsNew_SurfaceStudio_nav&quot;,&quot;id&quot;:&quot;n3c1c1c1m1r1a2&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c1c1c1m1r1a2&quot;}">Surface Studio 2+</a> </li> <li> <a aria-label="Surface Laptop Go 2 What&#x27;s new" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/d/surface-laptop-go-2/8PGLPV76MJHN" data-m="{&quot;cN&quot;:&quot;Footer_WhatsNew_SurfaceLaptopGo_nav&quot;,&quot;id&quot;:&quot;n4c1c1c1m1r1a2&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c1c1c1m1r1a2&quot;}">Surface Laptop Go 2</a> </li> <li> <a aria-label="Surface Laptop Studio What&#x27;s new" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/d/surface-laptop-studio/8SRDF62SWKPF" data-m="{&quot;cN&quot;:&quot;Footer_WhatsNew_SurfaceLaptopStudio_nav&quot;,&quot;id&quot;:&quot;n5c1c1c1m1r1a2&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c1c1c1m1r1a2&quot;}">Surface Laptop Studio</a> </li> <li> <a aria-label="Surface Duo 2 What&#x27;s new" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/d/surface-duo-2/9408KGXP4XJL" data-m="{&quot;cN&quot;:&quot;Footer_WhatsNew_SurfaceDuo2_nav&quot;,&quot;id&quot;:&quot;n6c1c1c1m1r1a2&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c1c1c1m1r1a2&quot;}">Surface Duo 2</a> </li> <li> <a aria-label="Microsoft 365 What&#x27;s new" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/microsoft-365" data-m="{&quot;cN&quot;:&quot;Whatsnew_Microsoft365_nav&quot;,&quot;id&quot;:&quot;n7c1c1c1m1r1a2&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c1c1c1m1r1a2&quot;}">Microsoft 365</a> </li> <li> <a aria-label="Windows 11 apps What&#x27;s new" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/windows/windows-11-apps" data-m="{&quot;cN&quot;:&quot;Footer_WhatsNew_Windows_11_apps_nav&quot;,&quot;id&quot;:&quot;n8c1c1c1m1r1a2&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c1c1c1m1r1a2&quot;}">Windows 11 apps</a> </li> </ul> </div> <div class="custom_widget_MicrosoftFooter_c-uhff-nav-group_f95yq_58" data-m="{&quot;cN&quot;:&quot;footerNavColumn2_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c2c1c1m1r1a2&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c1c1m1r1a2&quot;}"> <div class="custom_widget_MicrosoftFooter_c-heading-4_f95yq_49" role="heading" aria-level="2">Microsoft Store</div> <ul class="custom_widget_MicrosoftFooter_c-list_f95yq_78 custom_widget_MicrosoftFooter_f-bare_f95yq_78"> <li> <a aria-label="Account profile Microsoft Store" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://account.microsoft.com/" data-m="{&quot;cN&quot;:&quot;Footer_StoreandSupport_AccountProfile_nav&quot;,&quot;id&quot;:&quot;n1c2c1c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c2c1c1m1r1a2&quot;}">Account profile</a> </li> <li> <a aria-label="Download Center Microsoft Store" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/download" data-m="{&quot;cN&quot;:&quot;Footer_StoreandSupport_DownloadCenter_nav&quot;,&quot;id&quot;:&quot;n2c2c1c1m1r1a2&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c2c1c1m1r1a2&quot;}">Download Center</a> </li> <li> <a aria-label="Microsoft Store support Microsoft Store" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://go.microsoft.com/fwlink/?linkid=2139749" data-m="{&quot;cN&quot;:&quot;Footer_StoreandSupport_SalesAndSupport_nav&quot;,&quot;id&quot;:&quot;n3c2c1c1m1r1a2&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c2c1c1m1r1a2&quot;}">Microsoft Store support</a> </li> <li> <a aria-label="Returns Microsoft Store" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://go.microsoft.com/fwlink/p/?LinkID=824764&amp;clcid=0x409" data-m="{&quot;cN&quot;:&quot;MicrosoftStore_ExtendedHolidayReturns_nav&quot;,&quot;id&quot;:&quot;n4c2c1c1m1r1a2&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c2c1c1m1r1a2&quot;}">Returns</a> </li> <li> <a aria-label="Order tracking Microsoft Store" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://account.microsoft.com/orders" data-m="{&quot;cN&quot;:&quot;Footer_StoreandSupport_OrderTracking_nav&quot;,&quot;id&quot;:&quot;n5c2c1c1m1r1a2&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c2c1c1m1r1a2&quot;}">Order tracking</a> </li> <li> <a aria-label="Virtual workshops and training Microsoft Store" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/store/workshops-training-and-events?icid=vl_uf_932020" data-m="{&quot;cN&quot;:&quot;Footer_StoreandSupport_StoreLocations_nav&quot;,&quot;id&quot;:&quot;n6c2c1c1m1r1a2&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c2c1c1m1r1a2&quot;}">Virtual workshops and training</a> </li> <li> <a aria-label="Microsoft Store Promise Microsoft Store" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/store/b/why-microsoft-store?icid=footer_why-msft-store_7102020" data-m="{&quot;cN&quot;:&quot;Footer_StoreandSupport_MicrosoftPromise_nav&quot;,&quot;id&quot;:&quot;n7c2c1c1m1r1a2&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c2c1c1m1r1a2&quot;}">Microsoft Store Promise</a> </li> <li> <a aria-label="Flexible Payments Microsoft Store" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/store/b/payment-financing-options?icid=footer_financing_vcc" data-m="{&quot;cN&quot;:&quot;Footer_StoreandSupport_Financing_nav&quot;,&quot;id&quot;:&quot;n8c2c1c1m1r1a2&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c2c1c1m1r1a2&quot;}">Flexible Payments</a> </li> </ul> </div> <div class="custom_widget_MicrosoftFooter_c-uhff-nav-group_f95yq_58" data-m="{&quot;cN&quot;:&quot;footerNavColumn3_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c3c1c1m1r1a2&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c1c1m1r1a2&quot;}"> <div class="custom_widget_MicrosoftFooter_c-heading-4_f95yq_49" role="heading" aria-level="2">Education</div> <ul class="custom_widget_MicrosoftFooter_c-list_f95yq_78 custom_widget_MicrosoftFooter_f-bare_f95yq_78"> <li> <a aria-label="Microsoft in education Education" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/education" data-m="{&quot;cN&quot;:&quot;Footer_Education_MicrosoftInEducation_nav&quot;,&quot;id&quot;:&quot;n1c3c1c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c3c1c1m1r1a2&quot;}">Microsoft in education</a> </li> <li> <a aria-label="Devices for education Education" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/education/devices/overview" data-m="{&quot;cN&quot;:&quot;Footer_Education_DevicesforEducation_nav&quot;,&quot;id&quot;:&quot;n2c3c1c1m1r1a2&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c3c1c1m1r1a2&quot;}">Devices for education</a> </li> <li> <a aria-label="Microsoft Teams for Education Education" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/education/products/teams" data-m="{&quot;cN&quot;:&quot;Footer_Education_MicrosoftTeamsforEducation_nav&quot;,&quot;id&quot;:&quot;n3c3c1c1m1r1a2&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c3c1c1m1r1a2&quot;}">Microsoft Teams for Education</a> </li> <li> <a aria-label="Microsoft 365 Education Education" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/education/buy-license/microsoft365" data-m="{&quot;cN&quot;:&quot;Footer_Education_Microsoft365Education_nav&quot;,&quot;id&quot;:&quot;n4c3c1c1m1r1a2&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c3c1c1m1r1a2&quot;}">Microsoft 365 Education</a> </li> <li> <a aria-label="Education consultation appointment Education" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/store/b/business-consultation?tab=educationconsultation&amp;icid=CNavfooter_educationconsultation" data-m="{&quot;cN&quot;:&quot;Footer_Education_ConsultationAppointment_nav&quot;,&quot;id&quot;:&quot;n5c3c1c1m1r1a2&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c3c1c1m1r1a2&quot;}">Education consultation appointment</a> </li> <li> <a aria-label="Educator training and development Education" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://education.microsoft.com/" data-m="{&quot;cN&quot;:&quot;Footer_Education_EducatorTrainingDevelopment_nav&quot;,&quot;id&quot;:&quot;n6c3c1c1m1r1a2&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c3c1c1m1r1a2&quot;}">Educator training and development</a> </li> <li> <a aria-label="Deals for students and parents Education" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/store/b/education" data-m="{&quot;cN&quot;:&quot;Footer_Education_DealsForStudentsandParents_nav&quot;,&quot;id&quot;:&quot;n7c3c1c1m1r1a2&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c3c1c1m1r1a2&quot;}">Deals for students and parents</a> </li> <li> <a aria-label="Azure for students Education" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://azure.microsoft.com/en-us/free/students/" data-m="{&quot;cN&quot;:&quot;Footer_Azureforstudents_nav&quot;,&quot;id&quot;:&quot;n8c3c1c1m1r1a2&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c3c1c1m1r1a2&quot;}">Azure for students</a> </li> </ul> </div> </div> <div class="custom_widget_MicrosoftFooter_c-uhff-nav-row_f95yq_57"> <div class="custom_widget_MicrosoftFooter_c-uhff-nav-group_f95yq_58" data-m="{&quot;cN&quot;:&quot;footerNavColumn4_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c4c1c1m1r1a2&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c1c1m1r1a2&quot;}"> <div class="custom_widget_MicrosoftFooter_c-heading-4_f95yq_49" role="heading" aria-level="2">Business</div> <ul class="custom_widget_MicrosoftFooter_c-list_f95yq_78 custom_widget_MicrosoftFooter_f-bare_f95yq_78"> <li> <a aria-label="Microsoft Cloud Business" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/microsoft-cloud" data-m="{&quot;cN&quot;:&quot;Footer_Business_Microsoft_Cloud_nav&quot;,&quot;id&quot;:&quot;n1c4c1c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c4c1c1m1r1a2&quot;}">Microsoft Cloud</a> </li> <li> <a aria-label="Microsoft Security Business" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/security" data-m="{&quot;cN&quot;:&quot;Footer_Business_Microsoft Security_nav&quot;,&quot;id&quot;:&quot;n2c4c1c1m1r1a2&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c4c1c1m1r1a2&quot;}">Microsoft Security</a> </li> <li> <a aria-label="Dynamics 365 Business" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://dynamics.microsoft.com/en-us/" data-m="{&quot;cN&quot;:&quot;Footer_Business_MicrosoftDynamics365_nav&quot;,&quot;id&quot;:&quot;n3c4c1c1m1r1a2&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c4c1c1m1r1a2&quot;}">Dynamics 365</a> </li> <li> <a aria-label="Microsoft 365 Business" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/microsoft-365/business/" data-m="{&quot;cN&quot;:&quot;More_Business_Microsoft365_nav&quot;,&quot;id&quot;:&quot;n4c4c1c1m1r1a2&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c4c1c1m1r1a2&quot;}">Microsoft 365</a> </li> <li> <a aria-label="Microsoft Power Platform Business" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://powerplatform.microsoft.com/en-us/" data-m="{&quot;cN&quot;:&quot;Footer_DeveloperAndIT_Power Platform_nav&quot;,&quot;id&quot;:&quot;n5c4c1c1m1r1a2&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c4c1c1m1r1a2&quot;}">Microsoft Power Platform</a> </li> <li> <a aria-label="Microsoft Teams Business" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/microsoft-teams/group-chat-software" data-m="{&quot;cN&quot;:&quot;Footer_Business_Microsoft365_nav&quot;,&quot;id&quot;:&quot;n6c4c1c1m1r1a2&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c4c1c1m1r1a2&quot;}">Microsoft Teams</a> </li> <li> <a aria-label="Microsoft Industry Business" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/industry" data-m="{&quot;cN&quot;:&quot;Footer_Business_MicrosoftIndustry_nav&quot;,&quot;id&quot;:&quot;n7c4c1c1m1r1a2&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c4c1c1m1r1a2&quot;}">Microsoft Industry</a> </li> <li> <a aria-label="Small Business Business" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/store/b/business?icid=CNavBusinessStore" data-m="{&quot;cN&quot;:&quot;Footer_Business-SmallBusiness_nav&quot;,&quot;id&quot;:&quot;n8c4c1c1m1r1a2&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c4c1c1m1r1a2&quot;}">Small Business</a> </li> </ul> </div> <div class="custom_widget_MicrosoftFooter_c-uhff-nav-group_f95yq_58" data-m="{&quot;cN&quot;:&quot;footerNavColumn5_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c5c1c1m1r1a2&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c1c1m1r1a2&quot;}"> <div class="custom_widget_MicrosoftFooter_c-heading-4_f95yq_49" role="heading" aria-level="2">Developer &amp; IT</div> <ul class="custom_widget_MicrosoftFooter_c-list_f95yq_78 custom_widget_MicrosoftFooter_f-bare_f95yq_78"> <li> <a aria-label="Azure Developer &amp; IT" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://azure.microsoft.com/en-us/" data-m="{&quot;cN&quot;:&quot;Footer_Enterprise_MicrosoftAzure_nav&quot;,&quot;id&quot;:&quot;n1c5c1c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c5c1c1m1r1a2&quot;}">Azure</a> </li> <li> <a aria-label="Developer Center Developer &amp; IT" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://developer.microsoft.com/en-us/" data-m="{&quot;cN&quot;:&quot;Footer_Developer_DeveloperCenter_nav&quot;,&quot;id&quot;:&quot;n2c5c1c1m1r1a2&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c5c1c1m1r1a2&quot;}">Developer Center</a> </li> <li> <a aria-label="Documentation Developer &amp; IT" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://learn.microsoft.com/docs/" data-m="{&quot;cN&quot;:&quot;Footer_DeveloperAndIT_Documentation_nav&quot;,&quot;id&quot;:&quot;n3c5c1c1m1r1a2&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c5c1c1m1r1a2&quot;}">Documentation</a> </li> <li> <a aria-label="Microsoft Learn Developer &amp; IT" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://learn.microsoft.com/" data-m="{&quot;cN&quot;:&quot;Footer_DeveloperAndIT_MicrosoftLearn_nav&quot;,&quot;id&quot;:&quot;n4c5c1c1m1r1a2&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c5c1c1m1r1a2&quot;}">Microsoft Learn</a> </li> <li> <a aria-label="Microsoft Tech Community Developer &amp; IT" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://techcommunity.microsoft.com/" data-m="{&quot;cN&quot;:&quot;Footer_DeveloperAndIT_MicrosoftTechCommunity_nav&quot;,&quot;id&quot;:&quot;n5c5c1c1m1r1a2&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c5c1c1m1r1a2&quot;}">Microsoft Tech Community</a> </li> <li> <a aria-label="Azure Marketplace Developer &amp; IT" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://azuremarketplace.microsoft.com/en-us/" data-m="{&quot;cN&quot;:&quot;More_DeveloperAndIT_AzureMarketplace_nav&quot;,&quot;id&quot;:&quot;n6c5c1c1m1r1a2&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c5c1c1m1r1a2&quot;}">Azure Marketplace</a> </li> <li> <a aria-label="AppSource Developer &amp; IT" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://appsource.microsoft.com/en-us/" data-m="{&quot;cN&quot;:&quot;Footer_DeveloperAndIT_AppSource_nav&quot;,&quot;id&quot;:&quot;n7c5c1c1m1r1a2&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c5c1c1m1r1a2&quot;}">AppSource</a> </li> <li> <a aria-label="Visual Studio Developer &amp; IT" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://visualstudio.microsoft.com/" data-m="{&quot;cN&quot;:&quot;Footer_Developer_MicrosoftVisualStudio_nav&quot;,&quot;id&quot;:&quot;n8c5c1c1m1r1a2&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c5c1c1m1r1a2&quot;}">Visual Studio</a> </li> </ul> </div> <div class="custom_widget_MicrosoftFooter_c-uhff-nav-group_f95yq_58" data-m="{&quot;cN&quot;:&quot;footerNavColumn6_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c6c1c1m1r1a2&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c1c1m1r1a2&quot;}"> <div class="custom_widget_MicrosoftFooter_c-heading-4_f95yq_49" role="heading" aria-level="2">Company</div> <ul class="custom_widget_MicrosoftFooter_c-list_f95yq_78 custom_widget_MicrosoftFooter_f-bare_f95yq_78"> <li> <a aria-label="Careers Company" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://careers.microsoft.com/" data-m="{&quot;cN&quot;:&quot;Footer_Company_Careers_nav&quot;,&quot;id&quot;:&quot;n1c6c1c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c6c1c1m1r1a2&quot;}">Careers</a> </li> <li> <a aria-label="About Microsoft Company" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/about" data-m="{&quot;cN&quot;:&quot;Footer_Company_AboutMicrosoft_nav&quot;,&quot;id&quot;:&quot;n2c6c1c1m1r1a2&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c6c1c1m1r1a2&quot;}">About Microsoft</a> </li> <li> <a aria-label="Company news Company" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://news.microsoft.com/" data-m="{&quot;cN&quot;:&quot;Footer_Company_CompanyNews_nav&quot;,&quot;id&quot;:&quot;n3c6c1c1m1r1a2&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c6c1c1m1r1a2&quot;}">Company news</a> </li> <li> <a aria-label="Privacy at Microsoft Company" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://privacy.microsoft.com/en-us" data-m="{&quot;cN&quot;:&quot;Footer_Company_PrivacyAtMicrosoft_nav&quot;,&quot;id&quot;:&quot;n4c6c1c1m1r1a2&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c6c1c1m1r1a2&quot;}">Privacy at Microsoft</a> </li> <li> <a aria-label="Investors Company" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/investor/default.aspx" data-m="{&quot;cN&quot;:&quot;Footer_Company_Investors_nav&quot;,&quot;id&quot;:&quot;n5c6c1c1m1r1a2&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c6c1c1m1r1a2&quot;}">Investors</a> </li> <li> <a aria-label="Diversity and inclusion Company" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/diversity/" data-m="{&quot;cN&quot;:&quot;Footer_Company_DiversityAndInclusion_nav&quot;,&quot;id&quot;:&quot;n6c6c1c1m1r1a2&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c6c1c1m1r1a2&quot;}">Diversity and inclusion</a> </li> <li> <a aria-label="Accessibility Company" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/accessibility" data-m="{&quot;cN&quot;:&quot;Footer_Company_Accessibility_nav&quot;,&quot;id&quot;:&quot;n7c6c1c1m1r1a2&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c6c1c1m1r1a2&quot;}">Accessibility</a> </li> <li> <a aria-label="Sustainability Company" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/sustainability/" data-m="{&quot;cN&quot;:&quot;Footer_Company_Sustainability_nav&quot;,&quot;id&quot;:&quot;n8c6c1c1m1r1a2&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c6c1c1m1r1a2&quot;}">Sustainability</a> </li> </ul> </div> </div> </nav> <div class="custom_widget_MicrosoftFooter_c-uhff-base_f95yq_94"> <a data-m="{&quot;id&quot;:&quot;n8c1c1m1r1a2&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c1c1m1r1a2&quot;}" href="https://aka.ms/yourcaliforniaprivacychoices" class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12 custom_widget_MicrosoftFooter_c-uhff-ccpa_f95yq_107"> <svg role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 14" xml:space="preserve" height="16" width="43"> <title>California Consumer Privacy Act (CCPA) Opt-Out Icon</title> <path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"></path> <path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"></path> <path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z" style="fill:#fff"></path> <path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z" style="fill:#06f"></path> </svg> <span>Your Privacy Choices</span> </a> <nav aria-label="Microsoft corporate links"> <ul class="custom_widget_MicrosoftFooter_c-list_f95yq_78 custom_widget_MicrosoftFooter_f-bare_f95yq_78" data-m="{&quot;cN&quot;:&quot;Corp links_cont&quot;,&quot;cT&quot;:&quot;Container&quot;,&quot;id&quot;:&quot;c8c1c1m1r1a2&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c1c1m1r1a2&quot;}"> <li id="c-uhff-footer_sitemap"> <a class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://www.microsoft.com/en-us/sitemap1.aspx" data-mscc-ic="false" data-m="{&quot;cN&quot;:&quot;Footer_Sitemap_nav&quot;,&quot;id&quot;:&quot;n1c8c1c1m1r1a2&quot;,&quot;sN&quot;:1,&quot;aN&quot;:&quot;c8c1c1m1r1a2&quot;}">Sitemap</a> </li> <li id="c-uhff-footer_contactus"> <a class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://support.microsoft.com/contactus" data-mscc-ic="false" data-m="{&quot;cN&quot;:&quot;Footer_ContactUs_nav&quot;,&quot;id&quot;:&quot;n2c8c1c1m1r1a2&quot;,&quot;sN&quot;:2,&quot;aN&quot;:&quot;c8c1c1m1r1a2&quot;}">Contact Microsoft</a> </li> <li id="c-uhff-footer_privacyandcookies"> <a class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://go.microsoft.com/fwlink/?LinkId=521839" data-mscc-ic="false" data-m="{&quot;cN&quot;:&quot;Footer_PrivacyandCookies_nav&quot;,&quot;id&quot;:&quot;n3c8c1c1m1r1a2&quot;,&quot;sN&quot;:3,&quot;aN&quot;:&quot;c8c1c1m1r1a2&quot;}">Privacy </a> </li> <li class="x-hidden" id="c-uhff-footer_managecookies"> <a class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="javascript:manageConsent();" data-mscc-ic="false" data-m="{&quot;cN&quot;:&quot;Footer_ManageCookies_nav&quot;,&quot;id&quot;:&quot;n4c8c1c1m1r1a2&quot;,&quot;sN&quot;:4,&quot;aN&quot;:&quot;c8c1c1m1r1a2&quot;}">Manage cookies</a> </li> <li id="c-uhff-footer_termsofuse"> <a class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://go.microsoft.com/fwlink/?LinkID=206977" data-mscc-ic="false" data-m="{&quot;cN&quot;:&quot;Footer_TermsOfUse_nav&quot;,&quot;id&quot;:&quot;n5c8c1c1m1r1a2&quot;,&quot;sN&quot;:5,&quot;aN&quot;:&quot;c8c1c1m1r1a2&quot;}">Terms of use</a> </li> <li id="c-uhff-footer_trademarks"> <a class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://go.microsoft.com/fwlink/?linkid=2196228" data-mscc-ic="false" data-m="{&quot;cN&quot;:&quot;Footer_Trademarks_nav&quot;,&quot;id&quot;:&quot;n6c8c1c1m1r1a2&quot;,&quot;sN&quot;:6,&quot;aN&quot;:&quot;c8c1c1m1r1a2&quot;}">Trademarks</a> </li> <li id="c-uhff-footer_safetyandeco"> <a class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://go.microsoft.com/fwlink/?linkid=2196227" data-mscc-ic="false" data-m="{&quot;cN&quot;:&quot;Footer_SafetyAndEco_nav&quot;,&quot;id&quot;:&quot;n7c8c1c1m1r1a2&quot;,&quot;sN&quot;:7,&quot;aN&quot;:&quot;c8c1c1m1r1a2&quot;}">Safety &amp; eco</a> </li> <li id="c-uhff-footer_aboutourads"> <a class="custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12" href="https://choice.microsoft.com" data-mscc-ic="false" data-m="{&quot;cN&quot;:&quot;Footer_AboutourAds_nav&quot;,&quot;id&quot;:&quot;n8c8c1c1m1r1a2&quot;,&quot;sN&quot;:8,&quot;aN&quot;:&quot;c8c1c1m1r1a2&quot;}">About our ads</a> </li> <li>© Microsoft 2024</li> </ul> </nav> </div> </footer></section></article></div></footer></div><script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">{"props":{"pageProps":{"locale":"en-US","tenant":{"id":"o365.prod","enabled":true,"auroraHost":"https://techcommunity.microsoft.com","host":"https://techcommunity.microsoft.com","phase":"prod","community":"gxcuf89792","ssl":true,"basePath":"","liaContextPath":"/t5/s","sameSite":true,"useEncodedIds":false,"publicConfig":{"repoName":"o365","moduleFederationHost":"https://aurora-customization-usw2.lithium.com","mainBranchName":"main","sdkEnabled":false,"auroraAnalyticsEnabled":true,"auroraAuditEnabled":false,"auroraFeaturedWidgetsEnabled":true,"auroraFeaturedContentTopicMessagesLimit":50,"auroraFeaturedPlacesNodesLimit":50,"auroraUnreleasedSettingsEnabled":false,"googleMapsApiKey":"AIzaSyCU2qaVJD5yWJQJannmoRnvql4qTowFcrQ","labelsEnabled":true,"pendoEnabled":false,"pendoApiKey":"16d69dfe-7be6-4eb7-59b7-708c84e89099","reCaptchaV3Enabled":true,"reCaptchaV3ScoreThreshold":0.5,"reCaptchaV3SiteKey":"6LcfUxUcAAAAAH1DBxd4uJIxf5ITF4YwCRUVJHsY","supportedLanguages":["en-US","es-ES","fr-FR","ja-JP","it-IT","nl-NL","pt-BR","pt-PT","ru-RU","pl-PL","de-DE"],"trafficVisitorCookieMaxAge":31536000,"videosFileType":[".wmv",".avi",".mov",".moov",".mpg",".mpeg",".m2t",".m2v",".vob",".flv",".mp4",".mpg4",".mkv",".asf",".m4v",".m2p",".3gp",".3g2",".f4v",".mp3",".m4a",".wma",".aac"],"sitemapEnabled":true,"quiltsV2Enabled":true,"multiTemplatesEnabled":true,"localizedQuiltWrapperEnabled":false,"samlEnabled":false,"ssoAllowNormalSignon":false,"ideasEnabled":true,"occasionsEnabled":true,"oidcssEnabled":true,"oidcssPostLogoutEndpointEnabled":false,"jwtSsoEnabled":false,"multiAuthEnabled":false,"multiAuthLocalisation":false,"inviteByEmailForGrouphubsEnabled":true,"switchUserFeatureEnabled":true,"messageStatusEnabled":true,"videoEnabled":false,"externalVideoEnabled":true,"salesforceIntegrationEnabled":false,"casePortalEnabled":false,"resetPermissionsEnabled":false,"closeAccountEnabled":true,"threadSummaryLimit":-1,"maxFeaturedGuestForEvents":10,"auroraEndpointsEnabled":true,"anonymousUserDeletionEnabled":false,"poweredByLogoEnabled":true,"endpointReloadInterval":120000,"maxOpenStreamsForEndpoints":0,"endpointBranchCompareIncludeFilter":"*.js,*.json,*.graphql","showExternalVideoCookieBanner":true,"maxGuidesAndContentLimit":500,"auroraThirdPartyAnalyticsEnabled":false,"contentArchiveEnabled":true,"auroraFirehoseEnabled":false,"auroraFirehoseFilterEventsEnabled":false,"mentionsEnabled":true,"featuredGuideLimit":50},"fresh":true,"useBasicAuth":false,"baseUrl":"https://techcommunity.microsoft.com"},"routeInfo":{"path":"/blog/desenvolvedoresbr/aks--helm/3980279","pageName":"BlogMessagePage"},"csrfToken":"107bd269c3d349fb290375cf177ce713d4bb90f5c12157546cf4b5c4616bdc445afebfbaac0e44c63d8dcf56279075ba8fecd242d9203daa05bfc0abeebb9fa3","authToken":{"token":"Bearer qflopimFLzmBoOO9g/OUkS5H6fBxZ8V6JES5Mo4Jfuw=","expires":86400,"headerName":"Authorization","providerName":"OAUTH2_CC_None"},"switchUserId":null,"isCrawler":false,"apolloState":{"Community:community:gxcuf89792":{"__typename":"Community","id":"community:gxcuf89792","ssoProperties":{"__typename":"SsoProperties","ssoEnabled":{"__typename":"PolicyResult","failureReason":null},"communitySignUpUrl":"/t5/s/gxcuf89792/auth/oidcss/sso_login_redirect/provider/default","communitySignOnUrl":"/t5/s/gxcuf89792/auth/oidcss/sso_login_redirect/provider/default","communitySignOffUrl":"","khorosSignUpUrl":"","khorosSignOnUrl":"","khorosSignOffUrl":"","samlSignOnUrl":"","samlSignOffUrl":"","oidcssSignOnUrl":"","oidcssSignOffUrl":"","jwtSsoSignOnUrl":null,"jwtSsoSignOffUrl":null,"ssoBounceUrl":"","ssoQsParam":"referer"},"samlProperties":{"__typename":"SamlProperties","samlEnabled":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.saml.enabled.accessDenied","key":"error.lithium.policies.feature.saml.enabled.accessDenied","args":[]}},"registerQueryStringEnabled":false,"registerQueryStringValue":"","registerQueryStringEncodeValueEnabled":false,"loginQueryStringEnabled":false,"loginQueryStringValue":"","loginQueryStringEncodeValueEnabled":false,"idpBindingType":"post","idpOneBindingType":"post","idpTwoBindingType":"post"},"seoProperties":{"__typename":"SeoProperties","customOGSiteName":"TECHCOMMUNITY.MICROSOFT.COM","appendTopicUidInHead":false,"linkCommentToTimeStamp":true,"lowercasePath":true},"languageProperties":{"__typename":"LanguageProperties","language":"en-US"},"cookieProperties":{"__typename":"CookieProperties","cookiePrivacyPolicyUrl":"","isCookieBannerEnabled":false},"searchProperties":{"__typename":"SearchProperties","chatProperties":{"__typename":"ChatProperties","brandMessengerWidgetId":"","brandMessengerCompanyKey":"","brandMessengerScriptSource":"","brandMessengerElementSelector":""}},"knowledgeBaseProperties":{"__typename":"KnowledgeBaseProperties","isGuidesAndChaptersEnabled":true},"communityPolicies":{"__typename":"CommunityPolicies","localizedCategoriesFeatureEnabled":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.localized_categories.enabled.accessDenied","key":"error.lithium.policies.feature.localized_categories.enabled.accessDenied","args":[]}}},"badgeProperties":{"__typename":"BadgeProperties","enabled":{"__typename":"PolicyResult","failureReason":null}},"timezoneProperties":{"__typename":"TimezoneProperties","timezone":"US/Pacific"},"displayId":"gxcuf89792","nodeType":"community","title":"Microsoft Community Hub","seoTitle":null,"description":"","avatar":null,"userContext":{"__typename":"NodeUserContext","canUpdateNode":false},"depth":0,"entityType":"COMMUNITY","shortTitle":"Home"},"ROOT_QUERY":{"__typename":"Query","community":{"__ref":"Community:community:gxcuf89792"},"allowedLanguages":["en-US"],"authProviders":[],"cachedAsset({\"assetId\":\"pages\",\"assetType\":\"pages\",\"lastModified\":\"000\"})":{"__ref":"CachedAsset:pages-1732222160265"},"cachedText({\"locale\":\"en-US\",\"namespaces\":[\"components/context/AppContext/AppContextProvider\"]})":[{"__ref":"CachedAsset:text:en_US-components/context/AppContext/AppContextProvider-0"}],"cachedText({\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/common/Loading/LoadingDot\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-0"}],"self":{"__ref":"User:user:-1"},"theme({\"nodeId\":null})":{"__typename":"ThemeResponse","result":{"__ref":"Theme:customTheme1"}},"canAccess":true,"canRegister":true,"componentsLastModified":"1732222230018","quiltLastModified":"1732222157334","pagesLastModified":"1732222160265","pageScriptsLastModified":"1732222240336","textLastModified":"1731977288000","themeLastModified":"1732222159099","fieldDefinitionsLastModified":"1730139072000","entityDefinitionsLastModified":"1730139072000","quiltWrapperLastModified":"1732222101036","coreNode({\"id\":\"board:desenvolvedoresbr\"})":{"__ref":"Blog:board:DesenvolvedoresBR"},"message({\"id\":\"message:3980279\"})":{"__ref":"BlogTopicMessage:message:3980279"},"theme({\"nodeId\":\"board:DesenvolvedoresBR\"})":{"__typename":"ThemeResponse","result":{"__ref":"Theme:customTheme1"}},"cachedAsset({\"assetId\":\"pages\",\"assetType\":\"pages\",\"lastModified\":\"1732222160265\"})":{"__ref":"CachedAsset:pages-1732222160265"},"cachedAsset({\"assetId\":\"customTheme1\",\"assetType\":\"theme\",\"lastModified\":\"1732222159099\",\"locale\":null,\"node\":null})":{"__ref":"CachedAsset:theme:customTheme1-1732222159099"},"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/common/EmailVerification\"]})":[{"__ref":"CachedAsset:text:en_US-components/common/EmailVerification-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/common/Loading/LoadingDot\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-1731977288000"}],"cachedAsset({\"assetId\":\"pages/blogs/BlogMessagePage\",\"assetType\":\"quilt\",\"lastModified\":\"1732222157334\",\"locale\":null,\"node\":\"board:DesenvolvedoresBR\"})":{"__ref":"CachedAsset:quilt:o365.prod:pages/blogs/BlogMessagePage:board:DesenvolvedoresBR-1732222157334"},"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"pages/blogs/BlogMessagePage\"]})":[{"__ref":"CachedAsset:text:en_US-pages/blogs/BlogMessagePage-1731977288000"}],"cachedAsset({\"assetId\":\"Common\",\"assetType\":\"quiltWrapper\",\"lastModified\":\"1732222101036\",\"locale\":null,\"node\":null})":{"__ref":"CachedAsset:quiltWrapper:o365.prod:Common:1732222101036"},"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/common/ActionFeedback\"]})":[{"__ref":"CachedAsset:text:en_US-components/common/ActionFeedback-1731977288000"}],"cachedAsset({\"assetId\":\"custom.widget.HeroBanner-en-US\",\"assetType\":\"component\",\"lastModified\":\"1732222230018\",\"locale\":null,\"node\":null})":{"__ref":"CachedAsset:component:custom.widget.HeroBanner-en-1732222230018"},"cachedAsset({\"assetId\":\"custom.widget.Social_Sharing-en-US\",\"assetType\":\"component\",\"lastModified\":\"1732222230018\",\"locale\":null,\"node\":null})":{"__ref":"CachedAsset:component:custom.widget.Social_Sharing-en-1732222230018"},"cachedAsset({\"assetId\":\"custom.widget.MicrosoftFooter-en-US\",\"assetType\":\"component\",\"lastModified\":\"1732222230018\",\"locale\":null,\"node\":null})":{"__ref":"CachedAsset:component:custom.widget.MicrosoftFooter-en-1732222230018"},"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/community/Breadcrumb\"]})":[{"__ref":"CachedAsset:text:en_US-components/community/Breadcrumb-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageBanner\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageBanner-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageView/MessageViewStandard\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageView/MessageViewStandard-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageReplyCallToAction\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageReplyCallToAction-1731977288000"}],"coreNodes({\"constraints\":{\"id\":{\"in\":[\"community:gxcuf89792\",\"category:microsoft365\",\"category:MicrosoftTeams\",\"category:Windows\",\"category:MicrosoftSecurityandCompliance\",\"category:Outlook\",\"category:Planner\",\"category:Windows-Server\",\"category:Azure\",\"category:Exchange\",\"category:microsoft-endpoint-manager\",\"category:SQL-Server\",\"category:EducationSector\",\"category:AI\",\"category:ITOpsTalk\",\"category:PartnerCommunity\",\"category:MicrosoftMechanics\",\"category:HealthcareAndLifeSciences\",\"category:PublicSector\",\"category:IoT\",\"category:DrivingAdoption\",\"category:SMB\",\"category:StartupsatMicrosoft\",\"category:MicrosoftLearn\",\"category:MicrosoftLearn\",\"board:MicrosoftLearnBlog\",\"category:Community-Info-Center\"]}},\"first\":27})":{"__typename":"CoreNodeConnection","edges":[{"__typename":"CoreNodeEdge","node":{"__ref":"Community:community:gxcuf89792"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:Exchange"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:Planner"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:Outlook"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:Community-Info-Center"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:EducationSector"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:DrivingAdoption"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:Azure"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:Windows-Server"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:SQL-Server"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:MicrosoftTeams"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:PublicSector"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:microsoft365"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:IoT"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:HealthcareAndLifeSciences"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:SMB"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:ITOpsTalk"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:microsoft-endpoint-manager"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:MicrosoftSecurityandCompliance"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:MicrosoftLearn"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Blog:board:MicrosoftLearnBlog"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:AI"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:MicrosoftMechanics"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:StartupsatMicrosoft"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:PartnerCommunity"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:Windows"}}]},"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/community/Navbar\"]})":[{"__ref":"CachedAsset:text:en_US-components/community/Navbar-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/community/NavbarHamburgerDropdown\"]})":[{"__ref":"CachedAsset:text:en_US-components/community/NavbarHamburgerDropdown-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/community/BrandLogo\"]})":[{"__ref":"CachedAsset:text:en_US-components/community/BrandLogo-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/community/NavbarTextLinks\"]})":[{"__ref":"CachedAsset:text:en_US-components/community/NavbarTextLinks-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/authentication/AuthenticationLink\"]})":[{"__ref":"CachedAsset:text:en_US-components/authentication/AuthenticationLink-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/nodes/NodeLink\"]})":[{"__ref":"CachedAsset:text:en_US-components/nodes/NodeLink-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageCoverImage\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageCoverImage-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeTitle\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeTitle-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageTimeToRead\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageTimeToRead-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageSubject\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageSubject-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/users/UserLink\"]})":[{"__ref":"CachedAsset:text:en_US-components/users/UserLink-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserRank\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserRank-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageTime\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageTime-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageBody\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageBody-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageCustomFields\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageCustomFields-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageRevision\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageRevision-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/common/QueryHandler\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/common/QueryHandler-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageReplyButton\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageReplyButton-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageAuthorBio\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageAuthorBio-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/customComponent/CustomComponent\"]})":[{"__ref":"CachedAsset:text:en_US-components/customComponent/CustomComponent-1731977288000"}],"component({\"componentId\":\"custom.widget.Social_Sharing\"})":{"__typename":"Component","render({\"context\":{\"component\":{\"entities\":[],\"props\":{}},\"page\":{\"entities\":[\"board:DesenvolvedoresBR\",\"message:3980279\"],\"name\":\"BlogMessagePage\",\"props\":{},\"url\":\"https://techcommunity.microsoft.com\"}}})":{"__typename":"ComponentRenderResult","html":"\u003cdiv class=\"social-share\"\u003e \u003cul class=\"sharing-options\"\u003e \u003cli\u003e \u003ca class=\"social-share-linkedin\" href=\"http://www.linkedin.com/shareArticle?mini=true\u0026url=https://techcommunity.microsoft.com\" target=\"_blank\"\u003e \u003cimg alt=\"Share to LinkedIn\" src=\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/components/Social_Sharing/assets/social-share-linkedin.svg\" /\u003e \u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca class=\"social-share-facebook\" href=\"http://www.facebook.com/share.php?u=https://techcommunity.microsoft.com\" target=\"_blank\"\u003e \u003cimg alt=\"Share to Facebook\" src=\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/components/Social_Sharing/assets/social-share-facebook.svg\" /\u003e \u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca class=\"social-share-x\" href=\"http://twitter.com/share?text=Check out this post on the Microsoft Tech Community : BlogMessagePage\u0026url=https://techcommunity.microsoft.com\" target=\"_blank\"\u003e \u003cimg alt=\"Share to X\" src=\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/components/Social_Sharing/assets/social-share-x.svg\" /\u003e \u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca class=\"social-share-reddit\" href=\"http://www.reddit.com/submit?url=https://techcommunity.microsoft.com\u0026title=Check%20out%20this%20post%20on%20Microsoft%20Tech%20Community\" target=\"_blank\"\u003e \u003cimg alt=\"Share to Reddit\" src=\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/components/Social_Sharing/assets/social-share-reddit.svg\" /\u003e \u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca class=\"social-share-email\" href=\"mailto:?subject=\u0026body=I found this on the Microsoft Tech Community and wanted to share it with you, check it out : https://techcommunity.microsoft.com\" target=\"_blank\"\u003e \u003cimg alt=\"Share to Email\" src=\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/components/Social_Sharing/assets/social-share-email.svg\" /\u003e \u003c/a\u003e \u003c/li\u003e \u003cli class=\"social-share-rss\" id=\"RSS\"\u003e \u003ca class=\"social-share-rss\" href=\"/t5/s/gxcuf89792/rss/board?board.id=DesenvolvedoresBR\" target=\"_blank\"\u003e \u003cimg alt=\"Subscribe to RSS\" src=\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/components/Social_Sharing/assets/rss.svg\" /\u003e \u003c/a\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/ul\u003e"}},"coreNode({\"id\":\"board:DesenvolvedoresBR\"})":{"__ref":"Blog:board:DesenvolvedoresBR"},"component({\"componentId\":\"custom.widget.MicrosoftFooter\"})":{"__typename":"Component","render({\"context\":{\"component\":{\"entities\":[],\"props\":{}},\"page\":{\"entities\":[\"board:DesenvolvedoresBR\",\"message:3980279\"],\"name\":\"BlogMessagePage\",\"props\":{},\"url\":\"https://techcommunity.microsoft.com\"}}})":{"__typename":"ComponentRenderResult","html":"\u003cfooter id=\"uhf-footer\" class=\"c-uhff context-uhf\" data-uhf-mscc-rq=\"false\" data-footer-footprint=\"/MSTechnical/MSTechnicalFooter, fromService: True\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Uhf footer_cont\u0026quot;,\u0026quot;cT\u0026quot;:\u0026quot;Container\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:1,\u0026quot;aN\u0026quot;:\u0026quot;m1r1a2\u0026quot;}\"\u003e \u003cnav class=\"c-uhff-nav\" aria-label=\"Footer Resource links\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer nav_cont\u0026quot;,\u0026quot;cT\u0026quot;:\u0026quot;Container\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:1,\u0026quot;aN\u0026quot;:\u0026quot;c1m1r1a2\u0026quot;}\"\u003e \u003cdiv class=\"c-uhff-nav-row\"\u003e \u003cdiv class=\"c-uhff-nav-group\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;footerNavColumn1_cont\u0026quot;,\u0026quot;cT\u0026quot;:\u0026quot;Container\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;c1c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:1,\u0026quot;aN\u0026quot;:\u0026quot;c1c1m1r1a2\u0026quot;}\"\u003e \u003cdiv class=\"c-heading-4\" role=\"heading\" aria-level=\"2\"\u003eWhat's new\u003c/div\u003e \u003cul class=\"c-list f-bare\"\u003e \u003cli\u003e \u003ca aria-label=\"Surface Pro 9 What's new\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/d/surface-pro-9/93VKD8NP4FVK\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_WhatsNew_NewSurfacePro8_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n1c1c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:1,\u0026quot;aN\u0026quot;:\u0026quot;c1c1c1m1r1a2\u0026quot;}\"\u003eSurface Pro 9\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Surface Laptop 5 What's new\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/d/surface-laptop-5/8XN49V61S1BN\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_WhatsNew_SurfaceLaptop2_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n2c1c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:2,\u0026quot;aN\u0026quot;:\u0026quot;c1c1c1m1r1a2\u0026quot;}\"\u003eSurface Laptop 5\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Surface Studio 2+ What's new\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/d/surface-studio-2plus/8VLFQC3597K4\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_WhatsNew_SurfaceStudio_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n3c1c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:3,\u0026quot;aN\u0026quot;:\u0026quot;c1c1c1m1r1a2\u0026quot;}\"\u003eSurface Studio 2+\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Surface Laptop Go 2 What's new\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/d/surface-laptop-go-2/8PGLPV76MJHN\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_WhatsNew_SurfaceLaptopGo_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n4c1c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:4,\u0026quot;aN\u0026quot;:\u0026quot;c1c1c1m1r1a2\u0026quot;}\"\u003eSurface Laptop Go 2\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Surface Laptop Studio What's new\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/d/surface-laptop-studio/8SRDF62SWKPF\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_WhatsNew_SurfaceLaptopStudio_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n5c1c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:5,\u0026quot;aN\u0026quot;:\u0026quot;c1c1c1m1r1a2\u0026quot;}\"\u003eSurface Laptop Studio\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Surface Duo 2 What's new\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/d/surface-duo-2/9408KGXP4XJL\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_WhatsNew_SurfaceDuo2_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n6c1c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:6,\u0026quot;aN\u0026quot;:\u0026quot;c1c1c1m1r1a2\u0026quot;}\"\u003eSurface Duo 2\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Microsoft 365 What's new\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/microsoft-365\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Whatsnew_Microsoft365_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n7c1c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:7,\u0026quot;aN\u0026quot;:\u0026quot;c1c1c1m1r1a2\u0026quot;}\"\u003eMicrosoft 365\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Windows 11 apps What's new\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/windows/windows-11-apps\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_WhatsNew_Windows_11_apps_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n8c1c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:8,\u0026quot;aN\u0026quot;:\u0026quot;c1c1c1m1r1a2\u0026quot;}\"\u003eWindows 11 apps\u003c/a\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003cdiv class=\"c-uhff-nav-group\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;footerNavColumn2_cont\u0026quot;,\u0026quot;cT\u0026quot;:\u0026quot;Container\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;c2c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:2,\u0026quot;aN\u0026quot;:\u0026quot;c1c1m1r1a2\u0026quot;}\"\u003e \u003cdiv class=\"c-heading-4\" role=\"heading\" aria-level=\"2\"\u003eMicrosoft Store\u003c/div\u003e \u003cul class=\"c-list f-bare\"\u003e \u003cli\u003e \u003ca aria-label=\"Account profile Microsoft Store\" class=\"c-uhff-link\" href=\"https://account.microsoft.com/\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_StoreandSupport_AccountProfile_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n1c2c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:1,\u0026quot;aN\u0026quot;:\u0026quot;c2c1c1m1r1a2\u0026quot;}\"\u003eAccount profile\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Download Center Microsoft Store\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/download\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_StoreandSupport_DownloadCenter_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n2c2c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:2,\u0026quot;aN\u0026quot;:\u0026quot;c2c1c1m1r1a2\u0026quot;}\"\u003eDownload Center\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Microsoft Store support Microsoft Store\" class=\"c-uhff-link\" href=\"https://go.microsoft.com/fwlink/?linkid=2139749\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_StoreandSupport_SalesAndSupport_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n3c2c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:3,\u0026quot;aN\u0026quot;:\u0026quot;c2c1c1m1r1a2\u0026quot;}\"\u003eMicrosoft Store support\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Returns Microsoft Store\" class=\"c-uhff-link\" href=\"https://go.microsoft.com/fwlink/p/?LinkID=824764\u0026amp;clcid=0x409\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;MicrosoftStore_ExtendedHolidayReturns_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n4c2c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:4,\u0026quot;aN\u0026quot;:\u0026quot;c2c1c1m1r1a2\u0026quot;}\"\u003eReturns\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Order tracking Microsoft Store\" class=\"c-uhff-link\" href=\"https://account.microsoft.com/orders\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_StoreandSupport_OrderTracking_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n5c2c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:5,\u0026quot;aN\u0026quot;:\u0026quot;c2c1c1m1r1a2\u0026quot;}\"\u003eOrder tracking\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Virtual workshops and training Microsoft Store\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/store/workshops-training-and-events?icid=vl_uf_932020\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_StoreandSupport_StoreLocations_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n6c2c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:6,\u0026quot;aN\u0026quot;:\u0026quot;c2c1c1m1r1a2\u0026quot;}\"\u003eVirtual workshops and training\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Microsoft Store Promise Microsoft Store\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/store/b/why-microsoft-store?icid=footer_why-msft-store_7102020\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_StoreandSupport_MicrosoftPromise_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n7c2c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:7,\u0026quot;aN\u0026quot;:\u0026quot;c2c1c1m1r1a2\u0026quot;}\"\u003eMicrosoft Store Promise\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Flexible Payments Microsoft Store\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/store/b/payment-financing-options?icid=footer_financing_vcc\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_StoreandSupport_Financing_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n8c2c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:8,\u0026quot;aN\u0026quot;:\u0026quot;c2c1c1m1r1a2\u0026quot;}\"\u003eFlexible Payments\u003c/a\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003cdiv class=\"c-uhff-nav-group\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;footerNavColumn3_cont\u0026quot;,\u0026quot;cT\u0026quot;:\u0026quot;Container\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;c3c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:3,\u0026quot;aN\u0026quot;:\u0026quot;c1c1m1r1a2\u0026quot;}\"\u003e \u003cdiv class=\"c-heading-4\" role=\"heading\" aria-level=\"2\"\u003eEducation\u003c/div\u003e \u003cul class=\"c-list f-bare\"\u003e \u003cli\u003e \u003ca aria-label=\"Microsoft in education Education\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/education\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Education_MicrosoftInEducation_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n1c3c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:1,\u0026quot;aN\u0026quot;:\u0026quot;c3c1c1m1r1a2\u0026quot;}\"\u003eMicrosoft in education\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Devices for education Education\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/education/devices/overview\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Education_DevicesforEducation_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n2c3c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:2,\u0026quot;aN\u0026quot;:\u0026quot;c3c1c1m1r1a2\u0026quot;}\"\u003eDevices for education\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Microsoft Teams for Education Education\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/education/products/teams\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Education_MicrosoftTeamsforEducation_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n3c3c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:3,\u0026quot;aN\u0026quot;:\u0026quot;c3c1c1m1r1a2\u0026quot;}\"\u003eMicrosoft Teams for Education\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Microsoft 365 Education Education\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/education/buy-license/microsoft365\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Education_Microsoft365Education_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n4c3c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:4,\u0026quot;aN\u0026quot;:\u0026quot;c3c1c1m1r1a2\u0026quot;}\"\u003eMicrosoft 365 Education\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Education consultation appointment Education\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/store/b/business-consultation?tab=educationconsultation\u0026amp;icid=CNavfooter_educationconsultation\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Education_ConsultationAppointment_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n5c3c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:5,\u0026quot;aN\u0026quot;:\u0026quot;c3c1c1m1r1a2\u0026quot;}\"\u003eEducation consultation appointment\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Educator training and development Education\" class=\"c-uhff-link\" href=\"https://education.microsoft.com/\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Education_EducatorTrainingDevelopment_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n6c3c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:6,\u0026quot;aN\u0026quot;:\u0026quot;c3c1c1m1r1a2\u0026quot;}\"\u003eEducator training and development\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Deals for students and parents Education\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/store/b/education\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Education_DealsForStudentsandParents_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n7c3c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:7,\u0026quot;aN\u0026quot;:\u0026quot;c3c1c1m1r1a2\u0026quot;}\"\u003eDeals for students and parents\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Azure for students Education\" class=\"c-uhff-link\" href=\"https://azure.microsoft.com/en-us/free/students/\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Azureforstudents_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n8c3c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:8,\u0026quot;aN\u0026quot;:\u0026quot;c3c1c1m1r1a2\u0026quot;}\"\u003eAzure for students\u003c/a\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003c/div\u003e \u003cdiv class=\"c-uhff-nav-row\"\u003e \u003cdiv class=\"c-uhff-nav-group\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;footerNavColumn4_cont\u0026quot;,\u0026quot;cT\u0026quot;:\u0026quot;Container\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;c4c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:4,\u0026quot;aN\u0026quot;:\u0026quot;c1c1m1r1a2\u0026quot;}\"\u003e \u003cdiv class=\"c-heading-4\" role=\"heading\" aria-level=\"2\"\u003eBusiness\u003c/div\u003e \u003cul class=\"c-list f-bare\"\u003e \u003cli\u003e \u003ca aria-label=\"Microsoft Cloud Business\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/microsoft-cloud\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Business_Microsoft_Cloud_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n1c4c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:1,\u0026quot;aN\u0026quot;:\u0026quot;c4c1c1m1r1a2\u0026quot;}\"\u003eMicrosoft Cloud\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Microsoft Security Business\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/security\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Business_Microsoft Security_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n2c4c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:2,\u0026quot;aN\u0026quot;:\u0026quot;c4c1c1m1r1a2\u0026quot;}\"\u003eMicrosoft Security\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Dynamics 365 Business\" class=\"c-uhff-link\" href=\"https://dynamics.microsoft.com/en-us/\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Business_MicrosoftDynamics365_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n3c4c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:3,\u0026quot;aN\u0026quot;:\u0026quot;c4c1c1m1r1a2\u0026quot;}\"\u003eDynamics 365\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Microsoft 365 Business\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/microsoft-365/business/\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;More_Business_Microsoft365_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n4c4c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:4,\u0026quot;aN\u0026quot;:\u0026quot;c4c1c1m1r1a2\u0026quot;}\"\u003eMicrosoft 365\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Microsoft Power Platform Business\" class=\"c-uhff-link\" href=\"https://powerplatform.microsoft.com/en-us/\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_DeveloperAndIT_Power Platform_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n5c4c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:5,\u0026quot;aN\u0026quot;:\u0026quot;c4c1c1m1r1a2\u0026quot;}\"\u003eMicrosoft Power Platform\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Microsoft Teams Business\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/microsoft-teams/group-chat-software\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Business_Microsoft365_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n6c4c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:6,\u0026quot;aN\u0026quot;:\u0026quot;c4c1c1m1r1a2\u0026quot;}\"\u003eMicrosoft Teams\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Microsoft Industry Business\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/industry\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Business_MicrosoftIndustry_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n7c4c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:7,\u0026quot;aN\u0026quot;:\u0026quot;c4c1c1m1r1a2\u0026quot;}\"\u003eMicrosoft Industry\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Small Business Business\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/store/b/business?icid=CNavBusinessStore\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Business-SmallBusiness_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n8c4c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:8,\u0026quot;aN\u0026quot;:\u0026quot;c4c1c1m1r1a2\u0026quot;}\"\u003eSmall Business\u003c/a\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003cdiv class=\"c-uhff-nav-group\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;footerNavColumn5_cont\u0026quot;,\u0026quot;cT\u0026quot;:\u0026quot;Container\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;c5c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:5,\u0026quot;aN\u0026quot;:\u0026quot;c1c1m1r1a2\u0026quot;}\"\u003e \u003cdiv class=\"c-heading-4\" role=\"heading\" aria-level=\"2\"\u003eDeveloper \u0026amp; IT\u003c/div\u003e \u003cul class=\"c-list f-bare\"\u003e \u003cli\u003e \u003ca aria-label=\"Azure Developer \u0026amp; IT\" class=\"c-uhff-link\" href=\"https://azure.microsoft.com/en-us/\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Enterprise_MicrosoftAzure_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n1c5c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:1,\u0026quot;aN\u0026quot;:\u0026quot;c5c1c1m1r1a2\u0026quot;}\"\u003eAzure\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Developer Center Developer \u0026amp; IT\" class=\"c-uhff-link\" href=\"https://developer.microsoft.com/en-us/\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Developer_DeveloperCenter_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n2c5c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:2,\u0026quot;aN\u0026quot;:\u0026quot;c5c1c1m1r1a2\u0026quot;}\"\u003eDeveloper Center\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Documentation Developer \u0026amp; IT\" class=\"c-uhff-link\" href=\"https://learn.microsoft.com/docs/\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_DeveloperAndIT_Documentation_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n3c5c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:3,\u0026quot;aN\u0026quot;:\u0026quot;c5c1c1m1r1a2\u0026quot;}\"\u003eDocumentation\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Microsoft Learn Developer \u0026amp; IT\" class=\"c-uhff-link\" href=\"https://learn.microsoft.com/\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_DeveloperAndIT_MicrosoftLearn_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n4c5c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:4,\u0026quot;aN\u0026quot;:\u0026quot;c5c1c1m1r1a2\u0026quot;}\"\u003eMicrosoft Learn\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Microsoft Tech Community Developer \u0026amp; IT\" class=\"c-uhff-link\" href=\"https://techcommunity.microsoft.com/\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_DeveloperAndIT_MicrosoftTechCommunity_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n5c5c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:5,\u0026quot;aN\u0026quot;:\u0026quot;c5c1c1m1r1a2\u0026quot;}\"\u003eMicrosoft Tech Community\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Azure Marketplace Developer \u0026amp; IT\" class=\"c-uhff-link\" href=\"https://azuremarketplace.microsoft.com/en-us/\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;More_DeveloperAndIT_AzureMarketplace_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n6c5c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:6,\u0026quot;aN\u0026quot;:\u0026quot;c5c1c1m1r1a2\u0026quot;}\"\u003eAzure Marketplace\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"AppSource Developer \u0026amp; IT\" class=\"c-uhff-link\" href=\"https://appsource.microsoft.com/en-us/\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_DeveloperAndIT_AppSource_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n7c5c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:7,\u0026quot;aN\u0026quot;:\u0026quot;c5c1c1m1r1a2\u0026quot;}\"\u003eAppSource\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Visual Studio Developer \u0026amp; IT\" class=\"c-uhff-link\" href=\"https://visualstudio.microsoft.com/\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Developer_MicrosoftVisualStudio_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n8c5c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:8,\u0026quot;aN\u0026quot;:\u0026quot;c5c1c1m1r1a2\u0026quot;}\"\u003eVisual Studio\u003c/a\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003cdiv class=\"c-uhff-nav-group\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;footerNavColumn6_cont\u0026quot;,\u0026quot;cT\u0026quot;:\u0026quot;Container\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;c6c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:6,\u0026quot;aN\u0026quot;:\u0026quot;c1c1m1r1a2\u0026quot;}\"\u003e \u003cdiv class=\"c-heading-4\" role=\"heading\" aria-level=\"2\"\u003eCompany\u003c/div\u003e \u003cul class=\"c-list f-bare\"\u003e \u003cli\u003e \u003ca aria-label=\"Careers Company\" class=\"c-uhff-link\" href=\"https://careers.microsoft.com/\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Company_Careers_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n1c6c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:1,\u0026quot;aN\u0026quot;:\u0026quot;c6c1c1m1r1a2\u0026quot;}\"\u003eCareers\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"About Microsoft Company\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/about\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Company_AboutMicrosoft_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n2c6c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:2,\u0026quot;aN\u0026quot;:\u0026quot;c6c1c1m1r1a2\u0026quot;}\"\u003eAbout Microsoft\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Company news Company\" class=\"c-uhff-link\" href=\"https://news.microsoft.com/\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Company_CompanyNews_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n3c6c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:3,\u0026quot;aN\u0026quot;:\u0026quot;c6c1c1m1r1a2\u0026quot;}\"\u003eCompany news\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Privacy at Microsoft Company\" class=\"c-uhff-link\" href=\"https://privacy.microsoft.com/en-us\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Company_PrivacyAtMicrosoft_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n4c6c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:4,\u0026quot;aN\u0026quot;:\u0026quot;c6c1c1m1r1a2\u0026quot;}\"\u003ePrivacy at Microsoft\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Investors Company\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/investor/default.aspx\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Company_Investors_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n5c6c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:5,\u0026quot;aN\u0026quot;:\u0026quot;c6c1c1m1r1a2\u0026quot;}\"\u003eInvestors\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Diversity and inclusion Company\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/diversity/\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Company_DiversityAndInclusion_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n6c6c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:6,\u0026quot;aN\u0026quot;:\u0026quot;c6c1c1m1r1a2\u0026quot;}\"\u003eDiversity and inclusion\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Accessibility Company\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/accessibility\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Company_Accessibility_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n7c6c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:7,\u0026quot;aN\u0026quot;:\u0026quot;c6c1c1m1r1a2\u0026quot;}\"\u003eAccessibility\u003c/a\u003e \u003c/li\u003e \u003cli\u003e \u003ca aria-label=\"Sustainability Company\" class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/sustainability/\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Company_Sustainability_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n8c6c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:8,\u0026quot;aN\u0026quot;:\u0026quot;c6c1c1m1r1a2\u0026quot;}\"\u003eSustainability\u003c/a\u003e \u003c/li\u003e \u003c/ul\u003e \u003c/div\u003e \u003c/div\u003e \u003c/nav\u003e \u003cdiv class=\"c-uhff-base\"\u003e \u003ca data-m=\"{\u0026quot;id\u0026quot;:\u0026quot;n8c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:8,\u0026quot;aN\u0026quot;:\u0026quot;c1c1m1r1a2\u0026quot;}\" href=\"https://aka.ms/yourcaliforniaprivacychoices\" class=\"c-uhff-link c-uhff-ccpa\"\u003e \u003csvg role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 30 14\" xml:space=\"preserve\" height=\"16\" width=\"43\"\u003e \u003ctitle\u003eCalifornia Consumer Privacy Act (CCPA) Opt-Out Icon\u003c/title\u003e \u003cpath d=\"M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8z\" style=\"fill-rule:evenodd;clip-rule:evenodd;fill:#fff\"\u003e\u003c/path\u003e \u003cpath d=\"M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7zm-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8z\" style=\"fill-rule:evenodd;clip-rule:evenodd;fill:#06f\"\u003e\u003c/path\u003e \u003cpath d=\"M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8-.2.2-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0z\" style=\"fill:#fff\"\u003e\u003c/path\u003e \u003cpath d=\"M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0z\" style=\"fill:#06f\"\u003e\u003c/path\u003e \u003c/svg\u003e \u003cspan\u003eYour Privacy Choices\u003c/span\u003e \u003c/a\u003e \u003cnav aria-label=\"Microsoft corporate links\"\u003e \u003cul class=\"c-list f-bare\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Corp links_cont\u0026quot;,\u0026quot;cT\u0026quot;:\u0026quot;Container\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;c8c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:8,\u0026quot;aN\u0026quot;:\u0026quot;c1c1m1r1a2\u0026quot;}\"\u003e \u003cli id=\"c-uhff-footer_sitemap\"\u003e \u003ca class=\"c-uhff-link\" href=\"https://www.microsoft.com/en-us/sitemap1.aspx\" data-mscc-ic=\"false\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Sitemap_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n1c8c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:1,\u0026quot;aN\u0026quot;:\u0026quot;c8c1c1m1r1a2\u0026quot;}\"\u003eSitemap\u003c/a\u003e \u003c/li\u003e \u003cli id=\"c-uhff-footer_contactus\"\u003e \u003ca class=\"c-uhff-link\" href=\"https://support.microsoft.com/contactus\" data-mscc-ic=\"false\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_ContactUs_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n2c8c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:2,\u0026quot;aN\u0026quot;:\u0026quot;c8c1c1m1r1a2\u0026quot;}\"\u003eContact Microsoft\u003c/a\u003e \u003c/li\u003e \u003cli id=\"c-uhff-footer_privacyandcookies\"\u003e \u003ca class=\"c-uhff-link\" href=\"https://go.microsoft.com/fwlink/?LinkId=521839\" data-mscc-ic=\"false\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_PrivacyandCookies_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n3c8c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:3,\u0026quot;aN\u0026quot;:\u0026quot;c8c1c1m1r1a2\u0026quot;}\"\u003ePrivacy \u003c/a\u003e \u003c/li\u003e \u003cli class=\"x-hidden\" id=\"c-uhff-footer_managecookies\"\u003e \u003ca class=\"c-uhff-link\" href=\"javascript:manageConsent();\" onClick=\"javascript:manageConsent(); return false;\" data-mscc-ic=\"false\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_ManageCookies_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n4c8c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:4,\u0026quot;aN\u0026quot;:\u0026quot;c8c1c1m1r1a2\u0026quot;}\"\u003eManage cookies\u003c/a\u003e \u003c/li\u003e \u003cli id=\"c-uhff-footer_termsofuse\"\u003e \u003ca class=\"c-uhff-link\" href=\"https://go.microsoft.com/fwlink/?LinkID=206977\" data-mscc-ic=\"false\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_TermsOfUse_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n5c8c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:5,\u0026quot;aN\u0026quot;:\u0026quot;c8c1c1m1r1a2\u0026quot;}\"\u003eTerms of use\u003c/a\u003e \u003c/li\u003e \u003cli id=\"c-uhff-footer_trademarks\"\u003e \u003ca class=\"c-uhff-link\" href=\"https://go.microsoft.com/fwlink/?linkid=2196228\" data-mscc-ic=\"false\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_Trademarks_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n6c8c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:6,\u0026quot;aN\u0026quot;:\u0026quot;c8c1c1m1r1a2\u0026quot;}\"\u003eTrademarks\u003c/a\u003e \u003c/li\u003e \u003cli id=\"c-uhff-footer_safetyandeco\"\u003e \u003ca class=\"c-uhff-link\" href=\"https://go.microsoft.com/fwlink/?linkid=2196227\" data-mscc-ic=\"false\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_SafetyAndEco_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n7c8c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:7,\u0026quot;aN\u0026quot;:\u0026quot;c8c1c1m1r1a2\u0026quot;}\"\u003eSafety \u0026amp; eco\u003c/a\u003e \u003c/li\u003e \u003cli id=\"c-uhff-footer_aboutourads\"\u003e \u003ca class=\"c-uhff-link\" href=\"https://choice.microsoft.com\" data-mscc-ic=\"false\" data-m=\"{\u0026quot;cN\u0026quot;:\u0026quot;Footer_AboutourAds_nav\u0026quot;,\u0026quot;id\u0026quot;:\u0026quot;n8c8c1c1m1r1a2\u0026quot;,\u0026quot;sN\u0026quot;:8,\u0026quot;aN\u0026quot;:\u0026quot;c8c1c1m1r1a2\u0026quot;}\"\u003eAbout our ads\u003c/a\u003e \u003c/li\u003e \u003cli\u003e© Microsoft 2024\u003c/li\u003e \u003c/ul\u003e \u003c/nav\u003e \u003c/div\u003e \u003c/footer\u003e"}},"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/community/NavbarDropdownToggle\"]})":[{"__ref":"CachedAsset:text:en_US-components/community/NavbarDropdownToggle-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserAvatar\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/ranks/UserRankLabel\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"components/users/UserRegistrationDate\"]})":[{"__ref":"CachedAsset:text:en_US-components/users/UserRegistrationDate-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeAvatar\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeAvatar-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeDescription\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeDescription-1731977288000"}],"cachedText({\"lastModified\":\"1731977288000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeIcon\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1731977288000"}]},"CachedAsset:pages-1732222160265":{"__typename":"CachedAsset","id":"pages-1732222160265","value":[{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"BlogViewAllPostsPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId/all-posts/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"CasePortalPage","type":"CASE_PORTAL","urlPath":"/caseportal","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"CreateGroupHubPage","type":"GROUP_HUB","urlPath":"/groups/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"CaseViewPage","type":"CASE_DETAILS","urlPath":"/case/:caseId/:caseNumber","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"InboxPage","type":"COMMUNITY","urlPath":"/inbox","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"HelpFAQPage","type":"COMMUNITY","urlPath":"/help","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"IdeaMessagePage","type":"IDEA_POST","urlPath":"/idea/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"IdeaViewAllIdeasPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/all-ideas/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"LoginPage","type":"USER","urlPath":"/signin","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"BlogPostPage","type":"BLOG","urlPath":"/category/:categoryId/blogs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"UserBlogPermissions.Page","type":"COMMUNITY","urlPath":"/c/user-blog-permissions/page","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"ThemeEditorPage","type":"COMMUNITY","urlPath":"/designer/themes","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"TkbViewAllArticlesPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId/all-articles/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1730142000000,"localOverride":null,"page":{"id":"AllEvents","type":"CUSTOM","urlPath":"/Events","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"OccasionEditPage","type":"EVENT","urlPath":"/event/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"OAuthAuthorizationAllowPage","type":"USER","urlPath":"/auth/authorize/allow","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"PageEditorPage","type":"COMMUNITY","urlPath":"/designer/pages","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"PostPage","type":"COMMUNITY","urlPath":"/category/:categoryId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"ForumBoardPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"TkbBoardPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"EventPostPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"UserBadgesPage","type":"COMMUNITY","urlPath":"/users/:login/:userId/badges","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"GroupHubMembershipAction","type":"GROUP_HUB","urlPath":"/membership/join/:nodeId/:membershipType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"IdeaReplyPage","type":"IDEA_REPLY","urlPath":"/idea/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"UserSettingsPage","type":"USER","urlPath":"/mysettings/:userSettingsTab","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"GroupHubsPage","type":"GROUP_HUB","urlPath":"/groups","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"ForumPostPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"OccasionRsvpActionPage","type":"OCCASION","urlPath":"/event/:boardId/:messageSubject/:messageId/rsvp/:responseType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"VerifyUserEmailPage","type":"USER","urlPath":"/verifyemail/:userId/:verifyEmailToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"AllOccasionsPage","type":"OCCASION","urlPath":"/category/:categoryId/events/:boardId/all-events/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"EventBoardPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"TkbReplyPage","type":"TKB_REPLY","urlPath":"/kb/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"IdeaBoardPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"CommunityGuideLinesPage","type":"COMMUNITY","urlPath":"/communityguidelines","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"CaseCreatePage","type":"SALESFORCE_CASE_CREATION","urlPath":"/caseportal/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"TkbEditPage","type":"TKB","urlPath":"/kb/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"KhorosSignInPage","type":"USER","urlPath":"/kh-signin","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"ForgotPasswordPage","type":"USER","urlPath":"/forgotpassword","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"IdeaEditPage","type":"IDEA","urlPath":"/idea/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"TagPage","type":"COMMUNITY","urlPath":"/tag/:tagName","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"BlogBoardPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"OccasionMessagePage","type":"OCCASION_TOPIC","urlPath":"/event/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"ManageContentPage","type":"COMMUNITY","urlPath":"/managecontent","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"ClosedMembershipNodeNonMembersPage","type":"GROUP_HUB","urlPath":"/closedgroup/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"CommunityPage","type":"COMMUNITY","urlPath":"/","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"ForumMessagePage","type":"FORUM_TOPIC","urlPath":"/discussions/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"IdeaPostPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1730142000000,"localOverride":null,"page":{"id":"CommunityHub.Page","type":"CUSTOM","urlPath":"/Directory","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"BlogMessagePage","type":"BLOG_ARTICLE","urlPath":"/blog/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"RegistrationPage","type":"USER","urlPath":"/register","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"EditGroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"ForumEditPage","type":"FORUM","urlPath":"/discussions/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"ResetPasswordPage","type":"USER","urlPath":"/resetpassword/:userId/:resetPasswordToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1730142000000,"localOverride":null,"page":{"id":"AllBlogs.Page","type":"CUSTOM","urlPath":"/blogs","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"TkbMessagePage","type":"TKB_ARTICLE","urlPath":"/kb/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"BlogEditPage","type":"BLOG","urlPath":"/blog/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"ManageUsersPage","type":"USER","urlPath":"/users/manage/:tab?/:manageUsersTab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"ForumReplyPage","type":"FORUM_REPLY","urlPath":"/discussions/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"PrivacyPolicyPage","type":"COMMUNITY","urlPath":"/privacypolicy","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"NotificationPage","type":"COMMUNITY","urlPath":"/notifications","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"UserPage","type":"USER","urlPath":"/users/:login/:userId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"OccasionReplyPage","type":"OCCASION_REPLY","urlPath":"/event/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"ManageMembersPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/manage/:tab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"SearchResultsPage","type":"COMMUNITY","urlPath":"/search","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"BlogReplyPage","type":"BLOG_REPLY","urlPath":"/blog/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"GroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"TermsOfServicePage","type":"COMMUNITY","urlPath":"/termsofservice","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"CategoryPage","type":"CATEGORY","urlPath":"/category/:categoryId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"ForumViewAllTopicsPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/all-topics/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"TkbPostPage","type":"TKB","urlPath":"/category/:categoryId/kbs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1732222160265,"localOverride":null,"page":{"id":"GroupHubPostPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"}],"localOverride":false},"CachedAsset:text:en_US-components/context/AppContext/AppContextProvider-0":{"__typename":"CachedAsset","id":"text:en_US-components/context/AppContext/AppContextProvider-0","value":{"noCommunity":"Cannot find community","noUser":"Cannot find current user","noNode":"Cannot find node with id {nodeId}","noMessage":"Cannot find message with id {messageId}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-0":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-0","value":{"title":"Loading..."},"localOverride":false},"User:user:-1":{"__typename":"User","id":"user:-1","uid":-1,"login":"Deleted","email":"","avatar":null,"rank":null,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":"ANONYMOUS","registrationTime":null,"confirmEmailStatus":false,"registrationAccessLevel":"VIEW","ssoRegistrationFields":[]},"ssoId":null,"profileSettings":{"__typename":"ProfileSettings","dateDisplayStyle":{"__typename":"InheritableStringSettingWithPossibleValues","key":"layout.friendly_dates_enabled","value":"false","localValue":"true","possibleValues":["true","false"]},"dateDisplayFormat":{"__typename":"InheritableStringSetting","key":"layout.format_pattern_date","value":"MMM dd yyyy","localValue":"MM-dd-yyyy"},"language":{"__typename":"InheritableStringSettingWithPossibleValues","key":"profile.language","value":"en-US","localValue":"en","possibleValues":["en-US"]}},"deleted":false},"Theme:customTheme1":{"__typename":"Theme","id":"customTheme1"},"Category:category:RegionalBlogs":{"__typename":"Category","id":"category:RegionalBlogs","entityType":"CATEGORY","displayId":"RegionalBlogs","nodeType":"category","depth":3,"title":"Regional Blogs","shortTitle":"Regional Blogs","parent":{"__ref":"Category:category:solutions"}},"Category:category:top":{"__typename":"Category","id":"category:top","displayId":"top","nodeType":"category","depth":0,"title":"Top","entityType":"CATEGORY","shortTitle":"Top"},"Category:category:communities":{"__typename":"Category","id":"category:communities","displayId":"communities","nodeType":"category","depth":1,"parent":{"__ref":"Category:category:top"},"title":"Communities","entityType":"CATEGORY","shortTitle":"Communities"},"Category:category:solutions":{"__typename":"Category","id":"category:solutions","displayId":"solutions","nodeType":"category","depth":2,"parent":{"__ref":"Category:category:communities"},"title":"Topics","entityType":"CATEGORY","shortTitle":"Topics"},"Blog:board:DesenvolvedoresBR":{"__typename":"Blog","id":"board:DesenvolvedoresBR","entityType":"BLOG","displayId":"DesenvolvedoresBR","nodeType":"board","depth":4,"conversationStyle":"BLOG","title":"Desenvolvedores BR","description":"","avatar":null,"profileSettings":{"__typename":"ProfileSettings","language":null},"parent":{"__ref":"Category:category:RegionalBlogs"},"ancestors":{"__typename":"CoreNodeConnection","edges":[{"__typename":"CoreNodeEdge","node":{"__ref":"Community:community:gxcuf89792"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:communities"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:solutions"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:RegionalBlogs"}}]},"userContext":{"__typename":"NodeUserContext","canAddAttachments":false,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"boardPolicies":{"__typename":"BoardPolicies","canPublishArticleOnCreate":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","key":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","args":[]}}},"shortTitle":"Desenvolvedores BR","tagProperties":{"__typename":"TagNodeProperties","tagsEnabled":{"__typename":"PolicyResult","failureReason":null}},"requireTags":false,"tagType":"PRESET_ONLY"},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/cmstNC05WEo0blc\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/cmstNC05WEo0blc","height":512,"width":512,"mimeType":"image/png"},"Rank:rank:4":{"__typename":"Rank","id":"rank:4","position":5,"name":"Microsoft","color":"333333","icon":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/cmstNC05WEo0blc\"}"},"rankStyle":"OUTLINE"},"User:user:1171673":{"__typename":"User","id":"user:1171673","uid":1171673,"login":"wdossantos","deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/dS0xMTcxNjczLTMyNTM2MGkwNjkyMDE1OTQ0RkQ5MTM0"},"rank":{"__ref":"Rank:rank:4"},"email":"","messagesCount":19,"biography":null,"topicsCount":13,"kudosReceivedCount":69,"kudosGivenCount":45,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2021-09-30T12:29:41.220-07:00","confirmEmailStatus":null},"followersCount":null,"solutionsCount":0},"BlogTopicMessage:message:3980279":{"__typename":"BlogTopicMessage","uid":3980279,"subject":"AKS \u0026 HELM","id":"message:3980279","revisionNum":2,"author":{"__ref":"User:user:1171673"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Blog:board:DesenvolvedoresBR"},"conversation":{"__ref":"Conversation:conversation:3980279"},"messagePolicies":{"__typename":"MessagePolicies","canPublishArticleOnEdit":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.forums.policy_can_publish_on_edit_workflow_action.accessDenied","key":"error.lithium.policies.forums.policy_can_publish_on_edit_workflow_action.accessDenied","args":[]}},"canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}},"contentWorkflow":{"__typename":"ContentWorkflow","state":"PUBLISH","scheduledPublishTime":null,"scheduledTimezone":null,"userContext":{"__typename":"MessageWorkflowContext","canSubmitForReview":null,"canEdit":false,"canRecall":null,"canSubmitForPublication":null,"canReturnToAuthor":null,"canPublish":null,"canReturnToReview":null,"canSchedule":null},"shortScheduledTimezone":null},"readOnly":false,"editFrozen":false,"moderationData":{"__ref":"ModerationData:moderation_data:3980279"},"teaser":"\u003cP\u003e\u003cspan class=\"lia-media-object lia-media-is-inline lia-media-size-medium\" data-image-alt=\"wdossantos_0-1699887789281.png\"\u003e\u003cbutton class=\"lia-media-unstyled-btn\" type=\"button\" aria-haspopup=\"true\" aria-label=\"Enlarge Image wdossantos_0-1699887789281.png\"\u003e\u003cimg src=\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTgwMjc5LTUyNDc5NmkwQUM1NEUxRDQxMDdBMzE3?image-dimensions=450x450\u0026amp;revision=2\" alt=\"wdossantos_0-1699887789281.png\" /\u003e\u003c/button\u003e\u003c/span\u003e\u003c/P\u003e\n\u003cP\u003e\u0026nbsp;\u003c/P\u003e\n\u003cP\u003eO Helm é um gerenciador de pacotes para Kubernetes que ajuda a instalar, gerenciar e atualizar aplicativos Kubernetes. O Helm usa pacotes chamados “charts” que contêm todos os recursos necessários para implantar um aplicativo no Kubernetes.\u003c/P\u003e","body":"\u003cP\u003eO Helm é um gerenciador de pacotes para Kubernetes que ajuda a instalar, gerenciar e atualizar aplicativos Kubernetes. O Helm usa pacotes chamados “charts” que contêm todos os recursos necessários para implantar um aplicativo no Kubernetes.\u003c/P\u003e\n\u003cP\u003eAlgumas das operações comuns que você pode executar usando o \u003cCODE\u003ehelm\u003c/CODE\u003e incluem:\u003c/P\u003e\n\u003cUL\u003e\n\u003cLI\u003e\u003cCODE\u003ehelm install\u003c/CODE\u003e: instala um chart no cluster do Kubernetes.\u003c/LI\u003e\n\u003cLI\u003e\u003cCODE\u003ehelm upgrade\u003c/CODE\u003e: atualiza um chart já instalado no cluster do Kubernetes.\u003c/LI\u003e\n\u003cLI\u003e\u003cCODE\u003ehelm delete\u003c/CODE\u003e: remove um chart do cluster do Kubernetes.\u003c/LI\u003e\n\u003cLI\u003e\u003cCODE\u003ehelm lint\u003c/CODE\u003e: verifica se o chart é válido.\u003c/LI\u003e\n\u003cLI\u003e\u003cCODE\u003ehelm template\u003c/CODE\u003e: gera o pacote.\u003c/LI\u003e\n\u003c/UL\u003e\n\u003cH2 id=\"community-3980279-toc-hId-594964502\"\u003ePrincipais vantagens\u003c/H2\u003e\n\u003cOL type=\"1\"\u003e\n\u003cLI\u003eInstalação de uma aplicação conteinerizada no k8s de forma simplificada com apenas um comando\u003c/LI\u003e\n\u003cLI\u003eVersionamento de releases\u003c/LI\u003e\n\u003cLI\u003eAproveitamento dos mesmos arquivos de recursos em vários ambientes\u003c/LI\u003e\n\u003cLI\u003eHelm é um projeto no CNCF - Cloud Native Computing Foundation\u003c/LI\u003e\n\u003c/OL\u003e\n\u003cH2 id=\"community-3980279-toc-hId--1212489961\"\u003eComo eu instalo o Helm no Windows para interagir com um cluster AKS?\u003c/H2\u003e\n\u003cP\u003ePara instalar o Helm no Windows e interagir com um cluster AKS, você pode seguir os seguintes passos:\u003c/P\u003e\n\u003cOL type=\"1\"\u003e\n\u003cLI\u003eBaixe o instalador do Helm para Windows a partir do site oficial: \u003cA href=\"https://get.helm.sh/helm-v3.7.1-windows-amd64.zip\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"\u003ehttps://get.helm.sh/helm-v3.7.1-windows-amd64.zip\u003c/A\u003e\u003c/LI\u003e\n\u003cLI\u003eExtraia o conteúdo do arquivo ZIP para uma pasta de sua escolha.\u003c/LI\u003e\n\u003cLI\u003eAdicione a pasta onde o Helm foi extraído ao PATH do Windows\u003c/LI\u003e\n\u003c/OL\u003e\n\u003cUL\u003e\n\u003cLI\u003e\u003cCODE\u003ehelm version\u003c/CODE\u003e\u003c/LI\u003e\n\u003c/UL\u003e\n\u003cH2 id=\"community-3980279-toc-hId-1275022872\"\u003ePasso 1: Criar arquivos Helm\u003c/H2\u003e\n\u003cP\u003eComece criando uma estrutura de diretórios e arquivos para o Helm.\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ehelm create helm-weather\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003eO comando “helm create” é uma maneira conveniente de iniciar a criação de um novo chart Helm e fornece uma estrutura inicial para você começar a definir como os recursos do Kubernetes serão implantados e configurados usando o Helm. Você pode então personalizar e expandir essa estrutura de acordo com as necessidades do seu aplicativo ou serviço.\u003c/P\u003e\n\u003cH3 id=\"community-3980279-toc-hId-1965584346\"\u003edepois de rodar o comando “helm create” serão criados os seguintes elementos\u003c/H3\u003e\n\u003cOL type=\"1\"\u003e\n\u003cLI\u003e\n\u003cP\u003e\u003cCODE\u003eDiretório helm-weather:\u003c/CODE\u003e Este diretório é a raiz do seu chart Helm. Ele conterá todos os outros arquivos e diretórios relacionados ao chart.\u003c/P\u003e\n\u003c/LI\u003e\n\u003cLI\u003e\n\u003cP\u003e\u003cCODE\u003eArquivo Chart.yaml:\u003c/CODE\u003e Este arquivo YAML contém informações sobre o chart, como nome, versão, descrição e outros metadados.\u003c/P\u003e\n\u003c/LI\u003e\n\u003cLI\u003e\n\u003cP\u003e\u003cCODE\u003eDiretório charts:\u003c/CODE\u003e Este diretório é usado para armazenar dependências de charts, caso o chart “helm-weather” dependa de outros charts.\u003c/P\u003e\n\u003c/LI\u003e\n\u003cLI\u003e\n\u003cP\u003e\u003cCODE\u003eDiretório templates:\u003c/CODE\u003e Este diretório é onde você pode definir os modelos de recursos do Kubernetes que serão gerados quando você instalar o chart. Os modelos podem ser escritos em YAML e geralmente são usados para criar recursos como pods, serviços, configurações, etc.\u003c/P\u003e\n\u003c/LI\u003e\n\u003cLI\u003e\n\u003cP\u003e\u003cCODE\u003eArquivo values.yaml:\u003c/CODE\u003e Este arquivo contém os valores padrão que serão usados nos modelos do chart. Você pode substituir esses valores ao instalar o chart para personalizar a implantação.\u003c/P\u003e\n\u003c/LI\u003e\n\u003cLI\u003e\n\u003cP\u003e\u003cCODE\u003eArquivo charts/README.md:\u003c/CODE\u003e Este é um arquivo de documentação que fornece informações sobre o chart, como seu propósito e como usá-lo.\u003c/P\u003e\n\u003c/LI\u003e\n\u003cLI\u003e\n\u003cP\u003e\u003cCODE\u003eArquivo README.md:\u003c/CODE\u003e Este é um arquivo de documentação geral para o chart Helm.\u003c/P\u003e\n\u003c/LI\u003e\n\u003c/OL\u003e\n\u003cH2 id=\"community-3980279-toc-hId-1955081242\"\u003ePasso 2: Criar uma API Web\u003c/H2\u003e\n\u003cP\u003eAgora, crie um projeto de API Web usando o .NET Core:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003edotnet new webapi -o api-weather\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2 id=\"community-3980279-toc-hId-147626779\"\u003ePasso 3: Criar a imagem da aplicação\u003c/H2\u003e\n\u003cP\u003eAdicione um Dockerfile para a sua aplicação. Você pode usar o Visual Studio Code e a extensão Docker para facilitar a criação do arquivo Docker. O Dockerfile pode ter o seguinte conteúdo:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003eFROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base \nWORKDIR /app \nEXPOSE 5001 \n \nENV ASPNETCORE\\_URLS=http://+:5001 \n \n\\# Creates a non-root user with an explicit UID and adds permission to access the /app folder \n\\# For more info, please refer to https://aka.ms/vscode-docker-dotnet-configure-containers \nRUN adduser -u 5678 --disabled-password --gecos \"\" appuser \u0026amp;\u0026amp; chown -R appuser /app \nUSER appuser \n \nFROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:7.0 AS build \nARG configuration=Release \nWORKDIR /src \nCOPY \\[\"api-weather.csproj\", \"./\"\\] \nRUN dotnet restore \"api-weather.csproj\" \nCOPY . . \nWORKDIR \"/src/.\" \nRUN dotnet build \"api-weather.csproj\" -c $configuration -o /app/build \n \nFROM build AS publish \nARG configuration=Release \nRUN dotnet publish \"api-weather.csproj\" -c $configuration -o /app/publish /p:UseAppHost=false \n \nFROM base AS final \nWORKDIR /app \nCOPY --from=publish /app/publish . \nENTRYPOINT \\[\"dotnet\", \"api-weather.dll\"\\]\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2 id=\"community-3980279-toc-hId--1659827684\"\u003ePasso 4: Enviar a imagem para o ACR\u003c/H2\u003e\n\u003cP\u003eAgora, você pode enviar a imagem Docker para o Azure Container Registry (ACR) usando o Azure CLI ou o Docker:\u003c/P\u003e\n\u003cP\u003eUsando o Azure CLI:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003eaz acr build -t api-sampe01 --registry acrhelm01 .\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003eOu usando o Docker:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003eaz acr login -n acrhelm01 \n \ndocker build -t api-sampe01 . \ndocker tag api-sampe01 acrhelm01.azurecr.io/api-sampe01:001 \ndocker push acrhelm01.azurecr.io/api-sampe01:001\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2 id=\"community-3980279-toc-hId-827685149\"\u003ePasso 5: Validar os arquivos Helm\u003c/H2\u003e\n\u003cP\u003eAcesse o diretório \u003cCODE\u003ehelm-weather\u003c/CODE\u003e e valide os arquivos Helm:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ecd helm-weather \nhelm template ./ --debug\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2 id=\"community-3980279-toc-hId--979769314\"\u003ePasso 6: Gerar o pacote Helm\u003c/H2\u003e\n\u003cP\u003eAgora, gere o pacote Helm (arquivo tar.gz) a partir do diretório:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ehelm package ./ -d charts\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2 id=\"community-3980279-toc-hId-1507743519\"\u003ePasso 7: Acesso ao cluster AKS\u003c/H2\u003e\n\u003cP\u003eCertifique-se de que você tenha acesso ao cluster AKS onde deseja implantar o aplicativo. Você pode usar o Azure CLI para configurar o acesso:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003eaz aks get-credentials --resource-group akshelmspoc --name akshelm01\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2 id=\"community-3980279-toc-hId-1374058795\"\u003ePasso 8: Instalar o pacote no Cluster\u003c/H2\u003e\n\u003cP\u003eAgora, você pode implantar o pacote Helm no seu cluster AKS:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ehelm upgrade helm-weather .\\\\charts\\\\helm-weather-0.1.0.tgz --namespace sample01 --create-namespace --install\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2 id=\"community-3980279-toc-hId--433395668\"\u003ePasso 9: Verificar o resultado\u003c/H2\u003e\n\u003cP\u003eApós a implantação, você pode verificar o status dos recursos no cluster AKS usando o seguinte comando:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ekubectl get all -n sample01\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003eVocê também pode analisar os detalhes de um pod específico:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ekubectl describe pod helm-weather-7767995446-jchs6 -n sample01\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003ePodemos ver a imagem do nginx:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003eName: helm-weather-7767995446-jchs6 \nNamespace: sample01 \nPriority: 0 \nService Account: helm-weather \nNode: aks-agentpool-30542430-vmss000002/10.224.0.5 \nStart Time: Wed, 27 Sep 2023 11:15:53 -0300 \nLabels: app.kubernetes.io/instance=helm-weather \n app.kubernetes.io/name=helm-weather \n pod-template-hash=7767995446 \nAnnotations: cni.projectcalico.org/containerID: 2273b655dd36ca0d3daaa722cab5a3ce8fd60b463f47fa249be62d9ec75ec6de \n cni.projectcalico.org/podIP: 10.244.1.8/32 \n cni.projectcalico.org/podIPs: 10.244.1.8/32 \nStatus: Running \nIP: 10.244.1.8 \nIPs: \n IP: 10.244.1.8 \nControlled By: ReplicaSet/helm-weather-7767995446 \nContainers: \n helm-weather: \n Container ID: containerd://d07e997d2413a4ca353ce5b3cd6939426127920850c5ede5c740e82d1786065c \n Image: nginx:1.16.0 \n Image ID: docker.io/library/nginx@sha256:3e373fd5b8d41baeddc24be311c5c6929425c04cabf893b874ac09b72a798010 \n Port: 80/TCP \n Host Port: 0/TCP \n State: Running \n Started: Wed, 27 Sep 2023 11:15:57 -0300 \n Ready: True \n Restart Count: 0 \n Liveness: http-get http://:http/ delay=0s timeout=1s period=10s #success=1 #failure=3 \n Readiness: http-get http://:http/ delay=0s timeout=1s period=10s #success=1 #failure=3 \n Environment: \u0026lt;none\u0026gt; \n Mounts: \n /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-vq2xl (ro) \nConditions: \n Type Status \n Initialized True \n Ready True \n ContainersReady True \n PodScheduled True \nVolumes: \n kube-api-access-vq2xl: \n Type: Projected (a volume that contains injected data from multiple sources) \n TokenExpirationSeconds: 3607 \n ConfigMapName: kube-root-ca.crt \n ConfigMapOptional: \u0026lt;nil\u0026gt; \n DownwardAPI: true \nQoS Class: BestEffort \nNode-Selectors: \u0026lt;none\u0026gt; \nTolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s \n node.kubernetes.io/unreachable:NoExecute op=Exists for 300s \nEvents: \n Type Reason Age From Message \n ---- ------ ---- ---- ------- \n Normal Scheduled 4m22s default-scheduler Successfully assigned sample01/helm-weather-7767995446-jchs6 to aks-agentpool-30542430-vmss000002 \n Normal Pulling 4m21s kubelet Pulling image \"nginx:1.16.0\" \n Normal Pulled 4m18s kubelet Successfully pulled image \"nginx:1.16.0\" in 3.022874455s (3.022881155s including waiting) \n Normal Created 4m18s kubelet Created container helm-weather \n Normal Started 4m18s kubelet Started container helm-weather\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2 id=\"community-3980279-toc-hId-2054117165\"\u003ePasso 10: Configurar o arquivo \u003cCODE\u003evalues.yaml\u003c/CODE\u003e\u003c/H2\u003e\n\u003cP\u003eEdite o arquivo \u003cCODE\u003evalues.yaml\u003c/CODE\u003e para especificar a imagem Docker e as verificações de liveness e readiness:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003eimage: \n repository: acrhelm01.azurecr.io/api-sampe01 \n pullPolicy: IfNotPresent \n # Overrides the image tag whose default is the chart appVersion. \n tag: \"001\"\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2 id=\"community-3980279-toc-hId-246662702\"\u003eConfigurar o livenessProbe e o readinessProbe\u003c/H2\u003e\n\u003cP\u003eno arquivo deployment.yaml\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003elivenessProbe: \n httpGet: \n path: {{ .Values.livenessProbe.httpGet.path }} \n port: {{ .Values.livenessProbe.httpGet.port }} \nreadinessProbe: \n httpGet: \n path: {{ .Values.readinessProbe.httpGet.path }} \n port: {{ .Values.readinessProbe.httpGet.port }}\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003ee no arquivo de values.yaml\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003elivenessProbe: \n httpGet: \n path: /WeatherForecast \n port: 5001 \n \nreadinessProbe: \n httpGet: \n path: /WeatherForecast \n port: 5001\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003eEm resumo, essas configurações permitem que os operadores personalizem os valores das configurações do aplicativo quando implantam o chart Helm. As configurações padrão são definidas no arquivo values.yaml, mas podem ser substituídas por valores específicos de implantação, dependendo das necessidades do ambiente em que o chart é implantado. Isso é útil para garantir que o aplicativo seja implantado com configurações adequadas para cada implantação.\u003c/P\u003e\n\u003cH2 id=\"community-3980279-toc-hId--1560791761\"\u003eConfigurar o Servico ClusterIP\u003c/H2\u003e\n\u003cP\u003eno arquivo service.yaml\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003etargetPort: {{ .Values.service.targetPort }}\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003ee no arquivo values.yaml\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003eservice: \n type: LoadBalancer \n port: 80 \n targetPort: 5001\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003eValida\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ehelm template ./ --debug\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003egera outro pacote\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ehelm package ./ -d charts --version 0.1.1\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2 id=\"community-3980279-toc-hId-926721072\"\u003ePasso 11: Atualizar o Deploy\u003c/H2\u003e\n\u003cP\u003eSe você fizer alterações nos valores do Helm, atualize o deploy:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ehelm upgrade helm-weather .\\\\charts\\\\helm-weather-0.1.1.tgz --namespace sample01 --create-namespace --install\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2 id=\"community-3980279-toc-hId--880733391\"\u003ePasso 12: Verificar os Pods\u003c/H2\u003e\n\u003cP\u003eVerifique o estado dos pods após a atualização:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ekubectl get all -n sample01\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003esubiu\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003eNAME READY STATUS RESTARTS AGE \npod/helm-weather-57488847d8-jdxmz 1/1 Running 0 34m \n \nNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE \nservice/helm-weather ClusterIP 10.0.201.39 \u0026lt;none\u0026gt; 80/TCP 128m \n \nNAME READY UP-TO-DATE AVAILABLE AGE \ndeployment.apps/helm-weather 1/1 1 1 128m \n \nNAME DESIRED CURRENT READY AGE \nreplicaset.apps/helm-weather-568c9ddbd 0 0 0 101m \nreplicaset.apps/helm-weather-57488847d8 1 1 1 34m \nreplicaset.apps/helm-weather-646c667ccd 0 0 0 115m \nreplicaset.apps/helm-weather-7767995446 0 0 0 128m \nreplicaset.apps/helm-weather-7fcd86b448 0 0 0 109m\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003eTambém podemos automatizar esse processo usando o Azure devops, para isso vamos precisar de duas services connections:\u003c/P\u003e\n\u003cOL type=\"1\"\u003e\n\u003cLI\u003edocker registry\u003c/LI\u003e\n\u003cLI\u003eAzure Resource manager\u003c/LI\u003e\n\u003c/OL\u003e\n\u003cP\u003ee das tasks de:\u003c/P\u003e\n\u003cOL type=\"1\"\u003e\n\u003cLI\u003eDocker\u003c/LI\u003e\n\u003cLI\u003eHelmDeploy\u003c/LI\u003e\n\u003cLI\u003eHelmInstaller\u003c/LI\u003e\n\u003cLI\u003eHelmDeploy\u003c/LI\u003e\n\u003c/OL\u003e\n\u003cP\u003emais ou menos isso\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003etrigger: \n\\- none \n \nstages: \n\\- stage: Build \n displayName: Build Artifact \n jobs: \n - job: Build \n pool: \n vmImage: ubuntu-latest \n displayName: Build Artifact \n steps: \n - task: Docker@2 \n inputs: \n containerRegistry: 'acrhelm01' \n repository: 'api-weather' \n command: 'buildAndPush' \n Dockerfile: 'sample01/api-weather/Dockerfile' \n tags: '$(Build.BuildId)' \n - bash: | \n helm template ./sample01/helm-weather \n failOnStderr: true \n displayName: 'Helm template - renderiza o template, validacao previa' \n - task: HelmDeploy@0 \n inputs: \n command: 'package' \n chartPath: '././sample01/helm-weather' \n chartVersion: '$(Build.BuildId)' \n \n - task: CopyFiles@2 \n inputs: \n Contents: | \n helm-weather/\\*\\*/\\*.tgz \n TargetFolder: '$(Build.ArtifactStagingDirectory)' \n - task: PublishPipelineArtifact@1 \n inputs: \n targetPath: '$(Build.ArtifactStagingDirectory)' \n artifact: 'drop' \n publishLocation: 'pipeline' \n \n \n\\- stage: Deploy \n displayName: Deploy \n dependsOn: Build \n condition: succeeded() \n jobs: \n - deployment: DeployWeb \n displayName: deploy Web App \n pool: \n vmImage: 'Ubuntu-latest' \n environment: 'aks' \n strategy: \n runOnce: \n deploy: \n steps: \n - download: current \n artifact: drop \n - task: HelmInstaller@1 \n displayName: 'Helm install' \n inputs: \n helmVersionToInstall: 3.11.2 \n - task: HelmDeploy@0 \n inputs: \n connectionType: 'Azure Resource Manager' \n azureSubscription: 'akshelmpoc' \n azureResourceGroup: 'akshelmspoc' \n kubernetesCluster: 'akshelm01' \n namespace: 'sample01' \n command: 'upgrade' \n chartType: 'FilePath' \n chartPath: '$(Pipeline.Workspace)/drop/helm-weather-$(Build.BuildID).tgz' \n chartVersion: '$(Build.BuildId)' \n releaseName: 'helm-weather' \n overrideValues: 'image.repository=acrhelm01.azurecr.io/api-weather,image.tag=$(Build.BuildID)'\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003everificar\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003e kubectl get all -n sample01\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003e\u0026nbsp;\u003c/P\u003e\n\u003cPRE class=\"ow oo ly op bo oq ba bj\"\u003e\u003cSPAN class=\"or ml ev ly b bf os ot l ou ov\" data-selectable-paragraph=\"\"\u003eNAME READY STATUS RESTARTS AGE\u003cBR /\u003epod/helm-weather-77594b48c5-ql96l 1/1 Running 0 24s\u003cBR /\u003e\u003cBR /\u003eNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE\u003cBR /\u003eservice/helm-weather LoadBalancer 10.0.65.168 20.85.198.43 80:30330/TCP 6m45s\u003cBR /\u003e\u003cBR /\u003eNAME READY UP-TO-DATE AVAILABLE AGE\u003cBR /\u003edeployment.apps/helm-weather 1/1 1 1 6m44s\u003cBR /\u003e\u003cBR /\u003eNAME DESIRED CURRENT READY AGE\u003cBR /\u003ereplicaset.apps/helm-weather-568c9ddbd 0 0 0 6m45s\u003cBR /\u003ereplicaset.apps/helm-weather-57488847d8 0 0 0 6m45s\u003cBR /\u003ereplicaset.apps/helm-weather-646c667ccd 0 0 0 6m45s\u003cBR /\u003ereplicaset.apps/helm-weather-6b5486b6d6 0 0 0 6m45s\u003cBR /\u003ereplicaset.apps/helm-weather-77594b48c5 1 1 1 25s\u003cBR /\u003ereplicaset.apps/helm-weather-7767995446 0 0 0 6m45s\u003cBR /\u003ereplicaset.apps/helm-weather-7fcd86b448 0 0 0 6m45s\u003c/SPAN\u003e\u003c/PRE\u003e\n\u003cP\u003e\u0026nbsp;\u003c/P\u003e\n\u003cP\u003e\u003cA href=\"http://20.85.198.43/WeatherForecast\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"\u003ehttp://20.85.198.43/WeatherForecast\u003c/A\u003e\u003c/P\u003e\n\u003cH2 id=\"community-3980279-toc-hId-1606779442\"\u003eConclusão\u003c/H2\u003e\n\u003cP\u003eCom isso, você configurou com sucesso a implantação de uma aplicação de API web no Azure Kubernetes Service usando Helm e o Azure Container Registry. Além disso, você também automatizou o processo usando o Azure DevOps para maior eficiência\u003c/P\u003e\n\u003cH2 id=\"community-3980279-toc-hId--200675021\"\u003eReferências\u003c/H2\u003e\n\u003cOL type=\"1\"\u003e\n\u003cLI\u003e\u003cA href=\"https://helm.sh/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"\u003eHelm\u003c/A\u003e\u003c/LI\u003e\n\u003cLI\u003e\u003cA href=\"https://learn.microsoft.com/pt-br/azure/aks/quickstart-helm?tabs=azure-cli\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eDesenvolver no Serviço de Kubernetes do Azure (AKS) com o Helm — Azure Kubernetes Service | Microsoft Learn\u003c/A\u003e\u003c/LI\u003e\n\u003c/OL\u003e","body@stringLength":"18613","rawBody":"\u003cP\u003eO Helm é um gerenciador de pacotes para Kubernetes que ajuda a instalar, gerenciar e atualizar aplicativos Kubernetes. O Helm usa pacotes chamados “charts” que contêm todos os recursos necessários para implantar um aplicativo no Kubernetes.\u003c/P\u003e\n\u003cP\u003eAlgumas das operações comuns que você pode executar usando o \u003cCODE\u003ehelm\u003c/CODE\u003e incluem:\u003c/P\u003e\n\u003cUL\u003e\n\u003cLI\u003e\u003cCODE\u003ehelm install\u003c/CODE\u003e: instala um chart no cluster do Kubernetes.\u003c/LI\u003e\n\u003cLI\u003e\u003cCODE\u003ehelm upgrade\u003c/CODE\u003e: atualiza um chart já instalado no cluster do Kubernetes.\u003c/LI\u003e\n\u003cLI\u003e\u003cCODE\u003ehelm delete\u003c/CODE\u003e: remove um chart do cluster do Kubernetes.\u003c/LI\u003e\n\u003cLI\u003e\u003cCODE\u003ehelm lint\u003c/CODE\u003e: verifica se o chart é válido.\u003c/LI\u003e\n\u003cLI\u003e\u003cCODE\u003ehelm template\u003c/CODE\u003e: gera o pacote.\u003c/LI\u003e\n\u003c/UL\u003e\n\u003cH2\u003ePrincipais vantagens\u003c/H2\u003e\n\u003cOL type=\"1\"\u003e\n\u003cLI\u003eInstalação de uma aplicação conteinerizada no k8s de forma simplificada com apenas um comando\u003c/LI\u003e\n\u003cLI\u003eVersionamento de releases\u003c/LI\u003e\n\u003cLI\u003eAproveitamento dos mesmos arquivos de recursos em vários ambientes\u003c/LI\u003e\n\u003cLI\u003eHelm é um projeto no CNCF - Cloud Native Computing Foundation\u003c/LI\u003e\n\u003c/OL\u003e\n\u003cH2\u003eComo eu instalo o Helm no Windows para interagir com um cluster AKS?\u003c/H2\u003e\n\u003cP\u003ePara instalar o Helm no Windows e interagir com um cluster AKS, você pode seguir os seguintes passos:\u003c/P\u003e\n\u003cOL type=\"1\"\u003e\n\u003cLI\u003eBaixe o instalador do Helm para Windows a partir do site oficial: \u003cA href=\"https://get.helm.sh/helm-v3.7.1-windows-amd64.zip\" target=\"_blank\" rel=\"noopener\"\u003ehttps://get.helm.sh/helm-v3.7.1-windows-amd64.zip\u003c/A\u003e\u003c/LI\u003e\n\u003cLI\u003eExtraia o conteúdo do arquivo ZIP para uma pasta de sua escolha.\u003c/LI\u003e\n\u003cLI\u003eAdicione a pasta onde o Helm foi extraído ao PATH do Windows\u003c/LI\u003e\n\u003c/OL\u003e\n\u003cUL\u003e\n\u003cLI\u003e\u003cCODE\u003ehelm version\u003c/CODE\u003e\u003c/LI\u003e\n\u003c/UL\u003e\n\u003cH2\u003ePasso 1: Criar arquivos Helm\u003c/H2\u003e\n\u003cP\u003eComece criando uma estrutura de diretórios e arquivos para o Helm.\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ehelm create helm-weather\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003eO comando “helm create” é uma maneira conveniente de iniciar a criação de um novo chart Helm e fornece uma estrutura inicial para você começar a definir como os recursos do Kubernetes serão implantados e configurados usando o Helm. Você pode então personalizar e expandir essa estrutura de acordo com as necessidades do seu aplicativo ou serviço.\u003c/P\u003e\n\u003cH3\u003edepois de rodar o comando “helm create” serão criados os seguintes elementos\u003c/H3\u003e\n\u003cOL type=\"1\"\u003e\n\u003cLI\u003e\n\u003cP\u003e\u003cCODE\u003eDiretório helm-weather:\u003c/CODE\u003e Este diretório é a raiz do seu chart Helm. Ele conterá todos os outros arquivos e diretórios relacionados ao chart.\u003c/P\u003e\n\u003c/LI\u003e\n\u003cLI\u003e\n\u003cP\u003e\u003cCODE\u003eArquivo Chart.yaml:\u003c/CODE\u003e Este arquivo YAML contém informações sobre o chart, como nome, versão, descrição e outros metadados.\u003c/P\u003e\n\u003c/LI\u003e\n\u003cLI\u003e\n\u003cP\u003e\u003cCODE\u003eDiretório charts:\u003c/CODE\u003e Este diretório é usado para armazenar dependências de charts, caso o chart “helm-weather” dependa de outros charts.\u003c/P\u003e\n\u003c/LI\u003e\n\u003cLI\u003e\n\u003cP\u003e\u003cCODE\u003eDiretório templates:\u003c/CODE\u003e Este diretório é onde você pode definir os modelos de recursos do Kubernetes que serão gerados quando você instalar o chart. Os modelos podem ser escritos em YAML e geralmente são usados para criar recursos como pods, serviços, configurações, etc.\u003c/P\u003e\n\u003c/LI\u003e\n\u003cLI\u003e\n\u003cP\u003e\u003cCODE\u003eArquivo values.yaml:\u003c/CODE\u003e Este arquivo contém os valores padrão que serão usados nos modelos do chart. Você pode substituir esses valores ao instalar o chart para personalizar a implantação.\u003c/P\u003e\n\u003c/LI\u003e\n\u003cLI\u003e\n\u003cP\u003e\u003cCODE\u003eArquivo charts/README.md:\u003c/CODE\u003e Este é um arquivo de documentação que fornece informações sobre o chart, como seu propósito e como usá-lo.\u003c/P\u003e\n\u003c/LI\u003e\n\u003cLI\u003e\n\u003cP\u003e\u003cCODE\u003eArquivo README.md:\u003c/CODE\u003e Este é um arquivo de documentação geral para o chart Helm.\u003c/P\u003e\n\u003c/LI\u003e\n\u003c/OL\u003e\n\u003cH2\u003ePasso 2: Criar uma API Web\u003c/H2\u003e\n\u003cP\u003eAgora, crie um projeto de API Web usando o .NET Core:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003edotnet new webapi -o api-weather\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2\u003ePasso 3: Criar a imagem da aplicação\u003c/H2\u003e\n\u003cP\u003eAdicione um Dockerfile para a sua aplicação. Você pode usar o Visual Studio Code e a extensão Docker para facilitar a criação do arquivo Docker. O Dockerfile pode ter o seguinte conteúdo:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003eFROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base \nWORKDIR /app \nEXPOSE 5001 \n \nENV ASPNETCORE\\_URLS=http://+:5001 \n \n\\# Creates a non-root user with an explicit UID and adds permission to access the /app folder \n\\# For more info, please refer to https://aka.ms/vscode-docker-dotnet-configure-containers \nRUN adduser -u 5678 --disabled-password --gecos \"\" appuser \u0026amp;\u0026amp; chown -R appuser /app \nUSER appuser \n \nFROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:7.0 AS build \nARG configuration=Release \nWORKDIR /src \nCOPY \\[\"api-weather.csproj\", \"./\"\\] \nRUN dotnet restore \"api-weather.csproj\" \nCOPY . . \nWORKDIR \"/src/.\" \nRUN dotnet build \"api-weather.csproj\" -c $configuration -o /app/build \n \nFROM build AS publish \nARG configuration=Release \nRUN dotnet publish \"api-weather.csproj\" -c $configuration -o /app/publish /p:UseAppHost=false \n \nFROM base AS final \nWORKDIR /app \nCOPY --from=publish /app/publish . \nENTRYPOINT \\[\"dotnet\", \"api-weather.dll\"\\]\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2\u003ePasso 4: Enviar a imagem para o ACR\u003c/H2\u003e\n\u003cP\u003eAgora, você pode enviar a imagem Docker para o Azure Container Registry (ACR) usando o Azure CLI ou o Docker:\u003c/P\u003e\n\u003cP\u003eUsando o Azure CLI:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003eaz acr build -t api-sampe01 --registry acrhelm01 .\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003eOu usando o Docker:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003eaz acr login -n acrhelm01 \n \ndocker build -t api-sampe01 . \ndocker tag api-sampe01 acrhelm01.azurecr.io/api-sampe01:001 \ndocker push acrhelm01.azurecr.io/api-sampe01:001\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2\u003ePasso 5: Validar os arquivos Helm\u003c/H2\u003e\n\u003cP\u003eAcesse o diretório \u003cCODE\u003ehelm-weather\u003c/CODE\u003e e valide os arquivos Helm:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ecd helm-weather \nhelm template ./ --debug\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2\u003ePasso 6: Gerar o pacote Helm\u003c/H2\u003e\n\u003cP\u003eAgora, gere o pacote Helm (arquivo tar.gz) a partir do diretório:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ehelm package ./ -d charts\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2\u003ePasso 7: Acesso ao cluster AKS\u003c/H2\u003e\n\u003cP\u003eCertifique-se de que você tenha acesso ao cluster AKS onde deseja implantar o aplicativo. Você pode usar o Azure CLI para configurar o acesso:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003eaz aks get-credentials --resource-group akshelmspoc --name akshelm01\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2\u003ePasso 8: Instalar o pacote no Cluster\u003c/H2\u003e\n\u003cP\u003eAgora, você pode implantar o pacote Helm no seu cluster AKS:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ehelm upgrade helm-weather .\\\\charts\\\\helm-weather-0.1.0.tgz --namespace sample01 --create-namespace --install\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2\u003ePasso 9: Verificar o resultado\u003c/H2\u003e\n\u003cP\u003eApós a implantação, você pode verificar o status dos recursos no cluster AKS usando o seguinte comando:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ekubectl get all -n sample01\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003eVocê também pode analisar os detalhes de um pod específico:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ekubectl describe pod helm-weather-7767995446-jchs6 -n sample01\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003ePodemos ver a imagem do nginx:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003eName: helm-weather-7767995446-jchs6 \nNamespace: sample01 \nPriority: 0 \nService Account: helm-weather \nNode: aks-agentpool-30542430-vmss000002/10.224.0.5 \nStart Time: Wed, 27 Sep 2023 11:15:53 -0300 \nLabels: app.kubernetes.io/instance=helm-weather \n app.kubernetes.io/name=helm-weather \n pod-template-hash=7767995446 \nAnnotations: cni.projectcalico.org/containerID: 2273b655dd36ca0d3daaa722cab5a3ce8fd60b463f47fa249be62d9ec75ec6de \n cni.projectcalico.org/podIP: 10.244.1.8/32 \n cni.projectcalico.org/podIPs: 10.244.1.8/32 \nStatus: Running \nIP: 10.244.1.8 \nIPs: \n IP: 10.244.1.8 \nControlled By: ReplicaSet/helm-weather-7767995446 \nContainers: \n helm-weather: \n Container ID: containerd://d07e997d2413a4ca353ce5b3cd6939426127920850c5ede5c740e82d1786065c \n Image: nginx:1.16.0 \n Image ID: docker.io/library/nginx@sha256:3e373fd5b8d41baeddc24be311c5c6929425c04cabf893b874ac09b72a798010 \n Port: 80/TCP \n Host Port: 0/TCP \n State: Running \n Started: Wed, 27 Sep 2023 11:15:57 -0300 \n Ready: True \n Restart Count: 0 \n Liveness: http-get http://:http/ delay=0s timeout=1s period=10s #success=1 #failure=3 \n Readiness: http-get http://:http/ delay=0s timeout=1s period=10s #success=1 #failure=3 \n Environment: \u0026lt;none\u0026gt; \n Mounts: \n /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-vq2xl (ro) \nConditions: \n Type Status \n Initialized True \n Ready True \n ContainersReady True \n PodScheduled True \nVolumes: \n kube-api-access-vq2xl: \n Type: Projected (a volume that contains injected data from multiple sources) \n TokenExpirationSeconds: 3607 \n ConfigMapName: kube-root-ca.crt \n ConfigMapOptional: \u0026lt;nil\u0026gt; \n DownwardAPI: true \nQoS Class: BestEffort \nNode-Selectors: \u0026lt;none\u0026gt; \nTolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s \n node.kubernetes.io/unreachable:NoExecute op=Exists for 300s \nEvents: \n Type Reason Age From Message \n ---- ------ ---- ---- ------- \n Normal Scheduled 4m22s default-scheduler Successfully assigned sample01/helm-weather-7767995446-jchs6 to aks-agentpool-30542430-vmss000002 \n Normal Pulling 4m21s kubelet Pulling image \"nginx:1.16.0\" \n Normal Pulled 4m18s kubelet Successfully pulled image \"nginx:1.16.0\" in 3.022874455s (3.022881155s including waiting) \n Normal Created 4m18s kubelet Created container helm-weather \n Normal Started 4m18s kubelet Started container helm-weather\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2\u003ePasso 10: Configurar o arquivo \u003cCODE\u003evalues.yaml\u003c/CODE\u003e\u003c/H2\u003e\n\u003cP\u003eEdite o arquivo \u003cCODE\u003evalues.yaml\u003c/CODE\u003e para especificar a imagem Docker e as verificações de liveness e readiness:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003eimage: \n repository: acrhelm01.azurecr.io/api-sampe01 \n pullPolicy: IfNotPresent \n # Overrides the image tag whose default is the chart appVersion. \n tag: \"001\"\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2\u003eConfigurar o livenessProbe e o readinessProbe\u003c/H2\u003e\n\u003cP\u003eno arquivo deployment.yaml\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003elivenessProbe: \n httpGet: \n path: {{ .Values.livenessProbe.httpGet.path }} \n port: {{ .Values.livenessProbe.httpGet.port }} \nreadinessProbe: \n httpGet: \n path: {{ .Values.readinessProbe.httpGet.path }} \n port: {{ .Values.readinessProbe.httpGet.port }}\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003ee no arquivo de values.yaml\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003elivenessProbe: \n httpGet: \n path: /WeatherForecast \n port: 5001 \n \nreadinessProbe: \n httpGet: \n path: /WeatherForecast \n port: 5001\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003eEm resumo, essas configurações permitem que os operadores personalizem os valores das configurações do aplicativo quando implantam o chart Helm. As configurações padrão são definidas no arquivo values.yaml, mas podem ser substituídas por valores específicos de implantação, dependendo das necessidades do ambiente em que o chart é implantado. Isso é útil para garantir que o aplicativo seja implantado com configurações adequadas para cada implantação.\u003c/P\u003e\n\u003cH2\u003eConfigurar o Servico ClusterIP\u003c/H2\u003e\n\u003cP\u003eno arquivo service.yaml\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003etargetPort: {{ .Values.service.targetPort }}\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003ee no arquivo values.yaml\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003eservice: \n type: LoadBalancer \n port: 80 \n targetPort: 5001\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003eValida\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ehelm template ./ --debug\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003egera outro pacote\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ehelm package ./ -d charts --version 0.1.1\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2\u003ePasso 11: Atualizar o Deploy\u003c/H2\u003e\n\u003cP\u003eSe você fizer alterações nos valores do Helm, atualize o deploy:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ehelm upgrade helm-weather .\\\\charts\\\\helm-weather-0.1.1.tgz --namespace sample01 --create-namespace --install\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cH2\u003ePasso 12: Verificar os Pods\u003c/H2\u003e\n\u003cP\u003eVerifique o estado dos pods após a atualização:\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003ekubectl get all -n sample01\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003esubiu\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003eNAME READY STATUS RESTARTS AGE \npod/helm-weather-57488847d8-jdxmz 1/1 Running 0 34m \n \nNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE \nservice/helm-weather ClusterIP 10.0.201.39 \u0026lt;none\u0026gt; 80/TCP 128m \n \nNAME READY UP-TO-DATE AVAILABLE AGE \ndeployment.apps/helm-weather 1/1 1 1 128m \n \nNAME DESIRED CURRENT READY AGE \nreplicaset.apps/helm-weather-568c9ddbd 0 0 0 101m \nreplicaset.apps/helm-weather-57488847d8 1 1 1 34m \nreplicaset.apps/helm-weather-646c667ccd 0 0 0 115m \nreplicaset.apps/helm-weather-7767995446 0 0 0 128m \nreplicaset.apps/helm-weather-7fcd86b448 0 0 0 109m\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003eTambém podemos automatizar esse processo usando o Azure devops, para isso vamos precisar de duas services connections:\u003c/P\u003e\n\u003cOL type=\"1\"\u003e\n\u003cLI\u003edocker registry\u003c/LI\u003e\n\u003cLI\u003eAzure Resource manager\u003c/LI\u003e\n\u003c/OL\u003e\n\u003cP\u003ee das tasks de:\u003c/P\u003e\n\u003cOL type=\"1\"\u003e\n\u003cLI\u003eDocker\u003c/LI\u003e\n\u003cLI\u003eHelmDeploy\u003c/LI\u003e\n\u003cLI\u003eHelmInstaller\u003c/LI\u003e\n\u003cLI\u003eHelmDeploy\u003c/LI\u003e\n\u003c/OL\u003e\n\u003cP\u003emais ou menos isso\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003etrigger: \n\\- none \n \nstages: \n\\- stage: Build \n displayName: Build Artifact \n jobs: \n - job: Build \n pool: \n vmImage: ubuntu-latest \n displayName: Build Artifact \n steps: \n - task: Docker@2 \n inputs: \n containerRegistry: 'acrhelm01' \n repository: 'api-weather' \n command: 'buildAndPush' \n Dockerfile: 'sample01/api-weather/Dockerfile' \n tags: '$(Build.BuildId)' \n - bash: | \n helm template ./sample01/helm-weather \n failOnStderr: true \n displayName: 'Helm template - renderiza o template, validacao previa' \n - task: HelmDeploy@0 \n inputs: \n command: 'package' \n chartPath: '././sample01/helm-weather' \n chartVersion: '$(Build.BuildId)' \n \n - task: CopyFiles@2 \n inputs: \n Contents: | \n helm-weather/\\*\\*/\\*.tgz \n TargetFolder: '$(Build.ArtifactStagingDirectory)' \n - task: PublishPipelineArtifact@1 \n inputs: \n targetPath: '$(Build.ArtifactStagingDirectory)' \n artifact: 'drop' \n publishLocation: 'pipeline' \n \n \n\\- stage: Deploy \n displayName: Deploy \n dependsOn: Build \n condition: succeeded() \n jobs: \n - deployment: DeployWeb \n displayName: deploy Web App \n pool: \n vmImage: 'Ubuntu-latest' \n environment: 'aks' \n strategy: \n runOnce: \n deploy: \n steps: \n - download: current \n artifact: drop \n - task: HelmInstaller@1 \n displayName: 'Helm install' \n inputs: \n helmVersionToInstall: 3.11.2 \n - task: HelmDeploy@0 \n inputs: \n connectionType: 'Azure Resource Manager' \n azureSubscription: 'akshelmpoc' \n azureResourceGroup: 'akshelmspoc' \n kubernetesCluster: 'akshelm01' \n namespace: 'sample01' \n command: 'upgrade' \n chartType: 'FilePath' \n chartPath: '$(Pipeline.Workspace)/drop/helm-weather-$(Build.BuildID).tgz' \n chartVersion: '$(Build.BuildId)' \n releaseName: 'helm-weather' \n overrideValues: 'image.repository=acrhelm01.azurecr.io/api-weather,image.tag=$(Build.BuildID)'\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003everificar\u003c/P\u003e\n\u003cPRE\u003e\u003cCODE\u003e kubectl get all -n sample01\u003c/CODE\u003e\u003c/PRE\u003e\n\u003cP\u003e\u0026nbsp;\u003c/P\u003e\n\u003cPRE class=\"ow oo ly op bo oq ba bj\"\u003e\u003cSPAN class=\"or ml ev ly b bf os ot l ou ov\" data-selectable-paragraph=\"\"\u003eNAME READY STATUS RESTARTS AGE\u003cBR /\u003epod/helm-weather-77594b48c5-ql96l 1/1 Running 0 24s\u003cBR /\u003e\u003cBR /\u003eNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE\u003cBR /\u003eservice/helm-weather LoadBalancer 10.0.65.168 20.85.198.43 80:30330/TCP 6m45s\u003cBR /\u003e\u003cBR /\u003eNAME READY UP-TO-DATE AVAILABLE AGE\u003cBR /\u003edeployment.apps/helm-weather 1/1 1 1 6m44s\u003cBR /\u003e\u003cBR /\u003eNAME DESIRED CURRENT READY AGE\u003cBR /\u003ereplicaset.apps/helm-weather-568c9ddbd 0 0 0 6m45s\u003cBR /\u003ereplicaset.apps/helm-weather-57488847d8 0 0 0 6m45s\u003cBR /\u003ereplicaset.apps/helm-weather-646c667ccd 0 0 0 6m45s\u003cBR /\u003ereplicaset.apps/helm-weather-6b5486b6d6 0 0 0 6m45s\u003cBR /\u003ereplicaset.apps/helm-weather-77594b48c5 1 1 1 25s\u003cBR /\u003ereplicaset.apps/helm-weather-7767995446 0 0 0 6m45s\u003cBR /\u003ereplicaset.apps/helm-weather-7fcd86b448 0 0 0 6m45s\u003c/SPAN\u003e\u003c/PRE\u003e\n\u003cP\u003e\u0026nbsp;\u003c/P\u003e\n\u003cP\u003e\u003cA href=\"http://20.85.198.43/WeatherForecast\" target=\"_blank\" rel=\"noopener\"\u003ehttp://20.85.198.43/WeatherForecast\u003c/A\u003e\u003c/P\u003e\n\u003cH2\u003eConclusão\u003c/H2\u003e\n\u003cP\u003eCom isso, você configurou com sucesso a implantação de uma aplicação de API web no Azure Kubernetes Service usando Helm e o Azure Container Registry. Além disso, você também automatizou o processo usando o Azure DevOps para maior eficiência\u003c/P\u003e\n\u003cH2\u003eReferências\u003c/H2\u003e\n\u003cOL type=\"1\"\u003e\n\u003cLI\u003e\u003cA href=\"https://helm.sh/\" target=\"_blank\" rel=\"noopener\"\u003eHelm\u003c/A\u003e\u003c/LI\u003e\n\u003cLI\u003e\u003cA href=\"https://learn.microsoft.com/pt-br/azure/aks/quickstart-helm?tabs=azure-cli\" target=\"_blank\" rel=\"noopener\"\u003eDesenvolver no Serviço de Kubernetes do Azure (AKS) com o Helm — Azure Kubernetes Service | Microsoft Learn\u003c/A\u003e\u003c/LI\u003e\n\u003c/OL\u003e","kudosSumWeight":1,"repliesCount":0,"postTime":"2023-11-13T07:07:28.237-08:00","images":{"__typename":"AssociatedImageConnection","edges":[{"__typename":"AssociatedImageEdge","cursor":"MjQuMTB8Mi4xfG98MjV8X05WX3wx","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTgwMjc5LTUyNDc5NmkwQUM1NEUxRDQxMDdBMzE3?revision=2\"}"}}],"totalCount":1,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"tags":{"__typename":"TagConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"timeToRead":8,"rawTeaser":"\u003cP\u003e\u003cLI-IMAGE width=\"400\" height=\"400\" alt=\"wdossantos_0-1699887789281.png\" align=\"inline\" id=\"524796i0AC54E1D4107A317\" size=\"medium\" resized=\"false\" sourcetype=\"new\" src=\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTgwMjc5LTUyNDc5NmkwQUM1NEUxRDQxMDdBMzE3?image-dimensions=750x750\u0026amp;revision=2\"\u003e\u003c/LI-IMAGE\u003e\u003c/P\u003e\n\u003cP\u003e\u0026nbsp;\u003c/P\u003e\n\u003cP\u003eO Helm é um gerenciador de pacotes para Kubernetes que ajuda a instalar, gerenciar e atualizar aplicativos Kubernetes. O Helm usa pacotes chamados “charts” que contêm todos os recursos necessários para implantar um aplicativo no Kubernetes.\u003c/P\u003e","introduction":"","coverImage":null,"coverImageProperties":{"__typename":"CoverImageProperties","style":"STANDARD","titlePosition":"BOTTOM","altText":""},"currentRevision":{"__ref":"Revision:revision:3980279_2"},"latestVersion":{"__typename":"FriendlyVersion","major":"1","minor":"0"},"metrics":{"__typename":"MessageMetrics","views":2397},"visibilityScope":"PUBLIC","canonicalUrl":null,"seoTitle":null,"seoDescription":null,"placeholder":false,"originalMessageForPlaceholder":null,"contributors":{"__typename":"UserConnection","edges":[]},"nonCoAuthorContributors":{"__typename":"UserConnection","edges":[]},"coAuthors":{"__typename":"UserConnection","edges":[]},"blogMessagePolicies":{"__typename":"BlogMessagePolicies","canDoAuthoringActionsOnBlog":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.blog.action_can_do_authoring_action.accessDenied","key":"error.lithium.policies.blog.action_can_do_authoring_action.accessDenied","args":[]}}},"archivalData":null,"revisions({\"constraints\":{\"isPublished\":{\"eq\":true}},\"first\":1})":{"__typename":"RevisionConnection","totalCount":2},"customFields":[]},"Conversation:conversation:3980279":{"__typename":"Conversation","id":"conversation:3980279","solved":false,"topic":{"__ref":"BlogTopicMessage:message:3980279"},"lastPostingActivityTime":"2023-11-13T07:07:28.237-08:00","lastPostTime":"2023-11-13T07:07:28.237-08:00","unreadReplyCount":0,"isSubscribed":false},"ModerationData:moderation_data:3980279":{"__typename":"ModerationData","id":"moderation_data:3980279","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTgwMjc5LTUyNDc5NmkwQUM1NEUxRDQxMDdBMzE3?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zOTgwMjc5LTUyNDc5NmkwQUM1NEUxRDQxMDdBMzE3?revision=2","title":"wdossantos_0-1699887789281.png","associationType":"TEASER","width":361,"height":257,"altText":null},"Revision:revision:3980279_2":{"__typename":"Revision","id":"revision:3980279_2","lastEditTime":"2023-11-13T07:05:55.985-08:00"},"CachedAsset:theme:customTheme1-1732222159099":{"__typename":"CachedAsset","id":"theme:customTheme1-1732222159099","value":{"id":"customTheme1","animation":{"fast":"150ms","normal":"250ms","slow":"500ms","slowest":"750ms","function":"cubic-bezier(0.07, 0.91, 0.51, 1)","__typename":"AnimationThemeSettings"},"avatar":{"borderRadius":"50%","collections":["default"],"__typename":"AvatarThemeSettings"},"basics":{"browserIcon":{"imageAssetName":"favicon-1730836283320.png","imageLastModified":"1730836286415","__typename":"ThemeAsset"},"customerLogo":{"imageAssetName":"favicon-1730836271365.png","imageLastModified":"1730836274203","__typename":"ThemeAsset"},"maximumWidthOfPageContent":"1300px","oneColumnNarrowWidth":"800px","gridGutterWidthMd":"30px","gridGutterWidthXs":"10px","pageWidthStyle":"WIDTH_OF_BROWSER","__typename":"BasicsThemeSettings"},"buttons":{"borderRadiusSm":"3px","borderRadius":"3px","borderRadiusLg":"5px","paddingY":"5px","paddingYLg":"7px","paddingYHero":"var(--lia-bs-btn-padding-y-lg)","paddingX":"12px","paddingXLg":"16px","paddingXHero":"60px","fontStyle":"NORMAL","fontWeight":"700","textTransform":"NONE","disabledOpacity":0.5,"primaryTextColor":"var(--lia-bs-white)","primaryTextHoverColor":"var(--lia-bs-white)","primaryTextActiveColor":"var(--lia-bs-white)","primaryBgColor":"var(--lia-bs-primary)","primaryBgHoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.85))","primaryBgActiveColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.7))","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","primaryBorderActive":"1px solid transparent","primaryBorderFocus":"1px solid var(--lia-bs-white)","primaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","secondaryTextColor":"var(--lia-bs-gray-900)","secondaryTextHoverColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.95))","secondaryTextActiveColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.9))","secondaryBgColor":"var(--lia-bs-gray-200)","secondaryBgHoverColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.96))","secondaryBgActiveColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.92))","secondaryBorder":"1px solid transparent","secondaryBorderHover":"1px solid transparent","secondaryBorderActive":"1px solid transparent","secondaryBorderFocus":"1px solid transparent","secondaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","tertiaryTextColor":"var(--lia-bs-gray-900)","tertiaryTextHoverColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.95))","tertiaryTextActiveColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.9))","tertiaryBgColor":"transparent","tertiaryBgHoverColor":"transparent","tertiaryBgActiveColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.04)","tertiaryBorder":"1px solid transparent","tertiaryBorderHover":"1px solid hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","tertiaryBorderActive":"1px solid transparent","tertiaryBorderFocus":"1px solid transparent","tertiaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","destructiveTextColor":"var(--lia-bs-danger)","destructiveTextHoverColor":"hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.95))","destructiveTextActiveColor":"hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.9))","destructiveBgColor":"var(--lia-bs-gray-200)","destructiveBgHoverColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.96))","destructiveBgActiveColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.92))","destructiveBorder":"1px solid transparent","destructiveBorderHover":"1px solid transparent","destructiveBorderActive":"1px solid transparent","destructiveBorderFocus":"1px solid transparent","destructiveBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","__typename":"ButtonsThemeSettings"},"border":{"color":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","mainContent":"NONE","sideContent":"LIGHT","radiusSm":"3px","radius":"5px","radiusLg":"9px","radius50":"100vw","__typename":"BorderThemeSettings"},"boxShadow":{"xs":"0 0 0 1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.08), 0 3px 0 -1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.16)","sm":"0 2px 4px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.12)","md":"0 5px 15px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.3)","lg":"0 10px 30px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.3)","__typename":"BoxShadowThemeSettings"},"cards":{"bgColor":"var(--lia-panel-bg-color)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":"var(--lia-box-shadow-xs)","__typename":"CardsThemeSettings"},"chip":{"maxWidth":"300px","height":"30px","__typename":"ChipThemeSettings"},"coreTypes":{"defaultMessageLinkColor":"var(--lia-bs-link-color)","defaultMessageLinkDecoration":"none","defaultMessageLinkFontStyle":"NORMAL","defaultMessageLinkFontWeight":"400","defaultMessageFontStyle":"NORMAL","defaultMessageFontWeight":"400","forumColor":"#4099E2","forumFontFamily":"var(--lia-bs-font-family-base)","forumFontWeight":"var(--lia-default-message-font-weight)","forumLineHeight":"var(--lia-bs-line-height-base)","forumFontStyle":"var(--lia-default-message-font-style)","forumMessageLinkColor":"var(--lia-default-message-link-color)","forumMessageLinkDecoration":"var(--lia-default-message-link-decoration)","forumMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","forumMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","forumSolvedColor":"#148563","blogColor":"#1CBAA0","blogFontFamily":"var(--lia-bs-font-family-base)","blogFontWeight":"var(--lia-default-message-font-weight)","blogLineHeight":"1.75","blogFontStyle":"var(--lia-default-message-font-style)","blogMessageLinkColor":"var(--lia-default-message-link-color)","blogMessageLinkDecoration":"var(--lia-default-message-link-decoration)","blogMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","blogMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","tkbColor":"#4C6B90","tkbFontFamily":"var(--lia-bs-font-family-base)","tkbFontWeight":"var(--lia-default-message-font-weight)","tkbLineHeight":"1.75","tkbFontStyle":"var(--lia-default-message-font-style)","tkbMessageLinkColor":"var(--lia-default-message-link-color)","tkbMessageLinkDecoration":"var(--lia-default-message-link-decoration)","tkbMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","tkbMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaColor":"#4099E2","qandaFontFamily":"var(--lia-bs-font-family-base)","qandaFontWeight":"var(--lia-default-message-font-weight)","qandaLineHeight":"var(--lia-bs-line-height-base)","qandaFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkColor":"var(--lia-default-message-link-color)","qandaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","qandaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaSolvedColor":"#3FA023","ideaColor":"#FF8000","ideaFontFamily":"var(--lia-bs-font-family-base)","ideaFontWeight":"var(--lia-default-message-font-weight)","ideaLineHeight":"var(--lia-bs-line-height-base)","ideaFontStyle":"var(--lia-default-message-font-style)","ideaMessageLinkColor":"var(--lia-default-message-link-color)","ideaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","ideaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","ideaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","contestColor":"#FCC845","contestFontFamily":"var(--lia-bs-font-family-base)","contestFontWeight":"var(--lia-default-message-font-weight)","contestLineHeight":"var(--lia-bs-line-height-base)","contestFontStyle":"var(--lia-default-message-link-font-style)","contestMessageLinkColor":"var(--lia-default-message-link-color)","contestMessageLinkDecoration":"var(--lia-default-message-link-decoration)","contestMessageLinkFontStyle":"ITALIC","contestMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","occasionColor":"#D13A1F","occasionFontFamily":"var(--lia-bs-font-family-base)","occasionFontWeight":"var(--lia-default-message-font-weight)","occasionLineHeight":"var(--lia-bs-line-height-base)","occasionFontStyle":"var(--lia-default-message-font-style)","occasionMessageLinkColor":"var(--lia-default-message-link-color)","occasionMessageLinkDecoration":"var(--lia-default-message-link-decoration)","occasionMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","occasionMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","grouphubColor":"#333333","categoryColor":"#949494","communityColor":"#FFFFFF","productColor":"#949494","__typename":"CoreTypesThemeSettings"},"colors":{"black":"#000000","white":"#FFFFFF","gray100":"#F7F7F7","gray200":"#F7F7F7","gray300":"#E8E8E8","gray400":"#D9D9D9","gray500":"#CCCCCC","gray600":"#717171","gray700":"#707070","gray800":"#545454","gray900":"#333333","dark":"#545454","light":"#F7F7F7","primary":"#0069D4","secondary":"#333333","bodyText":"#333333","bodyBg":"#FFFFFF","info":"#409AE2","success":"#41C5AE","warning":"#FCC844","danger":"#BC341B","alertSystem":"#FF6600","textMuted":"#707070","highlight":"#FFFCAD","outline":"var(--lia-bs-primary)","custom":["#D3F5A4","#243A5E"],"__typename":"ColorsThemeSettings"},"divider":{"size":"3px","marginLeft":"4px","marginRight":"4px","borderRadius":"50%","bgColor":"var(--lia-bs-gray-600)","bgColorActive":"var(--lia-bs-gray-600)","__typename":"DividerThemeSettings"},"dropdown":{"fontSize":"var(--lia-bs-font-size-sm)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius-sm)","dividerBg":"var(--lia-bs-gray-300)","itemPaddingY":"5px","itemPaddingX":"20px","headerColor":"var(--lia-bs-gray-700)","__typename":"DropdownThemeSettings"},"emoji":{"skinToneDefault":"#ffcd43","skinToneLight":"#fae3c5","skinToneMediumLight":"#e2cfa5","skinToneMedium":"#daa478","skinToneMediumDark":"#a78058","skinToneDark":"#5e4d43","__typename":"EmojiThemeSettings"},"heading":{"color":"var(--lia-bs-body-color)","fontFamily":"Segoe UI","fontStyle":"NORMAL","fontWeight":"400","h1FontSize":"34px","h2FontSize":"32px","h3FontSize":"28px","h4FontSize":"24px","h5FontSize":"20px","h6FontSize":"16px","lineHeight":"1.3","subHeaderFontSize":"11px","subHeaderFontWeight":"500","h1LetterSpacing":"normal","h2LetterSpacing":"normal","h3LetterSpacing":"normal","h4LetterSpacing":"normal","h5LetterSpacing":"normal","h6LetterSpacing":"normal","subHeaderLetterSpacing":"2px","h1FontWeight":"var(--lia-bs-headings-font-weight)","h2FontWeight":"var(--lia-bs-headings-font-weight)","h3FontWeight":"var(--lia-bs-headings-font-weight)","h4FontWeight":"var(--lia-bs-headings-font-weight)","h5FontWeight":"var(--lia-bs-headings-font-weight)","h6FontWeight":"var(--lia-bs-headings-font-weight)","__typename":"HeadingThemeSettings"},"icons":{"size10":"10px","size12":"12px","size14":"14px","size16":"16px","size20":"20px","size24":"24px","size30":"30px","size40":"40px","size50":"50px","size60":"60px","size80":"80px","size120":"120px","size160":"160px","__typename":"IconsThemeSettings"},"imagePreview":{"bgColor":"var(--lia-bs-gray-900)","titleColor":"var(--lia-bs-white)","controlColor":"var(--lia-bs-white)","controlBgColor":"var(--lia-bs-gray-800)","__typename":"ImagePreviewThemeSettings"},"input":{"borderColor":"var(--lia-bs-gray-600)","disabledColor":"var(--lia-bs-gray-600)","focusBorderColor":"var(--lia-bs-primary)","labelMarginBottom":"10px","btnFontSize":"var(--lia-bs-font-size-sm)","focusBoxShadow":"0 0 0 3px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","checkLabelMarginBottom":"2px","checkboxBorderRadius":"3px","borderRadiusSm":"var(--lia-bs-border-radius-sm)","borderRadius":"var(--lia-bs-border-radius)","borderRadiusLg":"var(--lia-bs-border-radius-lg)","formTextMarginTop":"4px","textAreaBorderRadius":"var(--lia-bs-border-radius)","activeFillColor":"var(--lia-bs-primary)","__typename":"InputThemeSettings"},"loading":{"dotDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.2)","dotLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.5)","barDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.06)","barLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.4)","__typename":"LoadingThemeSettings"},"link":{"color":"var(--lia-bs-primary)","hoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) - 10%))","decoration":"none","hoverDecoration":"underline","__typename":"LinkThemeSettings"},"listGroup":{"itemPaddingY":"15px","itemPaddingX":"15px","borderColor":"var(--lia-bs-gray-300)","__typename":"ListGroupThemeSettings"},"modal":{"contentTextColor":"var(--lia-bs-body-color)","contentBg":"var(--lia-bs-white)","backgroundBg":"var(--lia-bs-black)","smSize":"440px","mdSize":"760px","lgSize":"1080px","backdropOpacity":0.3,"contentBoxShadowXs":"var(--lia-bs-box-shadow-sm)","contentBoxShadow":"var(--lia-bs-box-shadow)","headerFontWeight":"700","__typename":"ModalThemeSettings"},"navbar":{"position":"FIXED","background":{"attachment":null,"clip":null,"color":"var(--lia-bs-white)","imageAssetName":"","imageLastModified":"0","origin":null,"position":"CENTER_CENTER","repeat":"NO_REPEAT","size":"COVER","__typename":"BackgroundProps"},"backgroundOpacity":0.8,"paddingTop":"15px","paddingBottom":"15px","borderBottom":"1px solid var(--lia-bs-border-color)","boxShadow":"var(--lia-bs-box-shadow-sm)","brandMarginRight":"30px","brandMarginRightSm":"10px","brandLogoHeight":"30px","linkGap":"10px","linkJustifyContent":"flex-start","linkPaddingY":"5px","linkPaddingX":"10px","linkDropdownPaddingY":"9px","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkColor":"var(--lia-bs-body-color)","linkHoverColor":"var(--lia-bs-primary)","linkFontSize":"var(--lia-bs-font-size-sm)","linkFontStyle":"NORMAL","linkFontWeight":"400","linkTextTransform":"NONE","linkLetterSpacing":"normal","linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkBgColor":"transparent","linkBgHoverColor":"transparent","linkBorder":"none","linkBorderHover":"none","linkBoxShadow":"none","linkBoxShadowHover":"none","linkTextBorderBottom":"none","linkTextBorderBottomHover":"none","dropdownPaddingTop":"10px","dropdownPaddingBottom":"15px","dropdownPaddingX":"10px","dropdownMenuOffset":"2px","dropdownDividerMarginTop":"10px","dropdownDividerMarginBottom":"10px","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","controllerIconColor":"var(--lia-bs-body-color)","controllerIconHoverColor":"var(--lia-bs-body-color)","controllerTextColor":"var(--lia-nav-controller-icon-color)","controllerTextHoverColor":"var(--lia-nav-controller-icon-hover-color)","controllerHighlightColor":"hsla(30, 100%, 50%)","controllerHighlightTextColor":"var(--lia-yiq-light)","controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerColor":"var(--lia-nav-controller-icon-color)","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","hamburgerBgColor":"transparent","hamburgerBgHoverColor":"transparent","hamburgerBorder":"none","hamburgerBorderHover":"none","collapseMenuMarginLeft":"20px","collapseMenuDividerBg":"var(--lia-nav-link-color)","collapseMenuDividerOpacity":0.16,"__typename":"NavbarThemeSettings"},"pager":{"textColor":"var(--lia-bs-link-color)","textFontWeight":"var(--lia-font-weight-md)","textFontSize":"var(--lia-bs-font-size-sm)","__typename":"PagerThemeSettings"},"panel":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-bs-border-radius)","borderColor":"var(--lia-bs-border-color)","boxShadow":"none","__typename":"PanelThemeSettings"},"popover":{"arrowHeight":"8px","arrowWidth":"16px","maxWidth":"300px","minWidth":"100px","headerBg":"var(--lia-bs-white)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius)","boxShadow":"0 0.5rem 1rem hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.15)","__typename":"PopoverThemeSettings"},"prism":{"color":"#000000","bgColor":"#f5f2f0","fontFamily":"var(--font-family-monospace)","fontSize":"var(--lia-bs-font-size-base)","fontWeightBold":"var(--lia-bs-font-weight-bold)","fontStyleItalic":"italic","tabSize":2,"highlightColor":"#b3d4fc","commentColor":"#62707e","punctuationColor":"#6f6f6f","namespaceOpacity":"0.7","propColor":"#990055","selectorColor":"#517a00","operatorColor":"#906736","operatorBgColor":"hsla(0, 0%, 100%, 0.5)","keywordColor":"#0076a9","functionColor":"#d3284b","variableColor":"#c14700","__typename":"PrismThemeSettings"},"rte":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":" var(--lia-panel-box-shadow)","customColor1":"#bfedd2","customColor2":"#fbeeb8","customColor3":"#f8cac6","customColor4":"#eccafa","customColor5":"#c2e0f4","customColor6":"#2dc26b","customColor7":"#f1c40f","customColor8":"#e03e2d","customColor9":"#b96ad9","customColor10":"#3598db","customColor11":"#169179","customColor12":"#e67e23","customColor13":"#ba372a","customColor14":"#843fa1","customColor15":"#236fa1","customColor16":"#ecf0f1","customColor17":"#ced4d9","customColor18":"#95a5a6","customColor19":"#7e8c8d","customColor20":"#34495e","customColor21":"#000000","customColor22":"#ffffff","defaultMessageHeaderMarginTop":"40px","defaultMessageHeaderMarginBottom":"20px","defaultMessageItemMarginTop":"0","defaultMessageItemMarginBottom":"10px","diffAddedColor":"hsla(170, 53%, 51%, 0.4)","diffChangedColor":"hsla(43, 97%, 63%, 0.4)","diffNoneColor":"hsla(0, 0%, 80%, 0.4)","diffRemovedColor":"hsla(9, 74%, 47%, 0.4)","specialMessageHeaderMarginTop":"40px","specialMessageHeaderMarginBottom":"20px","specialMessageItemMarginTop":"0","specialMessageItemMarginBottom":"10px","__typename":"RteThemeSettings"},"tags":{"bgColor":"var(--lia-bs-gray-200)","bgHoverColor":"var(--lia-bs-gray-400)","borderRadius":"var(--lia-bs-border-radius-sm)","color":"var(--lia-bs-body-color)","hoverColor":"var(--lia-bs-body-color)","fontWeight":"var(--lia-font-weight-md)","fontSize":"var(--lia-font-size-xxs)","textTransform":"UPPERCASE","letterSpacing":"0.5px","__typename":"TagsThemeSettings"},"toasts":{"borderRadius":"var(--lia-bs-border-radius)","paddingX":"12px","__typename":"ToastsThemeSettings"},"typography":{"fontFamilyBase":"Segoe UI","fontStyleBase":"NORMAL","fontWeightBase":"400","fontWeightLight":"300","fontWeightNormal":"400","fontWeightMd":"500","fontWeightBold":"700","letterSpacingSm":"normal","letterSpacingXs":"normal","lineHeightBase":"1.5","fontSizeBase":"16px","fontSizeXxs":"11px","fontSizeXs":"12px","fontSizeSm":"14px","fontSizeLg":"20px","fontSizeXl":"24px","smallFontSize":"14px","customFonts":[{"source":"SERVER","name":"Segoe UI","styles":[{"style":"NORMAL","weight":"400","__typename":"FontStyleData"},{"style":"NORMAL","weight":"300","__typename":"FontStyleData"},{"style":"NORMAL","weight":"600","__typename":"FontStyleData"},{"style":"NORMAL","weight":"700","__typename":"FontStyleData"},{"style":"ITALIC","weight":"400","__typename":"FontStyleData"}],"assetNames":["SegoeUI-normal-400.woff2","SegoeUI-normal-300.woff2","SegoeUI-normal-600.woff2","SegoeUI-normal-700.woff2","SegoeUI-italic-400.woff2"],"__typename":"CustomFont"},{"source":"SERVER","name":"MWF Fluent Icons","styles":[{"style":"NORMAL","weight":"400","__typename":"FontStyleData"}],"assetNames":["MWFFluentIcons-normal-400.woff2"],"__typename":"CustomFont"}],"__typename":"TypographyThemeSettings"},"unstyledListItem":{"marginBottomSm":"5px","marginBottomMd":"10px","marginBottomLg":"15px","marginBottomXl":"20px","marginBottomXxl":"25px","__typename":"UnstyledListItemThemeSettings"},"yiq":{"light":"#ffffff","dark":"#000000","__typename":"YiqThemeSettings"},"colorLightness":{"primaryDark":0.36,"primaryLight":0.74,"primaryLighter":0.89,"primaryLightest":0.95,"infoDark":0.39,"infoLight":0.72,"infoLighter":0.85,"infoLightest":0.93,"successDark":0.24,"successLight":0.62,"successLighter":0.8,"successLightest":0.91,"warningDark":0.39,"warningLight":0.68,"warningLighter":0.84,"warningLightest":0.93,"dangerDark":0.41,"dangerLight":0.72,"dangerLighter":0.89,"dangerLightest":0.95,"__typename":"ColorLightnessThemeSettings"},"localOverride":false,"__typename":"Theme"},"localOverride":false},"CachedAsset:text:en_US-components/common/EmailVerification-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/common/EmailVerification-1731977288000","value":{"email.verification.title":"Email Verification Required","email.verification.message.update.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. To change your email, visit \u003clink\u003eMy Settings\u003c/link\u003e.","email.verification.message.resend.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. \u003clink\u003eResend email\u003c/link\u003e."},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-1731977288000","value":{"title":"Loading..."},"localOverride":false},"CachedAsset:quilt:o365.prod:pages/blogs/BlogMessagePage:board:DesenvolvedoresBR-1732222157334":{"__typename":"CachedAsset","id":"quilt:o365.prod:pages/blogs/BlogMessagePage:board:DesenvolvedoresBR-1732222157334","value":{"id":"BlogMessagePage","container":{"id":"Common","headerProps":{"backgroundImageProps":null,"backgroundColor":null,"addComponents":null,"removeComponents":["community.widget.bannerWidget"],"componentOrder":null,"__typename":"QuiltContainerSectionProps"},"headerComponentProps":{"community.widget.breadcrumbWidget":{"disableLastCrumbForDesktop":false}},"footerProps":null,"footerComponentProps":null,"items":[{"id":"blog-article","layout":"ONE_COLUMN","bgColor":null,"showTitle":null,"showDescription":null,"textPosition":null,"textColor":null,"sectionEditLevel":"LOCKED","bgImage":null,"disableSpacing":null,"edgeToEdgeDisplay":null,"fullHeight":null,"showBorder":null,"__typename":"OneColumnQuiltSection","columnMap":{"main":[{"id":"blogs.widget.blogArticleWidget","className":"lia-blog-container","props":null,"__typename":"QuiltComponent"}],"__typename":"OneSectionColumns"}},{"id":"section-1729184836777","layout":"MAIN_SIDE","bgColor":"transparent","showTitle":false,"showDescription":false,"textPosition":"CENTER","textColor":"var(--lia-bs-body-color)","sectionEditLevel":null,"bgImage":null,"disableSpacing":null,"edgeToEdgeDisplay":null,"fullHeight":null,"showBorder":null,"__typename":"MainSideQuiltSection","columnMap":{"main":[],"side":[{"id":"custom.widget.Social_Sharing","className":null,"props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"useBackground":true,"title":"Share","lazyLoad":false},"__typename":"QuiltComponent"}],"__typename":"MainSideSectionColumns"}}],"__typename":"QuiltContainer"},"__typename":"Quilt","localOverride":false},"localOverride":false},"CachedAsset:text:en_US-pages/blogs/BlogMessagePage-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-pages/blogs/BlogMessagePage-1731977288000","value":{"title":"{contextMessageSubject} | {communityTitle}","errorMissing":"This blog post cannot be found","name":"Blog Message Page","section.blog-article.title":"Blog Post","section.section-1729184836777.title":"","section.section-1729184836777.description":"","section.CncIde.title":"Blog Post","section.tifEmD.description":"","section.tifEmD.title":""},"localOverride":false},"CachedAsset:quiltWrapper:o365.prod:Common:1732222101036":{"__typename":"CachedAsset","id":"quiltWrapper:o365.prod:Common:1732222101036","value":{"id":"Common","header":{"backgroundImageProps":{"assetName":null,"backgroundSize":"COVER","backgroundRepeat":"NO_REPEAT","backgroundPosition":"CENTER_CENTER","lastModified":null,"__typename":"BackgroundImageProps"},"backgroundColor":"transparent","items":[{"id":"community.widget.navbarWidget","props":{"showUserName":true,"showRegisterLink":true,"useIconLanguagePicker":true,"useLabelLanguagePicker":true,"className":"QuiltComponent_lia-component-edit-mode__0nCcm","links":{"sideLinks":[],"mainLinks":[{"children":[],"linkType":"INTERNAL","id":"gxcuf89792","params":{},"routeName":"CommunityPage"},{"children":[],"linkType":"EXTERNAL","id":"external-link","url":"/Directory","target":"SELF"},{"children":[{"linkType":"INTERNAL","id":"microsoft365","params":{"categoryId":"microsoft365"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-teams","params":{"categoryId":"MicrosoftTeams"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"windows","params":{"categoryId":"Windows"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-securityand-compliance","params":{"categoryId":"MicrosoftSecurityandCompliance"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"outlook","params":{"categoryId":"Outlook"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"planner","params":{"categoryId":"Planner"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"windows-server","params":{"categoryId":"Windows-Server"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"azure","params":{"categoryId":"Azure"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"exchange","params":{"categoryId":"Exchange"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-endpoint-manager","params":{"categoryId":"microsoft-endpoint-manager"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"s-q-l-server","params":{"categoryId":"SQL-Server"},"routeName":"CategoryPage"},{"linkType":"EXTERNAL","id":"external-link-2","url":"/Directory","target":"SELF"}],"linkType":"EXTERNAL","id":"communities","url":"/","target":"BLANK"},{"children":[{"linkType":"INTERNAL","id":"education-sector","params":{"categoryId":"EducationSector"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"a-i","params":{"categoryId":"AI"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"i-t-ops-talk","params":{"categoryId":"ITOpsTalk"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"partner-community","params":{"categoryId":"PartnerCommunity"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-mechanics","params":{"categoryId":"MicrosoftMechanics"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"healthcare-and-life-sciences","params":{"categoryId":"HealthcareAndLifeSciences"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"public-sector","params":{"categoryId":"PublicSector"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"io-t","params":{"categoryId":"IoT"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"driving-adoption","params":{"categoryId":"DrivingAdoption"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"s-m-b","params":{"categoryId":"SMB"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"startupsat-microsoft","params":{"categoryId":"StartupsatMicrosoft"},"routeName":"CategoryPage"},{"linkType":"EXTERNAL","id":"external-link-1","url":"/Directory","target":"SELF"}],"linkType":"EXTERNAL","id":"communities-1","url":"/","target":"SELF"},{"children":[],"linkType":"EXTERNAL","id":"external","url":"/Blogs","target":"SELF"},{"children":[],"linkType":"EXTERNAL","id":"external-1","url":"/Events","target":"SELF"},{"children":[{"linkType":"INTERNAL","id":"microsoft-learn-1","params":{"categoryId":"MicrosoftLearn"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-learn-blog","params":{"boardId":"MicrosoftLearnBlog","categoryId":"MicrosoftLearn"},"routeName":"BlogBoardPage"},{"linkType":"EXTERNAL","id":"external-10","url":"https://learningroomdirectory.microsoft.com/","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-3","url":"https://docs.microsoft.com/learn/dynamics365/?WT.mc_id=techcom_header-webpage-m365","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-4","url":"https://docs.microsoft.com/learn/m365/?wt.mc_id=techcom_header-webpage-m365","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-5","url":"https://docs.microsoft.com/learn/topics/sci/?wt.mc_id=techcom_header-webpage-m365","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-6","url":"https://docs.microsoft.com/learn/powerplatform/?wt.mc_id=techcom_header-webpage-powerplatform","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-7","url":"https://docs.microsoft.com/learn/github/?wt.mc_id=techcom_header-webpage-github","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-8","url":"https://docs.microsoft.com/learn/teams/?wt.mc_id=techcom_header-webpage-teams","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-9","url":"https://docs.microsoft.com/learn/dotnet/?wt.mc_id=techcom_header-webpage-dotnet","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-2","url":"https://docs.microsoft.com/learn/azure/?WT.mc_id=techcom_header-webpage-m365","target":"BLANK"}],"linkType":"INTERNAL","id":"microsoft-learn","params":{"categoryId":"MicrosoftLearn"},"routeName":"CategoryPage"},{"children":[],"linkType":"INTERNAL","id":"community-info-center","params":{"categoryId":"Community-Info-Center"},"routeName":"CategoryPage"}]},"style":{"boxShadow":"var(--lia-bs-box-shadow-sm)","controllerHighlightColor":"hsla(30, 100%, 50%)","linkFontWeight":"400","dropdownDividerMarginBottom":"10px","hamburgerBorderHover":"none","linkBoxShadowHover":"none","linkFontSize":"14px","backgroundOpacity":0.8,"controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerBgColor":"transparent","hamburgerColor":"var(--lia-nav-controller-icon-color)","linkTextBorderBottom":"none","brandLogoHeight":"30px","linkBgHoverColor":"transparent","linkLetterSpacing":"normal","collapseMenuDividerOpacity":0.16,"dropdownPaddingBottom":"15px","paddingBottom":"15px","dropdownMenuOffset":"2px","hamburgerBgHoverColor":"transparent","borderBottom":"1px solid var(--lia-bs-border-color)","hamburgerBorder":"none","dropdownPaddingX":"10px","brandMarginRightSm":"10px","linkBoxShadow":"none","collapseMenuDividerBg":"var(--lia-nav-link-color)","linkColor":"var(--lia-bs-body-color)","linkJustifyContent":"flex-start","dropdownPaddingTop":"10px","controllerHighlightTextColor":"var(--lia-yiq-dark)","controllerTextColor":"var(--lia-nav-controller-icon-color)","background":{"imageAssetName":"","color":"var(--lia-bs-white)","size":"COVER","repeat":"NO_REPEAT","position":"CENTER_CENTER","imageLastModified":""},"linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkHoverColor":"var(--lia-bs-body-color)","position":"FIXED","linkBorder":"none","linkTextBorderBottomHover":"2px solid var(--lia-bs-body-color)","brandMarginRight":"30px","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","linkBorderHover":"none","collapseMenuMarginLeft":"20px","linkFontStyle":"NORMAL","controllerTextHoverColor":"var(--lia-nav-controller-icon-hover-color)","linkPaddingX":"10px","linkPaddingY":"5px","paddingTop":"15px","linkTextTransform":"NONE","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","linkBgColor":"transparent","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkDropdownPaddingY":"9px","controllerIconColor":"var(--lia-bs-body-color)","dropdownDividerMarginTop":"10px","linkGap":"10px","controllerIconHoverColor":"var(--lia-bs-body-color)"},"showSearchIcon":false,"languagePickerStyle":"iconAndLabel"},"__typename":"QuiltComponent"},{"id":"community.widget.breadcrumbWidget","props":{"backgroundColor":"transparent","linkHighlightColor":"var(--lia-bs-primary)","visualEffects":{"showBottomBorder":true},"linkTextColor":"var(--lia-bs-gray-700)"},"__typename":"QuiltComponent"},{"id":"custom.widget.HeroBanner","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"usePageWidth":false,"useBackground":false,"cMax_items":3,"title":"","lazyLoad":false,"widgetChooser":"custom.widget.HeroBanner"},"__typename":"QuiltComponent"}],"__typename":"QuiltWrapperSection"},"footer":{"backgroundImageProps":{"assetName":null,"backgroundSize":"COVER","backgroundRepeat":"NO_REPEAT","backgroundPosition":"CENTER_CENTER","lastModified":null,"__typename":"BackgroundImageProps"},"backgroundColor":"transparent","items":[{"id":"custom.widget.MicrosoftFooter","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"useBackground":false,"title":"","lazyLoad":false},"__typename":"QuiltComponent"}],"__typename":"QuiltWrapperSection"},"__typename":"QuiltWrapper","localOverride":false},"localOverride":false},"CachedAsset:text:en_US-components/common/ActionFeedback-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/common/ActionFeedback-1731977288000","value":{"joinedGroupHub.title":"Welcome","joinedGroupHub.message":"You are now a member of this group and are subscribed to updates.","groupHubInviteNotFound.title":"Invitation Not Found","groupHubInviteNotFound.message":"Sorry, we could not find your invitation to the group. The owner may have canceled the invite.","groupHubNotFound.title":"Group Not Found","groupHubNotFound.message":"The grouphub you tried to join does not exist. It may have been deleted.","existingGroupHubMember.title":"Already Joined","existingGroupHubMember.message":"You are already a member of this group.","accountLocked.title":"Account Locked","accountLocked.message":"Your account has been locked due to multiple failed attempts. Try again in {lockoutTime} minutes.","editedGroupHub.title":"Changes Saved","editedGroupHub.message":"Your group has been updated.","leftGroupHub.title":"Goodbye","leftGroupHub.message":"You are no longer a member of this group and will not receive future updates.","deletedGroupHub.title":"Deleted","deletedGroupHub.message":"The group has been deleted.","groupHubCreated.title":"Group Created","groupHubCreated.message":"{groupHubName} is ready to use","accountClosed.title":"Account Closed","accountClosed.message":"The account has been closed and you will now be redirected to the homepage","resetTokenExpired.title":"Reset Password Link has Expired","resetTokenExpired.message":"Try resetting your password again","invalidUrl.title":"Invalid URL","invalidUrl.message":"The URL you're using is not recognized. Verify your URL and try again.","accountClosedForUser.title":"Account Closed","accountClosedForUser.message":"{userName}'s account is closed","inviteTokenInvalid.title":"Invitation Invalid","inviteTokenInvalid.message":"Your invitation to the community has been canceled or expired.","inviteTokenError.title":"Invitation Verification Failed","inviteTokenError.message":"The url you are utilizing is not recognized. Verify your URL and try again","pageNotFound.title":"Access Denied","pageNotFound.message":"You do not have access to this area of the community or it doesn't exist","eventAttending.title":"Responded as Attending","eventAttending.message":"You'll be notified when there's new activity and reminded as the event approaches","eventInterested.title":"Responded as Interested","eventInterested.message":"You'll be notified when there's new activity and reminded as the event approaches","eventNotFound.title":"Event Not Found","eventNotFound.message":"The event you tried to respond to does not exist."},"localOverride":false},"CachedAsset:component:custom.widget.HeroBanner-en-1732222230018":{"__typename":"CachedAsset","id":"component:custom.widget.HeroBanner-en-1732222230018","value":{"component":{"id":"custom.widget.HeroBanner","template":{"id":"HeroBanner","markupLanguage":"REACT","style":null,"texts":{"searchPlaceholderText":"Search this community","followActionText":"Follow","unfollowActionText":"Following","searchOnHoverText":"Please enter your search term(s) and then press return key to complete a search."},"defaults":{"config":{"applicablePages":[],"dynamicByCoreNode":null,"description":null,"fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[{"id":"max_items","dataType":"NUMBER","list":false,"defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"control":"INPUT","__typename":"PropDefinition"}],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.HeroBanner","form":{"fields":[{"id":"widgetChooser","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"title","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useTitle","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useBackground","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"widgetVisibility","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"moreOptions","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"cMax_items","validation":null,"noValidation":null,"dataType":"NUMBER","list":false,"control":"INPUT","defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"__typename":"FormField"}],"layout":{"rows":[{"id":"widgetChooserGroup","type":"fieldset","as":null,"items":[{"id":"widgetChooser","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"titleGroup","type":"fieldset","as":null,"items":[{"id":"title","className":null,"__typename":"FormFieldRef"},{"id":"useTitle","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"useBackground","type":"fieldset","as":null,"items":[{"id":"useBackground","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"widgetVisibility","type":"fieldset","as":null,"items":[{"id":"widgetVisibility","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"moreOptionsGroup","type":"fieldset","as":null,"items":[{"id":"moreOptions","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"componentPropsGroup","type":"fieldset","as":null,"items":[{"id":"cMax_items","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"}],"actionButtons":null,"className":"custom_widget_HeroBanner_form","formGroupFieldSeparator":"divider","__typename":"FormLayout"},"__typename":"Form"},"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"dynamicByCoreNode":null,"description":null,"fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[{"id":"max_items","dataType":"NUMBER","list":false,"defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"control":"INPUT","__typename":"PropDefinition"}],"__typename":"ComponentProperties"},"form":{"fields":[{"id":"widgetChooser","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"title","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useTitle","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useBackground","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"widgetVisibility","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"moreOptions","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"cMax_items","validation":null,"noValidation":null,"dataType":"NUMBER","list":false,"control":"INPUT","defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"__typename":"FormField"}],"layout":{"rows":[{"id":"widgetChooserGroup","type":"fieldset","as":null,"items":[{"id":"widgetChooser","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"titleGroup","type":"fieldset","as":null,"items":[{"id":"title","className":null,"__typename":"FormFieldRef"},{"id":"useTitle","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"useBackground","type":"fieldset","as":null,"items":[{"id":"useBackground","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"widgetVisibility","type":"fieldset","as":null,"items":[{"id":"widgetVisibility","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"moreOptionsGroup","type":"fieldset","as":null,"items":[{"id":"moreOptions","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"componentPropsGroup","type":"fieldset","as":null,"items":[{"id":"cMax_items","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"}],"actionButtons":null,"className":"custom_widget_HeroBanner_form","formGroupFieldSeparator":"divider","__typename":"FormLayout"},"__typename":"Form"},"__typename":"Component","localOverride":false},"globalCss":null,"form":{"fields":[{"id":"widgetChooser","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"title","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useTitle","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useBackground","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"widgetVisibility","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"moreOptions","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"cMax_items","validation":null,"noValidation":null,"dataType":"NUMBER","list":false,"control":"INPUT","defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"__typename":"FormField"}],"layout":{"rows":[{"id":"widgetChooserGroup","type":"fieldset","as":null,"items":[{"id":"widgetChooser","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"titleGroup","type":"fieldset","as":null,"items":[{"id":"title","className":null,"__typename":"FormFieldRef"},{"id":"useTitle","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"useBackground","type":"fieldset","as":null,"items":[{"id":"useBackground","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"widgetVisibility","type":"fieldset","as":null,"items":[{"id":"widgetVisibility","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"moreOptionsGroup","type":"fieldset","as":null,"items":[{"id":"moreOptions","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"componentPropsGroup","type":"fieldset","as":null,"items":[{"id":"cMax_items","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"}],"actionButtons":null,"className":"custom_widget_HeroBanner_form","formGroupFieldSeparator":"divider","__typename":"FormLayout"},"__typename":"Form"}},"localOverride":false},"CachedAsset:component:custom.widget.Social_Sharing-en-1732222230018":{"__typename":"CachedAsset","id":"component:custom.widget.Social_Sharing-en-1732222230018","value":{"component":{"id":"custom.widget.Social_Sharing","template":{"id":"Social_Sharing","markupLanguage":"HANDLEBARS","style":".social-share {\n .sharing-options {\n position: relative;\n margin: 0;\n padding: 0;\n line-height: 10px;\n display: flex;\n justify-content: left;\n gap: 5px;\n list-style-type: none;\n li {\n text-align: left;\n a {\n min-width: 30px;\n min-height: 30px;\n display: block;\n padding: 1px;\n .social-share-linkedin {\n img {\n background-color: rgb(0, 119, 181);\n }\n }\n .social-share-facebook {\n img {\n background-color: rgb(59, 89, 152);\n }\n }\n .social-share-x {\n img {\n background-color: rgb(0, 0, 0);\n }\n }\n .social-share-rss {\n img {\n background-color: rgb(0, 0, 0);\n }\n }\n .social-share-reddit {\n img {\n background-color: rgb(255, 69, 0);\n }\n }\n .social-share-email {\n img {\n background-color: rgb(132, 132, 132);\n }\n }\n }\n a {\n img {\n height: 2rem;\n }\n }\n }\n }\n}\n","texts":null,"defaults":{"config":{"applicablePages":[],"dynamicByCoreNode":false,"description":"Adds buttons to share to various social media websites","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Social_Sharing","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"dynamicByCoreNode":false,"description":"Adds buttons to share to various social media websites","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":{"css":".custom_widget_Social_Sharing_social-share_c7xxz_1 {\n .custom_widget_Social_Sharing_sharing-options_c7xxz_2 {\n position: relative;\n margin: 0;\n padding: 0;\n line-height: 0.625rem;\n display: flex;\n justify-content: left;\n gap: 0.3125rem;\n list-style-type: none;\n li {\n text-align: left;\n a {\n min-width: 1.875rem;\n min-height: 1.875rem;\n display: block;\n padding: 0.0625rem;\n .custom_widget_Social_Sharing_social-share-linkedin_c7xxz_18 {\n img {\n background-color: rgb(0, 119, 181);\n }\n }\n .custom_widget_Social_Sharing_social-share-facebook_c7xxz_23 {\n img {\n background-color: rgb(59, 89, 152);\n }\n }\n .custom_widget_Social_Sharing_social-share-x_c7xxz_28 {\n img {\n background-color: rgb(0, 0, 0);\n }\n }\n .custom_widget_Social_Sharing_social-share-rss_c7xxz_33 {\n img {\n background-color: rgb(0, 0, 0);\n }\n }\n .custom_widget_Social_Sharing_social-share-reddit_c7xxz_38 {\n img {\n background-color: rgb(255, 69, 0);\n }\n }\n .custom_widget_Social_Sharing_social-share-email_c7xxz_43 {\n img {\n background-color: rgb(132, 132, 132);\n }\n }\n }\n a {\n img {\n height: 2rem;\n }\n }\n }\n }\n}\n","tokens":{"social-share":"custom_widget_Social_Sharing_social-share_c7xxz_1","sharing-options":"custom_widget_Social_Sharing_sharing-options_c7xxz_2","social-share-linkedin":"custom_widget_Social_Sharing_social-share-linkedin_c7xxz_18","social-share-facebook":"custom_widget_Social_Sharing_social-share-facebook_c7xxz_23","social-share-x":"custom_widget_Social_Sharing_social-share-x_c7xxz_28","social-share-rss":"custom_widget_Social_Sharing_social-share-rss_c7xxz_33","social-share-reddit":"custom_widget_Social_Sharing_social-share-reddit_c7xxz_38","social-share-email":"custom_widget_Social_Sharing_social-share-email_c7xxz_43"}},"form":null},"localOverride":false},"CachedAsset:component:custom.widget.MicrosoftFooter-en-1732222230018":{"__typename":"CachedAsset","id":"component:custom.widget.MicrosoftFooter-en-1732222230018","value":{"component":{"id":"custom.widget.MicrosoftFooter","template":{"id":"MicrosoftFooter","markupLanguage":"HANDLEBARS","style":".context-uhf {\n min-width: 280px;\n font-size: 15px;\n box-sizing: border-box;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n \u0026 *,\n \u0026 *:before,\n \u0026 *:after {\n box-sizing: inherit;\n }\n a.c-uhff-link {\n color: #616161;\n word-break: break-word;\n text-decoration: none;\n }\n \u0026a:link,\n \u0026a:focus,\n \u0026a:hover,\n \u0026a:active,\n \u0026a:visited {\n text-decoration: none;\n color: inherit;\n }\n \u0026 div {\n font-family: 'Segoe UI', SegoeUI, 'Helvetica Neue', Helvetica, Arial, sans-serif;\n }\n}\n.c-uhff {\n background: #f2f2f2;\n margin: -1.5625;\n width: auto;\n height: auto;\n}\n.c-uhff-nav {\n margin: 0 auto;\n max-width: calc(1600px + 10%);\n padding: 0 5%;\n box-sizing: inherit;\n \u0026:before,\n \u0026:after {\n content: ' ';\n display: table;\n clear: left;\n }\n @media only screen and (max-width: 1083px) {\n padding-left: 12px;\n }\n .c-heading-4 {\n color: #616161;\n word-break: break-word;\n font-size: 15px;\n line-height: 20px;\n padding: 36px 0 4px;\n font-weight: 600;\n }\n .c-uhff-nav-row {\n .c-uhff-nav-group {\n display: block;\n float: left;\n min-height: 1px;\n vertical-align: text-top;\n padding: 0 12px;\n width: 100%;\n zoom: 1;\n \u0026:first-child {\n padding-left: 0;\n @media only screen and (max-width: 1083px) {\n padding-left: 12px;\n }\n }\n @media only screen and (min-width: 540px) and (max-width: 1082px) {\n width: 33.33333%;\n }\n @media only screen and (min-width: 1083px) {\n width: 16.6666666667%;\n }\n ul.c-list.f-bare {\n font-size: 11px;\n line-height: 16px;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 0;\n list-style-type: none;\n li {\n word-break: break-word;\n padding: 8px 0;\n margin: 0;\n }\n }\n }\n }\n}\n.c-uhff-base {\n background: #f2f2f2;\n margin: 0 auto;\n max-width: calc(1600px + 10%);\n padding: 30px 5% 16px;\n \u0026:before,\n \u0026:after {\n content: ' ';\n display: table;\n }\n \u0026:after {\n clear: both;\n }\n a.c-uhff-ccpa {\n font-size: 11px;\n line-height: 16px;\n float: left;\n margin: 3px 0;\n }\n a.c-uhff-ccpa:hover {\n text-decoration: underline;\n }\n ul.c-list {\n font-size: 11px;\n line-height: 16px;\n float: right;\n margin: 3px 0;\n color: #616161;\n li {\n padding: 0 24px 4px 0;\n display: inline-block;\n }\n }\n .c-list.f-bare {\n padding-left: 0;\n list-style-type: none;\n }\n @media only screen and (max-width: 1083px) {\n display: flex;\n flex-wrap: wrap;\n padding: 30px 24px 16px;\n }\n}\n","texts":{"New tab":"What's New","New 1":"Surface Laptop Studio 2","New 2":"Surface Laptop Go 3","New 3":"Surface Pro 9","New 4":"Surface Laptop 5","New 5":"Surface Studio 2+","New 6":"Copilot in Windows","New 7":"Microsoft 365","New 8":"Windows 11 apps","Store tab":"Microsoft Store","Store 1":"Account Profile","Store 2":"Download Center","Store 3":"Microsoft Store Support","Store 4":"Returns","Store 5":"Order tracking","Store 6":"Certified Refurbished","Store 7":"Microsoft Store Promise","Store 8":"Flexible Payments","Education tab":"Education","Edu 1":"Microsoft in education","Edu 2":"Devices for education","Edu 3":"Microsoft Teams for Education","Edu 4":"Microsoft 365 Education","Edu 5":"How to buy for your school","Edu 6":"Educator Training and development","Edu 7":"Deals for students and parents","Edu 8":"Azure for students","Business tab":"Business","Bus 1":"Microsoft Cloud","Bus 2":"Microsoft Security","Bus 3":"Dynamics 365","Bus 4":"Microsoft 365","Bus 5":"Microsoft Power Platform","Bus 6":"Microsoft Teams","Bus 7":"Microsoft Industry","Bus 8":"Small Business","Developer tab":"Developer \u0026 IT","Dev 1":"Azure","Dev 2":"Developer Center","Dev 3":"Documentation","Dev 4":"Microsoft Learn","Dev 5":"Microsoft Tech Community","Dev 6":"Azure Marketplace","Dev 7":"AppSource","Dev 8":"Visual Studio","Company tab":"Company","Com 1":"Careers","Com 2":"About Microsoft","Com 3":"Company News","Com 4":"Privacy at Microsoft","Com 5":"Investors","Com 6":"Diversity and inclusion","Com 7":"Accessiblity","Com 8":"Sustainibility"},"defaults":{"config":{"applicablePages":[],"dynamicByCoreNode":false,"description":"The Microsoft Footer","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.MicrosoftFooter","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"dynamicByCoreNode":false,"description":"The Microsoft Footer","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":{"css":".custom_widget_MicrosoftFooter_context-uhf_f95yq_1 {\n min-width: 17.5rem;\n font-size: 0.9375rem;\n box-sizing: border-box;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n \u0026 *,\n \u0026 *:before,\n \u0026 *:after {\n box-sizing: inherit;\n }\n a.custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12 {\n color: #616161;\n word-break: break-word;\n text-decoration: none;\n }\n \u0026a:link,\n \u0026a:focus,\n \u0026a:hover,\n \u0026a:active,\n \u0026a:visited {\n text-decoration: none;\n color: inherit;\n }\n \u0026 div {\n font-family: 'Segoe UI', SegoeUI, 'Helvetica Neue', Helvetica, Arial, sans-serif;\n }\n}\n.custom_widget_MicrosoftFooter_c-uhff_f95yq_12 {\n background: #f2f2f2;\n margin: -1.5625;\n width: auto;\n height: auto;\n}\n.custom_widget_MicrosoftFooter_c-uhff-nav_f95yq_35 {\n margin: 0 auto;\n max-width: calc(100rem + 10%);\n padding: 0 5%;\n box-sizing: inherit;\n \u0026:before,\n \u0026:after {\n content: ' ';\n display: table;\n clear: left;\n }\n @media only screen and (max-width: 1083px) {\n padding-left: 0.75rem;\n }\n .custom_widget_MicrosoftFooter_c-heading-4_f95yq_49 {\n color: #616161;\n word-break: break-word;\n font-size: 0.9375rem;\n line-height: 1.25rem;\n padding: 2.25rem 0 0.25rem;\n font-weight: 600;\n }\n .custom_widget_MicrosoftFooter_c-uhff-nav-row_f95yq_57 {\n .custom_widget_MicrosoftFooter_c-uhff-nav-group_f95yq_58 {\n display: block;\n float: left;\n min-height: 0.0625rem;\n vertical-align: text-top;\n padding: 0 0.75rem;\n width: 100%;\n zoom: 1;\n \u0026:first-child {\n padding-left: 0;\n @media only screen and (max-width: 1083px) {\n padding-left: 0.75rem;\n }\n }\n @media only screen and (min-width: 540px) and (max-width: 1082px) {\n width: 33.33333%;\n }\n @media only screen and (min-width: 1083px) {\n width: 16.6666666667%;\n }\n ul.custom_widget_MicrosoftFooter_c-list_f95yq_78.custom_widget_MicrosoftFooter_f-bare_f95yq_78 {\n font-size: 0.6875rem;\n line-height: 1rem;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 0;\n list-style-type: none;\n li {\n word-break: break-word;\n padding: 0.5rem 0;\n margin: 0;\n }\n }\n }\n }\n}\n.custom_widget_MicrosoftFooter_c-uhff-base_f95yq_94 {\n background: #f2f2f2;\n margin: 0 auto;\n max-width: calc(100rem + 10%);\n padding: 1.875rem 5% 1rem;\n \u0026:before,\n \u0026:after {\n content: ' ';\n display: table;\n }\n \u0026:after {\n clear: both;\n }\n a.custom_widget_MicrosoftFooter_c-uhff-ccpa_f95yq_107 {\n font-size: 0.6875rem;\n line-height: 1rem;\n float: left;\n margin: 0.1875rem 0;\n }\n a.custom_widget_MicrosoftFooter_c-uhff-ccpa_f95yq_107:hover {\n text-decoration: underline;\n }\n ul.custom_widget_MicrosoftFooter_c-list_f95yq_78 {\n font-size: 0.6875rem;\n line-height: 1rem;\n float: right;\n margin: 0.1875rem 0;\n color: #616161;\n li {\n padding: 0 1.5rem 0.25rem 0;\n display: inline-block;\n }\n }\n .custom_widget_MicrosoftFooter_c-list_f95yq_78.custom_widget_MicrosoftFooter_f-bare_f95yq_78 {\n padding-left: 0;\n list-style-type: none;\n }\n @media only screen and (max-width: 1083px) {\n display: flex;\n flex-wrap: wrap;\n padding: 1.875rem 1.5rem 1rem;\n }\n}\n","tokens":{"context-uhf":"custom_widget_MicrosoftFooter_context-uhf_f95yq_1","c-uhff-link":"custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12","c-uhff":"custom_widget_MicrosoftFooter_c-uhff_f95yq_12","c-uhff-nav":"custom_widget_MicrosoftFooter_c-uhff-nav_f95yq_35","c-heading-4":"custom_widget_MicrosoftFooter_c-heading-4_f95yq_49","c-uhff-nav-row":"custom_widget_MicrosoftFooter_c-uhff-nav-row_f95yq_57","c-uhff-nav-group":"custom_widget_MicrosoftFooter_c-uhff-nav-group_f95yq_58","c-list":"custom_widget_MicrosoftFooter_c-list_f95yq_78","f-bare":"custom_widget_MicrosoftFooter_f-bare_f95yq_78","c-uhff-base":"custom_widget_MicrosoftFooter_c-uhff-base_f95yq_94","c-uhff-ccpa":"custom_widget_MicrosoftFooter_c-uhff-ccpa_f95yq_107"}},"form":null},"localOverride":false},"CachedAsset:text:en_US-components/community/Breadcrumb-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/community/Breadcrumb-1731977288000","value":{"navLabel":"Breadcrumbs","dropdown":"Additional parent page navigation"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBanner-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBanner-1731977288000","value":{"messageMarkedAsSpam":"This post has been marked as spam","messageMarkedAsSpam@board:TKB":"This article has been marked as spam","messageMarkedAsSpam@board:BLOG":"This post has been marked as spam","messageMarkedAsSpam@board:FORUM":"This discussion has been marked as spam","messageMarkedAsSpam@board:OCCASION":"This event has been marked as spam","messageMarkedAsSpam@board:IDEA":"This idea has been marked as spam","manageSpam":"Manage Spam","messageMarkedAsAbuse":"This post has been marked as abuse","messageMarkedAsAbuse@board:TKB":"This article has been marked as abuse","messageMarkedAsAbuse@board:BLOG":"This post has been marked as abuse","messageMarkedAsAbuse@board:FORUM":"This discussion has been marked as abuse","messageMarkedAsAbuse@board:OCCASION":"This event has been marked as abuse","messageMarkedAsAbuse@board:IDEA":"This idea has been marked as abuse","preModCommentAuthorText":"This comment will be published as soon as it is approved","preModCommentModeratorText":"This comment is awaiting moderation","messageMarkedAsOther":"This post has been rejected due to other reasons","messageMarkedAsOther@board:TKB":"This article has been rejected due to other reasons","messageMarkedAsOther@board:BLOG":"This post has been rejected due to other reasons","messageMarkedAsOther@board:FORUM":"This discussion has been rejected due to other reasons","messageMarkedAsOther@board:OCCASION":"This event has been rejected due to other reasons","messageMarkedAsOther@board:IDEA":"This idea has been rejected due to other reasons"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageView/MessageViewStandard-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageView/MessageViewStandard-1731977288000","value":{"anonymous":"Anonymous","author":"\u003ca\u003e{messageAuthorLogin}\u003c/a\u003e","authorBy":"\u003ca\u003e{messageAuthorLogin}\u003c/a\u003e","board":"\u003ca\u003e{messageBoardTitle}\u003c/a\u003e","replyToUser":" to {parentAuthor}","showMoreReplies":"Show More","replyText":"Reply","repliesText":"Replies","markedAsSolved":"Marked as Solved","movedMessagePlaceholder.BLOG":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.TKB":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.FORUM":"{count, plural, =0 {This reply has been} other {These replies have been} }","movedMessagePlaceholder.IDEA":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.OCCASION":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholderUrlText":"moved.","messageStatus":"Status: ","statusChanged":"Status changed: {previousStatus} to {currentStatus}","statusAdded":"Status added: {status}","statusRemoved":"Status removed: {status}","labelExpand":"expand replies","labelCollapse":"collapse replies","unhelpfulReason.reason1":"Content is outdated","unhelpfulReason.reason2":"Article is missing information","unhelpfulReason.reason3":"Content is for a different Product","unhelpfulReason.reason4":"Doesn't match what I was searching for"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyCallToAction-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyCallToAction-1731977288000","value":{"leaveReply":"Leave a reply...","leaveReply@board:BLOG@message:root":"Leave a comment...","leaveReply@board:TKB@message:root":"Leave a comment...","leaveReply@board:IDEA@message:root":"Leave a comment...","leaveReply@board:OCCASION@message:root":"Leave a comment...","repliesTurnedOff.FORUM":"Replies are turned off for this topic","repliesTurnedOff.BLOG":"Comments are turned off for this topic","repliesTurnedOff.TKB":"Comments are turned off for this topic","repliesTurnedOff.IDEA":"Comments are turned off for this topic","repliesTurnedOff.OCCASION":"Comments are turned off for this topic","infoText":"Stop poking me!"},"localOverride":false},"Category:category:Exchange":{"__typename":"Category","id":"category:Exchange","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Planner":{"__typename":"Category","id":"category:Planner","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Outlook":{"__typename":"Category","id":"category:Outlook","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Community-Info-Center":{"__typename":"Category","id":"category:Community-Info-Center","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:EducationSector":{"__typename":"Category","id":"category:EducationSector","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:DrivingAdoption":{"__typename":"Category","id":"category:DrivingAdoption","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Azure":{"__typename":"Category","id":"category:Azure","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Windows-Server":{"__typename":"Category","id":"category:Windows-Server","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:SQL-Server":{"__typename":"Category","id":"category:SQL-Server","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:MicrosoftTeams":{"__typename":"Category","id":"category:MicrosoftTeams","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:PublicSector":{"__typename":"Category","id":"category:PublicSector","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:microsoft365":{"__typename":"Category","id":"category:microsoft365","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:IoT":{"__typename":"Category","id":"category:IoT","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:HealthcareAndLifeSciences":{"__typename":"Category","id":"category:HealthcareAndLifeSciences","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:SMB":{"__typename":"Category","id":"category:SMB","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:ITOpsTalk":{"__typename":"Category","id":"category:ITOpsTalk","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:microsoft-endpoint-manager":{"__typename":"Category","id":"category:microsoft-endpoint-manager","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:MicrosoftSecurityandCompliance":{"__typename":"Category","id":"category:MicrosoftSecurityandCompliance","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:MicrosoftLearn":{"__typename":"Category","id":"category:MicrosoftLearn","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Blog:board:MicrosoftLearnBlog":{"__typename":"Blog","id":"board:MicrosoftLearnBlog","blogPolicies":{"__typename":"BlogPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:AI":{"__typename":"Category","id":"category:AI","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:MicrosoftMechanics":{"__typename":"Category","id":"category:MicrosoftMechanics","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:StartupsatMicrosoft":{"__typename":"Category","id":"category:StartupsatMicrosoft","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:PartnerCommunity":{"__typename":"Category","id":"category:PartnerCommunity","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Windows":{"__typename":"Category","id":"category:Windows","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"CachedAsset:text:en_US-components/community/Navbar-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/community/Navbar-1731977288000","value":{"community":"Community Home","inbox":"Inbox","manageContent":"Manage Content","tos":"Terms of Service","forgotPassword":"Forgot Password","themeEditor":"Theme Editor","edit":"Edit Navigation Bar","skipContent":"Skip to content","gxcuf89792":"Tech Community","external-1":"Events","s-m-b":"Small and Medium Businesses","windows-server":"Windows Server","education-sector":"Education Sector","driving-adoption":"Driving Adoption","microsoft-learn":"Microsoft Learn","s-q-l-server":"SQL Server","partner-community":"Microsoft Partner Community","microsoft365":"Microsoft 365","external-9":".NET","external-8":"Teams","external-7":"Github","products-services":"Products","external-6":"Power Platform","communities-1":"Topics","external-5":"Security, Compliance \u0026 Identity","planner":"Planner","external-4":"Microsoft 365","external-3":"Dynamics 365","azure":"Azure","healthcare-and-life-sciences":"Healthcare and Life Sciences","external-2":"Azure","microsoft-mechanics":"Microsoft Mechanics","microsoft-learn-1":"Community","external-10":"Learning Room Directory","microsoft-learn-blog":"Blog","windows":"Windows","i-t-ops-talk":"ITOps Talk","external-link-1":"View All","microsoft-securityand-compliance":"Security, Compliance, and Identity","public-sector":"Public Sector","community-info-center":"Lounge","external-link-2":"View All","microsoft-teams":"Microsoft Teams","external":"Blogs","microsoft-endpoint-manager":"Microsoft Intune and Configuration Manager","startupsat-microsoft":"Startups at Microsoft","exchange":"Exchange","a-i":"AI and Machine Learning","io-t":"Internet of Things (IoT)","outlook":"Outlook","external-link":"Community Hubs","communities":"Products"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarHamburgerDropdown-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarHamburgerDropdown-1731977288000","value":{"hamburgerLabel":"Side Menu"},"localOverride":false},"CachedAsset:text:en_US-components/community/BrandLogo-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/community/BrandLogo-1731977288000","value":{"logoAlt":"Khoros","themeLogoAlt":"Brand Logo"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarTextLinks-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarTextLinks-1731977288000","value":{"more":"More"},"localOverride":false},"CachedAsset:text:en_US-components/authentication/AuthenticationLink-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/authentication/AuthenticationLink-1731977288000","value":{"title.login":"Sign In","title.registration":"Register","title.forgotPassword":"Forgot Password","title.multiAuthLogin":"Sign In"},"localOverride":false},"CachedAsset:text:en_US-components/nodes/NodeLink-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/nodes/NodeLink-1731977288000","value":{"place":"Place {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageCoverImage-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageCoverImage-1731977288000","value":{"coverImageTitle":"Cover Image"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeTitle-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeTitle-1731977288000","value":{"nodeTitle":"{nodeTitle, select, community {Community} other {{nodeTitle}}} "},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageTimeToRead-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageTimeToRead-1731977288000","value":{"minReadText":"{min} MIN READ"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageSubject-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSubject-1731977288000","value":{"noSubject":"(no subject)"},"localOverride":false},"CachedAsset:text:en_US-components/users/UserLink-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/users/UserLink-1731977288000","value":{"authorName":"View Profile: {author}","anonymous":"Anonymous"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/users/UserRank-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserRank-1731977288000","value":{"rankName":"{rankName}","userRank":"Author rank {rankName}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageTime-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageTime-1731977288000","value":{"postTime":"Published: {time}","lastPublishTime":"Last Update: {time}","conversation.lastPostingActivityTime":"Last posting activity time: {time}","conversation.lastPostTime":"Last post time: {time}","moderationData.rejectTime":"Rejected time: {time}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBody-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBody-1731977288000","value":{"showMessageBody":"Show More","mentionsErrorTitle":"{mentionsType, select, board {Board} user {User} message {Message} other {}} No Longer Available","mentionsErrorMessage":"The {mentionsType} you are trying to view has been removed from the community.","videoProcessing":"Video is being processed. Please try again in a few minutes.","bannerTitle":"Video provider requires cookies to play the video. Accept to continue or {url} it directly on the provider's site.","buttonTitle":"Accept","urlText":"watch"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageCustomFields-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageCustomFields-1731977288000","value":{"CustomField.default.label":"Value of {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageRevision-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageRevision-1731977288000","value":{"lastUpdatedDatePublished":"{publishCount, plural, one{Published} other{Updated}} {date}","lastUpdatedDateDraft":"Created {date}","version":"Version {major}.{minor}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/QueryHandler-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/QueryHandler-1731977288000","value":{"title":"Query Handler"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyButton-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyButton-1731977288000","value":{"repliesCount":"{count}","title":"Reply","title@board:BLOG@message:root":"Comment","title@board:TKB@message:root":"Comment","title@board:IDEA@message:root":"Comment","title@board:OCCASION@message:root":"Comment"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageAuthorBio-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageAuthorBio-1731977288000","value":{"sendMessage":"Send Message","actionMessage":"Follow this blog board to get notified when there's new activity","coAuthor":"CO-PUBLISHER","contributor":"CONTRIBUTOR","userProfile":"View Profile","iconlink":"Go to {name} {type}"},"localOverride":false},"CachedAsset:text:en_US-components/customComponent/CustomComponent-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/customComponent/CustomComponent-1731977288000","value":{"errorMessage":"Error rendering component id: {customComponentId}","bannerTitle":"Video provider requires cookies to play the video. Accept to continue or {url} it directly on the provider's site.","buttonTitle":"Accept","urlText":"watch"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarDropdownToggle-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarDropdownToggle-1731977288000","value":{"ariaLabelClosed":"Press the down arrow to open the menu"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserAvatar-1731977288000","value":{"altText":"{login}'s avatar","altTextGeneric":"User's avatar"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/ranks/UserRankLabel-1731977288000","value":{"altTitle":"Icon for {rankName} rank"},"localOverride":false},"CachedAsset:text:en_US-components/users/UserRegistrationDate-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-components/users/UserRegistrationDate-1731977288000","value":{"noPrefix":"{date}","withPrefix":"Joined {date}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeAvatar-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeAvatar-1731977288000","value":{"altTitle":"Node avatar for {nodeTitle}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeDescription-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeDescription-1731977288000","value":{"description":"{description}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1731977288000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeIcon-1731977288000","value":{"contentType":"Content Type {style, select, FORUM {Forum} BLOG {Blog} TKB {Knowledge Base} IDEA {Ideas} OCCASION {Events} other {}} icon"},"localOverride":false}}}},"page":"/blogs/BlogMessagePage/BlogMessagePage","query":{"boardId":"desenvolvedoresbr","messageSubject":"aks--helm","messageId":"3980279"},"buildId":"PueESxikv_D6pRYmXbJsM","runtimeConfig":{"buildInformationVisible":false,"logLevelApp":"info","logLevelMetrics":"info","openTelemetryClientEnabled":false,"openTelemetryConfigName":"o365","openTelemetryServiceVersion":"24.10.0","openTelemetryUniverse":"prod","openTelemetryCollector":"http://localhost:4318","openTelemetryRouteChangeAllowedTime":"5000","khorosSignInIdpId":"kh-auth-idp","apolloDevToolsEnabled":false},"isFallback":false,"isExperimentalCompile":false,"dynamicIds":["LiUyRmNvbXBvbmVudHMlMkZjb21tdW5pdHklMkZOYXZiYXIlMkZOYXZiYXJXaWRnZXQudHN4","LiUyRmNvbXBvbmVudHMlMkZjb21tdW5pdHklMkZCcmVhZGNydW1iJTJGQnJlYWRjcnVtYldpZGdldC50c3g=","LiUyRmNvbXBvbmVudHMlMkZjdXN0b21Db21wb25lbnQlMkZDdXN0b21Db21wb25lbnQlMkZDdXN0b21Db21wb25lbnQudHN4","LiUyRmNvbXBvbmVudHMlMkZibG9ncyUyRkJsb2dBcnRpY2xlV2lkZ2V0JTJGQmxvZ0FydGljbGVXaWRnZXQudHN4","LiUyRmNvbXBvbmVudHMlMkZtZXNzYWdlcyUyRk1lc3NhZ2VWaWV3JTJGTWVzc2FnZVZpZXdTdGFuZGFyZCUyRk1lc3NhZ2VWaWV3U3RhbmRhcmQudHN4","LiUyRmNvbXBvbmVudHMlMkZleHRlcm5hbCUyRmNvbXBvbmVudHMlMkZFeHRlcm5hbENvbXBvbmVudC50c3g="],"appGip":true,"scriptLoader":[{"id":"analytics","src":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/pagescripts/1729284608000/analytics.js?page.id=BlogMessagePage\u0026entity.id=board%3Adesenvolvedoresbr\u0026entity.id=message%3A3980279","strategy":"afterInteractive"}]}</script><script lang="javascript" type="text/javascript"> const nextDataScript = document.getElementById("__NEXT_DATA__"); if (nextDataScript) { const nextData = JSON.parse(nextDataScript.textContent || '{}'); if (nextData.dynamicIds) { nextData.dynamicIds = nextData.dynamicIds.map(id => { const encodedString = atob(id); return decodeURIComponent(encodedString); }); nextDataScript.textContent = JSON.stringify(nextData); } } </script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10