Я пытаюсь программно настроить этапы в рамках моего развертывания шлюза AWS API.Я использую SAM CLI. Документация по облачным технологиям дает определение:
DeploymentId Идентификатор развертывания, на который указывает этап.
Обязательно: Да
Тип: String
Для обновления требуется: без прерываний
и пример кода:
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'
.. но без контекста относительно значения, которое указывает TestDeployment
к.
- Это случайная строка, которую выбирает пользователь?
- Это сгенерированный идентификатор, который где-то доступен?
- Это имя ресурса илиAPI?и т. д.
Я гуглю и все еще не могу получить ответ.
Глядя в консоль управления AWS, я вижу некоторые из наших уже существующих API-интерфейсов.- если этапы уже существуют (настроены вручную), вы можете получить идентификатор развертывания с помощью этапов, но если мне придется сначала настроить их вручную, это отчасти отразится на цели CloudFormation AWS::ApiGateway::Stage
не так ли ((в идеале, мы надеемся, что сможем создать API полностью с помощью кода, не вдаваясь в интерфейс AWS)?И разве deploymentId
будет доступен только после развертывания?Если он доступен ранее (как часть сборки), как мне получить его и вставить в cloudformation.yaml
перед развертыванием?
Любая помощь в понимании этого приветствуется!