#amazon-web-services #aws-api-gateway #amazon-cognito #openapi #aws-jwt-authorizer
Вопрос:
У меня есть ресурс API-шлюза Rest Api, определенный с помощью этого шаблона:
AWSTemplateFormatVersion: '2010-09-09'
Description: "Api gateway"
Resources:
ApiGateway:
Type: "AWS::ApiGateway::RestApi"
Properties:
BodyS3Location: "./openapi-spec.yaml"
И содержание openapi-spec.yaml
(на основе этого примера) является:
openapi: "3.0.2"
info:
title: SampleApi
paths:
/test:
get:
summary: Test
responses:
"200":
description: Ok
security:
- UserPool: [ ]
x-amazon-apigateway-integration:
# ....
components:
securitySchemes:
UserPool:
type: apiKey
name: Authorization
in: header
x-amazon-apigateway-authtype: cognito_user_pools
x-amazon-apigateway-authorizer:
type: cognito_user_pools
providerARNs:
### THIS VALUE ###
- "arn:aws:cognito-idp:eu-west-1:123456789012:userpool/eu-west-1_abcd12345"
Я хотел бы иметь возможность развертывать этот шаблон в нескольких средах/учетных записях, и наличие этого жестко заданного поставщика ограничивает это. Поэтому мои вопросы таковы:
Как значения для providerARNs
поля могут передаваться динамически?
Если это невозможно сделать, то есть ли какие-либо обходные пути для этого, чтобы мне не нужно было жестко кодировать имена поставщиков здесь?
Примечание: Уже пытался использовать переменные этапа, и они, похоже, здесь не работают.
Комментарии:
1. Как насчет создания спецификации при развертывании и хранения ее под разными ключами в S3?