Iv'e написал API, который обновляет мои CDN CNAME.
сделал это, используя .netcore, AWS SDK.
Раньше он работал нормально, внезапно (может быть несколько недель) он начал отвечать на UpdateDistributionAsync с 500 (хотя на самом деле он выполняет обновление), если я делаю другой запрос без каких-либо изменений, это приводит к 100.
Попробовал поискать в Google и понял, что это может быть связано с тем, что ETag не является самым последним. Хотя я спрашиваю о распространении каждый раз, когда делаю обновление, так что это должен быть самый последний ETag.
сообщение об исключении -
The request failed because it didn't meet the preconditions in one or more
request-header fields.
пример моего кода -
GetDistributionConfigResponse DistributionCDN = await client.GetDistributionConfigAsync(new GetDistributionConfigRequest(DistributionId));
List<string> cnames = DistributionCDN.DistributionConfig.Aliases.Items;
//remove domain and *.domain from additional names list.
cnames = cnames.Where(domain => !request.RemoveDomains.Any(innerDomain => innerDomain == domain.Replace("*.", string.Empty) || innerDomain == domain.Replace("www.", string.Empty))).ToList();
//add domain and *.domain to additional names list.
foreach (string domain in request.AddDomains)
{
if(cnames.Contains(domain) == false)
{
cnames.Add(domain);
cnames.Add("*." + domain);
}
}
DistributionCDN.DistributionConfig.Aliases.Items = cnames;
DistributionCDN.DistributionConfig.Aliases.Quantity = cnames.Count;
UpdateDistributionResponse response = await client.UpdateDistributionAsync(new UpdateDistributionRequest(DistributionId
, DistributionCDN.ETag
, DistributionCDN.DistributionConfig));
if (response.HttpStatusCode != HttpStatusCode.OK)
{
return false;
}
return true;
Ссылка на документацию - https://docs.aws.amazon.com/sdkfornet/v3/apidocs/
Спасибо за чтение, ура