我如何使用Boto3通过Python脚本自动部署AWS API Gateway?例如,如果我在AWS Portal的AWS Gateway中创建了一个名为“V1”的阶段,我将如何编写脚本来部署该阶段(“V1”)?
当前流程涉及从AWS控制台手动部署阶段,并且不可编写脚本 . 出于自动化的目的,我想有一个脚本来做同样的事情 .
咨询Boto3文档,我看到有一种创建阶段的方法(http://boto3.readthedocs.io/en/latest/reference/services/apigateway.html#APIGateway.Client.create_stage),但没有用于部署阶段的方法 .
3 回答
如果您希望坚持通过特定的boto3 API调用进行部署,那么您需要遵循这个粗略的boto3 API调用序列:
使用get_rest_apis检索API ID .
可能使用get_deployments检查是否已部署 .
使用create_deployment创建部署 . 使用
stageName
参数指定要创建的阶段 .如果需要,请考虑使用create_base_path_mapping .
如果您需要打开日志记录等内容,请考虑使用update_stage .
要部署典型的(API Gateway / Lambda),我建议使用AWS SAM,而不是编写自己的代码 .
它甚至支持Swagger,您可以在SAM定义文件中定义阶段 .
例如
使用AWS CLI可轻松将部署集成到CD管道中
另见:Deploying Lambda-based Applications
是的,您目前通过AWS浏览器控制台手动创建和部署apis的方式不是很易编写脚本,但您可以使用AWS cli完成任何可以在控制台中单击的内容 . 听起来像你想要一个自动化的CI / CD管道 . 一旦你找出了你用aws cli运行的命令,只需将它们添加到你的CI管道中就可以了 .
但实际上,还有一种更简单的方法 . 转到AWS Codestar . 单击"create new project"并选中"Web Service","Python"和"AWS Lambda" . 截至今天,只有一个适合所有三个的Codestar模板,因此请选择一个 . 这将构建一个完整的CI / CD管道(AWS CodePipeline)与一个开发环境,连接到一个git项目 . 我认为这对您来说是一个很好的方式,因此您可以利用开发自动化部署的东西,而无需担心在主项目之上设置和维护它 .