예제 #1
0
        internal override async Task <SiteInner> SubmitMetadataAsync(SiteInner site, CancellationToken cancellationToken)
        {
            await base.SubmitMetadataAsync(site, cancellationToken);

            if (runtimeStackOnWindowsOSToUpdate != null)
            {
                // list metadata
                StringDictionaryInner metadataInner = await ListMetadataAsync(cancellationToken);

                // merge with change
                metadataInner            = metadataInner ?? new StringDictionaryInner();
                metadataInner.Properties = metadataInner.Properties ?? new Dictionary <string, string>();
                metadataInner.Properties["CURRENT_STACK"] = runtimeStackOnWindowsOSToUpdate.Runtime;
                // update metadata
                await UpdateMetadataAsync(metadataInner);

                // clean up
                runtimeStackOnWindowsOSToUpdate = null;
            }
            return(site);
        }
예제 #2
0
        /// <summary>
        /// Update application settings of App Service.
        /// </summary>
        /// <param name="resourceGroup"></param>
        /// <param name="webSite"></param>
        /// <param name="remoteEndpoint"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task UpdateSiteApplicationSettingsAsync(
            IResourceGroup resourceGroup,
            SiteInner webSite,
            string remoteEndpoint,
            X509Certificate2 webAppX509Certificate,
            CancellationToken cancellationToken = default
            )
        {
            try {
                var remoteEndpointSettings = new StringDictionaryInner {
                    Location = webSite.Location,

                    Properties = new Dictionary <string, string> {
                        { PROXY_ENV_REMOTE_ENDPOINT, remoteEndpoint },
                        { PROXY_ENV_REMOTE_ENDPOINT_SSL_THUMBPRINT, webAppX509Certificate.Thumbprint }
                    }
                };

                remoteEndpointSettings.Validate();

                // Note: UpdateApplicationSettingsAsync(...) replaces existing
                // settings with new ones.
                var applicationSettings = await _webSiteManagementClient
                                          .WebApps
                                          .UpdateApplicationSettingsAsync(
                    resourceGroup.Name,
                    webSite.Name,
                    remoteEndpointSettings,
                    cancellationToken
                    );
            }
            catch (Exception ex) {
                Log.Error(ex, $"Failed to update {PROXY_ENV_REMOTE_ENDPOINT} setting of Azure AppService: {webSite.Name}");
                throw;
            }
        }
 ///GENMHASH:6779D3D3C7AB7AAAE805BA0ABEE95C51:53A4EABE2126D220941754E8D00A25CF
 internal override async Task <Models.StringDictionaryInner> UpdateAppSettingsAsync(StringDictionaryInner inner, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(await Manager.Inner.WebApps.UpdateApplicationSettingsSlotAsync(ResourceGroupName, parent.Name, inner, Name, cancellationToken));
 }
 ///GENMHASH:6779D3D3C7AB7AAAE805BA0ABEE95C51:53A4EABE2126D220941754E8D00A25CF
 internal async override Task <Microsoft.Azure.Management.AppService.Fluent.Models.StringDictionaryInner> UpdateAppSettingsAsync(StringDictionaryInner inner, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(await Manager.Inner.WebApps.UpdateApplicationSettingsSlotAsync(ResourceGroupName, parent.Name, inner, Name(), cancellationToken));
 }
예제 #5
0
 internal async Task <StringDictionaryInner> UpdateMetadataAsync(StringDictionaryInner metadataInner, CancellationToken cancellationToken = default(CancellationToken))
 {
     return(await Manager.Inner.WebApps.UpdateMetadataAsync(ResourceGroupName, Name, metadataInner));
 }
예제 #6
0
        ///GENMHASH:6779D3D3C7AB7AAAE805BA0ABEE95C51:512E3D0409D7A159D1D192520CB3A8DB

        internal async override Task <StringDictionaryInner> UpdateAppSettingsAsync(StringDictionaryInner inner, CancellationToken cancellationToken = default(CancellationToken))
        {
            return(await Manager.Inner.WebApps.UpdateApplicationSettingsAsync(ResourceGroupName, Name, inner, cancellationToken));
        }