How to import variable into Swagger file for AWS ApiGateway

Viewed 228

I Want to use APIGateway for my RESTful application by OpenApi file but How could I inject my variables from outside of swagger file into it

Swagger.yml

openapi: "3.0.1"
info:
    title: !Join ['-', ['XXXX', !Ref ServiceName]]
paths:
    /:
        get:
            responses:
                default:
                    description: "Default response for GET /"
            x-amazon-apigateway-integration:
                payloadFormatVersion: "1.0"
                connectionId: !Ref VPCLink
                type: "http_proxy"
                httpMethod: "ANY"
                uri: !GetAtt ServiceDiscovery.Arn
                connectionType: "VPC_LINK"
    /health:
        get:
            responses:
                default:
                    description: "Default response for GET /health"
            x-amazon-apigateway-integration:
                payloadFormatVersion: "1.0"
                connectionId: !Ref VPCLink
                type: "http_proxy"
                httpMethod: "ANY"
                uri: !GetAtt ServiceDiscovery.Arn
                connectionType: "VPC_LINK"
x-amazon-apigateway-cors:
    allowOrigins:
        - '*'
    allowHeaders:
        - '*'
    allowMethods:
        - 'GET'
x-amazon-apigateway-importexport-version: "1.0"  

Cloudformation template :

    HttpApi:
        Type: AWS::ApiGatewayV2::Api
        Properties:
            Body:
                Fn::Transform:
                    Name: AWS::Include
                    Parameters:
                        Location: "s3://XXXX/Swagger.yml"

But It has following error in cloudformation :
"Transform AWS::Include failed with: The specified S3 object's content should be valid Yaml/JSON"

And when I remove built-in functions like Join and GetAtt from my swagger.yml it works.

0 Answers
Related