Мой сервис - это сервис .NET 8 AOT, который изо всех сил пытается вызовать API -интерфейсы яблоков с помощью MTL. Чтобы сделать звонок, требуется много времени, и у меня заканчивается идеи о том, что я могу сделать, чтобы улучшить скорость. Интересно, может ли это быть VPC AWS или что-то в этом роде, о которой я не уверен. -800 мс < /p>
X509Certificate2? applePayCertificate = await GetApplePayCertificateAsync(
configuration.AppleBucketName,
configuration.AppleKey,
configuration.ApplePfxFile
);
< /code>
Я затем зарегистрируюсь httpclient, чтобы я мог использовать его в моих службах. < /p>
builder.Services.AddHttpClient("ApplePayClient")
.ConfigurePrimaryHttpMessageHandler(() =>
{
var handler = new HttpClientHandler
{
ClientCertificateOptions = ClientCertificateOption.Manual,
SslProtocols = SslProtocols.Tls12,
ClientCertificates = { applePayCertificate },
CheckCertificateRevocationList = false
};
return handler;
});
service.cs
Я затем использую зарегистрированный ApplePayClient , чтобы сделать вызов, который работает, но занимает 15 секунд+ при первом вызове, затем около 250 мс после.
private async Task GetRegisteredDomains(
string id,
HttpContext context,
ILogger logger,
IHttpClientFactory httpClientFactory)
{
var httpClient = httpClientFactory.CreateClient("ApplePayClient");
var url = $"{_appleGatewayBaseUrl}/merchant/{id}";
var response = await httpClient.GetAsync(url);
var content = await response.Content.ReadAsStringAsync();
var domainsResponse = JsonSerializer.Deserialize(
content,
LambdaFunctionJsonSerializerContext.Default.RegisteredDomainsResponse
);
return Results.Ok(domainsResponse);
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... 15-seconds