简体   繁体   中英

AWS Api Gateway Custom Domain Name with undefined stage

I'm trying to set up a Custom Domain Name in AWS API Gateway where callers have to specify explicitly the stage name after any base path name . It is something I did in the past but now it seems that, since AWS updated the console interface, it is no more possible. The final url should be like:

https://example.com/ {basePath}/{stage}/function

  • I tried using the console, but stage is now a mandatory field (chose from a drop-down).
  • I tried using AWS CLI, but stage is again a mandatory field
    aws: error: the following arguments are required: --stage

  • I tried using Boto3, following the documentation ( https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/apigateway.html#APIGateway.Client.create_base_path_mapping ) but, even if stage can be specified as 'none' ( The name of the API's stage that you want to use for this mapping. Specify '(none)' if you want callers to explicitly specify the stage name after any base path name. ), doing this returns an error:
    botocore.errorfactory.BadRequestException: An error occurred (BadRequestException) when calling the CreateBasePathMapping operation: Invalid stage identifier specified

What is funny (or frustrating) is that I have some custom domain names created with the old console and that are perfectly working, without any stage defined.

It is still possible to specify only the "API ID" and "Path" and leave out the "stage" parameter. I have tried this both from the console and the CLI:

  • From console: The "Stage" setting is a drop-down as you mentioned, but can be left blank (don't select anything). If you did select a stage, delete the API mapping and add it again

  • From CLI: Just tried this as well and works fine for me on CLI version aws-cli/1.18.69 Python/3.7.7 Darwin/18.7.0 botocore/1.16.19

$ aws apigateway create-base-path-mapping --domain-name **** --rest-api-id *** --base-path test
{
    "basePath": "test",
    "restApiId": "***"
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM