11月初,阿里云ROS正式发布API 网关(API Gateway)资源,为云计算用户提供高性能、高可用的 API 托管服务,帮助用户对外开放其部署在 ECS、容器服务等阿里云产品上的应用,提供完整的 API 发布、管理、维护生命周期管理。用户只需进行简单的操作,即可快速、低成本、低风险地开放数据或服务。
用户只需要按照自己的需求,根据ROS的模板规范,定义自己的API管理模板,就可以轻轻松松实现API组的创建/更新,API的创建/更新,API的发布或者版本切换,以及API授权,签名,流控等等的配置预更新。
以创建和发布一个新API到测试环境为例。首先用户先根据ROS的模板规范定义自己的模板,模板中会包含下面的几个资源,具体的资源介绍详见帮助文档,
ALIYUN::ApiGateway::Group,
ALIYUN::ApiGateway::API,
ALIYUN::ApiGateway::Deployment
一个最简单的模板定义如下:
{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": "Create an API Gateway",
"Parameters": {
"CustomStage": {
"Type": "String",
"Description": "环境",
"AllowedValues": [
"TEST",
"PRE",
"RELEASE"
],
"Label": "环境",
"Default": "TEST"
}
},
"Resources": {
"Group": {
"Type": "ALIYUN::ApiGateway::Group",
"Properties": {
"GroupName": "my_api_group",
"Description": "my api group"
}
},
"Deployment": {
"Type": "ALIYUN::ApiGateway::Deployment",
"Properties": {
"Description": "liyi_test",
"StageName": {
"Ref": "CustomStage"
},
"ApiId": {
"Fn::GetAtt": [
"API",
"ApiId"
]
},
"GroupId": {
"Fn::GetAtt": [
"Group",
"GroupId"
]
}
}
},
"API": {
"Type": "ALIYUN::ApiGateway::Api",
"Properties": {
"RequestConfig": {
"RequestPath": "/my_resource",
"RequestProtocol": "HTTP,HTTPS",
"RequestHttpMethod": "GET",
"PostBodyDescription": "k:v",
"BodyFormat": "FORM"
},
"ResultSample": "my_test sample result",
"ServiceConfig": {
"ServiceAddress": "http://my_url_site",
"MockResult": "Nothing",
"ContentTypeValue": "application/x-www-form-urlencoded; charset=UTF-8",
"ServiceVpcEnable": "FALSE",
"ServiceTimeOut": 20000,
"ServiceProtocol": "HTTP",
"ServicePath": "/my_data",
"ServiceHttpMethod": "GET",
"ContentTypeCatagory": "DEFAULT",
"Mock": "FALSE"
},
"ApiName": "my_test_first_api",
"Visibility": "PRIVATE",
"AuthType": "APP",
"ResultType": "JSON",
"FailResultSample": "my_test faile sample result",
"GroupId": {
"Fn::GetAtt": [
"Group",
"GroupId"
]
}
}
}
},
"Outputs": {
"APIId": {
"Value": {
"Fn::GetAtt": [
"API",
"ApiId"
]
}
},
"GroupId": {
"Value": {
"Fn::GetAtt": [
"Group",
"GroupId"
]
}
}
}
}
然后在ROS的控制台(ros.console.aliyun.com)提交你的模板:
进入ROS的控制台如下图所示,然后点击“新建资源栈”按钮。
接着会展示新的页面如下,需要在新的页面中选择region,填入上面提供的模板,然后点击“下一步”。
紧接着会切换到这个页面,需要再属于一些创建时的参数信息,资源栈的名称,以及你需要在哪个环境发布API。参数设置好之后,点击“创建”按钮。
ROS 编排引擎就会根据模板和参数信息,创建API分组,API,并最终发布到测试环境。返回到资源栈管理页面,可以看到如下面的信息,名为“my_api_v1”的资源栈创建成功。
点击资源栈名,就可以查看资源栈的相关属性。我们上面的模板中定义了要输出API分组的ID和API 的ID。
跳转到API 网关的控制台,就可以看到我们通过模板所创建的API。
以上是通过ROS的控制台来创建,发布API。
ROS 当前支持的所有 API 网关的资源类型如下:
ALIYUN::ApiGateway::Group
https://help.aliyun.com/document_detail/61467.html?spm=5176.doc61480.6.650.0oTm2p
创建 API 分组
ALIYUN::ApiGateway::StageConfig::SignatureBinding
https://help.aliyun.com/document_detail/61483.html?spm=5176.doc61482.6.652.43jUI8
创建 API 分组中测试、预发、线上环境变量
ALIYUN::ApiGateway::Api
https://help.aliyun.com/document_detail/61459.html?spm=5176.doc28930.6.645.VIyhF4
创建 API
ALIYUN::ApiGateway::App
https://help.aliyun.com/document_detail/61468.html?spm=5176.doc61459.6.646.jep7UM
创建应用
ALIYUN::ApiGateway::Authorization
https://help.aliyun.com/document_detail/61478.html?spm=5176.doc61468.6.647.wFQfvi
给 API 授权应用的访问权限
ALIYUN::ApiGateway::CustomDomain
https://help.aliyun.com/document_detail/61479.html?spm=5176.doc61478.6.648.O62moc
给 API 分组创建绑定自定义域名
ALIYUN::ApiGateway::Deployment
https://help.aliyun.com/document_detail/61480.html?spm=5176.doc61479.6.649.s0Ltp0
发布 API 或快速切换 API 版
ALIYUN::ApiGateway::Signature
https://help.aliyun.com/document_detail/61482.html?spm=5176.doc61467.6.651.JHTCZz
创建后端签名密钥
ALIYUN::ApiGateway::SignatureBinding
https://help.aliyun.com/document_detail/61483.html?spm=5176.doc61482.6.652.43jUI8
绑定 API 与后端签名密钥
ALIYUN::ApiGateway::TrafficControl
https://help.aliyun.com/document_detail/61485.html?spm=5176.doc61484.6.654.u6Ymvw
创建用户自定义的流控策略
ALIYUN::ApiGateway::TrafficControlBinding
https://help.aliyun.com/document_detail/61488.html?spm=5176.doc61485.6.655.cz94Ob
给 API 绑定用户自定义流控
ALIYUN::ApiGateway::VpcAccessConfig
https://help.aliyun.com/document_detail/61489.html?spm=5176.doc61488.6.656.KXYFQT
配置 VPC 授权以便专有网络的 API 能对外提供服务
ROS也支持openAPI的方式做资源的操作,具体可以参考ROS云栖博客索引
https://yq.aliyun.com/articles/57553?spm=5176.100239.0.0.LzywAe
中的这两篇文章,
1、《阿里云资源编排服务Python SDK使用入门 》
https://yq.aliyun.com/articles/6904?spm=5176.100239.blogcont57553.66.N4yGwL
2、《阿里云资源编排服务Java SDK使用入门》
https://yq.aliyun.com/articles/113503?spm=5176.100239.blogcont57553.67.N4yGwL
同时用户也可以通过ROS的命令行
https://yq.aliyun.com/articles/215216?spm=5176.100239.blogcont57553.72.N4yGwL
工具创建实现资源的创建,更新等等操作。