Hol*_*oly 5 amazon-web-services aws-cloudformation aws-sam-cli aws-sam
我正在尝试以编程方式设置阶段作为我的 AWS API Gateway 部署的一部分。我正在使用 SAM CLI。cloudformation 文档给出了定义:
DeploymentId 阶段指向的部署的 ID。
要求:是
类型:字符串
更新要求:无中断
和代码示例:
Resources:
Prod:
Type: AWS::ApiGateway::Stage
Properties:
StageName: Prod
Description: Prod Stage
RestApiId: !Ref MyRestApi
DeploymentId: !Ref TestDeployment ## <===== this
DocumentationVersion: !Ref MyDocumentationVersion
ClientCertificateId: !Ref ClientCertificate
Variables:
Stack: Prod
MethodSettings:
- ResourcePath: /
HttpMethod: GET
MetricsEnabled: 'true'
DataTraceEnabled: 'true'
- ResourcePath: /stack
HttpMethod: POST
MetricsEnabled: 'true'
DataTraceEnabled: 'true'
ThrottlingBurstLimit: '999'
- ResourcePath: /stack
HttpMethod: GET
MetricsEnabled: 'true'
DataTraceEnabled: 'true'
ThrottlingBurstLimit: '555'
Run Code Online (Sandbox Code Playgroud)
..但没有关于价值TestDeployment指向什么的背景。
我一直在谷歌搜索,但似乎仍然无法得到答案。
在 AWS 管理控制台中,我可以看到我们已经存在的一些 API - 当阶段已经存在(手动设置)时,您可以通过阶段获取部署 ID,但如果我必须先手动设置它们,这会在一定程度上违背 CloudFormation 的目的,AWS::ApiGateway::Stage不是吗(...理想情况下,我们希望能够完全通过代码创建 API ,而无需进入 AWS 界面)?deploymentId部署后不是唯一可用的吗?如果它之前可用(作为构建的一部分),我如何获取它并将其放入我cloudformation.yaml的部署之前?
对理解这一点的任何帮助表示赞赏!
部署包含有关 API 网关部署的元数据,例如描述,也可用于部署金丝雀版本。您可以创建部署资源作为 CloudFormation 模板的一部分。
Deployment:
Type: AWS::ApiGateway::Deployment
Properties:
RestApiId:
Ref: "MyApi"
Description: "My deployment"
StageName: "DummyStage"
Run Code Online (Sandbox Code Playgroud)
当你!Ref它会返回DeploymentId. 请务必阅读文档中名为AWS::ApiGateway::Method Dependency 的部分,以了解如何将 API 方法附加到部署中。
| 归档时间: |
|
| 查看次数: |
2579 次 |
| 最近记录: |