Я управляю REST API для приложения с Serverless и хочу расширить эту настройку с помощью API WebSockets в том же регионе. Все должно обрабатываться с одинаковым сертификатом, но с разными поддоменами.
Сначала я создал новый пользовательский домен с sls create_domain --stage=...
. Затем я попытался добавить его в новый стек WebSockets, но закончился этой ошибкой:
Ошибка: не удалось найти ресурсы CloudFormation для ...
Я нашел его на Github, что это, похоже, не поддерживается CloudFormation прямо сейчас, поэтому Serverless не поддерживает его.
Поэтому я попытался присоединить свою сцену к пользовательскому имени домена вручную в пользовательском интерфейсе:
Смешивание API-интерфейсов REST и HTTP-API для одного и того же доменного имени может быть выполнено только через API-интерфейс V2 DomainName шлюза. В настоящее время API-интерфейсы WebSocket могут быть присоединены только к имени домена с другими API-интерфейсами WebSocket. Это также должно происходить через интерфейс API DomainName шлюза V2.
Больше путаницы возникает, поскольку в данном случае это даже не одно и то же доменное имя. Новое доменное имя было sockets.<DOMAIN>.com
, а существующее - api.<DOMAIN>.com
. Или разные субдомены попадают в «одно и то же доменное имя»?
Тем не менее я попытался создать собственный домен заново через CLI apigatewayv2:
aws apigatewayv2 create-domain-name --domain-name <DOMAIN> --domain-name-configurations file://domain-configuration.json --region eu-west-1
domain-configuration. json:
[
{
"ApiGatewayDomainName": "<DOMAIN>",
"CertificateArn": "arn:aws:acm:us-east-1:<ACCOUNT_ID>:certificate/<CERT_ID>",
"CertificateName": "<DOMAIN>",
"DomainNameStatus": "AVAILABLE",
"EndpointType": "EDGE",
"SecurityPolicy": "TLS_1_2"
}
]
Но это приводит к следующей ошибке:
Произошла ошибка (BadRequestException) при вызове операции CreateDomainName: Неверный сертификат ARN: arn : aws: ACM: мы-восток-1: 924441585974: сертификат / b88f0a3f-1393-4a16-a876-9830852b5207. Сертификат должен быть в 'eu-west-1'.
Мое текущее состояние состояло в том, что API-шлюз позволяет размещать только пользовательские сертификаты в us-east-1, поэтому эта ошибка смущает меня еще больше.
Сводка : Я полностью застрял в том, как привязать собственное доменное имя к моей стадии API WebSocket. Я рад каждому намеку в правильном направлении!