public GetDistributionAsync ( |
||
request | Container for the necessary parameters to execute the GetDistribution operation. | |
cancellationToken | System | /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// |
리턴 | Task |
/// <summary> /// /// </summary> /// <param name="distribution"></param> /// <returns></returns> private async Task WaitUntilDistributionIsDeployedAsync(Distribution distribution) { const string DEPLOYED_STATUS = "deployed"; using (var client = new AmazonCloudFrontClient(cfConfigurationProvider.AccessKey, cfConfigurationProvider.SecretKey, cfConfigurationProvider.RegionEndpoint)) { loggerProvider.GetLogger().Debug($"Waiting for CloudFront to deploy. [Cname: {cfConfigurationProvider.CNAME}] [Status: {distribution.Status}]"); var currentStatus = distribution.Status.ToLower(); do { await Task.Delay(15000); var getDistributionResponse = await client.GetDistributionAsync(new GetDistributionRequest(distribution.Id)); currentStatus = getDistributionResponse.Distribution.Status; loggerProvider.GetLogger().Debug($"Checking CloudFront status. [Cname: {cfConfigurationProvider.CNAME}] [Current Status: {currentStatus}]"); } while (!currentStatus.IsEqualIgnoreCase(DEPLOYED_STATUS)); } }
/// <summary> /// Checks if Cloudfront with CNAME already exists. Returns true if it exist, otherwise false. /// </summary> /// <returns></returns> private async Task<GetDistributionResponse> GetDistributionByCNAMEAsync() { loggerProvider.GetLogger().Debug($"Checking if cloudfront exists. [CNAME: {cfConfigurationProvider.CNAME}]"); using (var client = new AmazonCloudFrontClient(cfConfigurationProvider.AccessKey, cfConfigurationProvider.SecretKey, cfConfigurationProvider.RegionEndpoint)) { var listDistributionResponse = await client.ListDistributionsAsync(); var distributionSummary = listDistributionResponse.DistributionList.Items.SingleOrDefault(cf => cf.Aliases.Items.Any(alias => alias.ToLower().StartsWith(cfConfigurationProvider.CNAME.ToLower()))); if (distributionSummary == null) { return null; } else { var distributionResponse = await client.GetDistributionAsync(new GetDistributionRequest(distributionSummary.Id)); return distributionResponse; } } }