Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Définissez le mode de routage pour votre nom de domaine personnalisé
Vous pouvez choisir le mode de routage qu'API Gateway utilise pour acheminer le trafic vers votre APIs. Pour de plus amples informations, veuillez consulter Envoyez du trafic vers vous APIs via votre nom de domaine personnalisé dans API Gateway. Cette section décrit les modes de routage pour les noms de domaine personnalisés. Vous devez définir un mode de routage pour votre nom de domaine personnalisé afin d'acheminer le trafic vers votre APIs. Les modes de routage suivants sont pris en charge :
-
ROUTING_RULE_THEN_ API_MAPPING — Utilisez ce mode pour envoyer du trafic vers vous APIs avec à la fois des règles de routage et des mappages d'API. Dans ce mode, toutes les règles de routage ont la priorité sur les mappages d'API. Pour un exemple de ce mode, voirExemple 2 : règles de routage et mappages d'API.
-
ROUTING_RULE_ONLY — Utilisez ce mode pour autoriser uniquement les règles de routage à envoyer du trafic vers votre. APIs Lorsque votre nom de domaine personnalisé utilise ce mode, vous ne pouvez pas créer de mappage d'API, mais vous pouvez utiliser la get-api-mappingscommande pour les afficher. Les appelants d'API ne peuvent pas utiliser les mappages d'API pour accéder à ce nom de domaine.
-
API_MAPPING_ONLY — Utilisez ce mode pour autoriser uniquement les mappages d'API à envoyer du trafic vers votre. APIs Lorsque votre nom de domaine personnalisé utilise ce mode, vous ne pouvez pas créer de règle de routage, mais vous pouvez utiliser la list-routing-rules
commande pour les afficher. Les appelants de l'API ne peuvent pas utiliser les règles de routage pour accéder à ce nom de domaine.
Il s'agit du mode de routage par défaut pour tous vos noms de domaine existants et pour tous les nouveaux noms de domaine que vous créez.
Lorsque vous créez un nom de domaine personnalisé en utilisantapigateway
, API_MAPPING_ONLY
est appelé BASE_PATH_MAPPING_ONLY
et ROUTING_RULE_THEN_API_MAPPING
est appeléROUTING_RULE_THEN_BASE_PATH_MAPPING
. Ce comportement n'est présent que pour AWS CLI AWS CloudFormation, ou aucun SDKs, pas dans le AWS Management Console.
La procédure suivante montre comment modifier le mode de routage d'un nom de domaine personnalisé existant. Lorsque vous modifiez le mode de routage de votre nom de domaine personnalisé, les appelants de l'API ne peuvent pas accéder à votre nom de domaine en utilisant des modes de routage non pris en charge.
- AWS Management Console
Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.
Sélectionnez Noms de domaine personnalisés dans le volet de navigation principal.
-
Choisissez un nom de domaine personnalisé.
-
Pour les détails du domaine, choisissez Modifier.
-
Pour le mode de routage, choisissez API_MAPPINGROUTING_RULE_THEN_.
-
Choisissez Enregistrer.
Si vous remplacez le mode de routage par ROUTING_RULE_ONLY
ouAPI_MAPPING_ONLY
, les mappages d'API ou les règles de routage que vous avez créés sont supprimés de la page de détails du nom de domaine de la console. Si vous modifiez le mode de routage pour prendre en charge les règles de routage ou les mappages d'API, ces ressources seront renvoyées.
- AWS CLI - apigatewayv2
-
La update-domain-namecommande suivante met à jour un nom de domaine pour utiliser le mode de routage ROUTING_RULE_THEN_API_MAPPING
:
aws apigatewayv2 update-domain-name \
--domain-name 'api.example.com' \
--routing-mode "ROUTING_RULE_THEN_API_MAPPING"
Le résultat se présente comme suit :
{
"ApiMappingSelectionExpression": "$request.basepath",
"DomainName": "api.example.com",
"DomainNameArn": "arn:aws:apigateway:us-west-2::/domainnames/api.example.com",
"DomainNameConfigurations": [
{
"ApiGatewayDomainName": "d-abcdefg.execute-api.us-west-2.amazonaws.com",
"CertificateArn": "arn:aws:acm:us-west-2:111122223333:certificate/abcdefg-123456-abcdefg",
"DomainNameStatus": "AVAILABLE",
"EndpointType": "REGIONAL",
"HostedZoneId": "Z2OJLYMUO9EFXC",
"SecurityPolicy": "TLS_1_2"
}
],
"RoutingMode": "ROUTING_RULE_THEN_API_MAPPING",
"Tags": {}
}
- AWS CLI - apigateway
-
La update-domain-namecommande suivante met à jour un nom de domaine personnalisé privé pour utiliser le mode de routage ROUTING_RULE_THEN_BASE_PATH_MAPPING
:
aws apigateway update-domain-name \
--domain-name 'private.example.com' \
--patch-operations "op='replace',path='/routingMode',value='ROUTING_RULE_THEN_BASE_PATH_MAPPING'"
Le résultat se présente comme suit :
{
"domainName": "private.example.com",
"domainNameId": "abcd1234",
"domainNameArn": "arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234",
"certificateArn": "arn:aws:acm:us-west-2:111122223333:certificate/a1b2c3d4-5678-90ab-cdef",
"certificateUploadDate": "2024-09-10T10:31:20-07:00",
"endpointConfiguration": {
"types": [
"PRIVATE"
],
"ipAddressType": "dualstack"
},
"domainNameStatus": "AVAILABLE",
"securityPolicy": "TLS_1_2",
"policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"execute-api:Invoke\",\"Resource\":\"execute-api:\/*\"},{\"Effect\":\"Deny\",\"Principal\":\"*\",\"Action\":\"execute-api:Invoke\",\"Resource\":\""execute-api:\/*\",\"Condition\":{\"StringNotEquals\":{\"aws:SourceVpce\":\"vpce-abcd1234efg\"}}}]}",
"routingMode" : "ROUTING_RULE_THEN_BASE_PATH_MAPPING"
}