模板的“资源”块中的未解决资源依赖项[RestAPIDeployment]

时间:2019-12-05 12:19:07

标签: amazon-web-services amazon-cloudformation aws-api-gateway

出现错误模板的“资源”块中有未解决的资源依赖性[RestAPIDeployment], 使用cloudformation创建api网关时 请帮忙 模板是:

{     “ AWSTemplateFormatVersion”:“ 2010-09-09”,     “ Description”:“创建一个S3 apigateway,用于静态内容/网站托管。”,     “参数”:{

    "AssetInsightId": {
        "Description": "Asset Insight ID",
        "Type": "String",
        "Default": "206153"
    },
    "ResourceOwner": {
        "Description": "tr:resource-owner",
        "Type": "String",
        "Default": "###"
    },
    "EnvironmentType": {
        "Description": "tr:environment-type",

        "Default": "preprod",
        "Type": "String",
        "AllowedValues": ["preprod", "prod"],
        "ConstraintDescription": "must specify preprod, prod."
    }
},
"Resources": {
    "APIGateWayRestResourceRestApi": {
        "Type": "AWS::ApiGateway::RestApi",
        "Properties": {
            "Name": "MyAPI",
            "Description": "API Gateway rest api with cloud formation"
        }
    },
    "APIGateWayResource": {
        "Type": "AWS::ApiGateway::Resource",
        "Properties": {
            "RestApiId": {
                "Ref": "APIGateWayRestResourceRestApi"
            },
            "ParentId": {
                "Fn::GetAtt": ["APIGateWayRestResourceRestApi", "RootResourceId"]
            },
             "PathPart": "pathpart"
             }

        },
    "APIGatewayPostMethod": {
        "Type": "AWS::ApiGateway::Method",
        "Properties": {
            "AuthorizationType": "NONE",
            "HttpMethod": "POST",

            "Integration": {
                "Type": "MOCK",
                "IntegrationHttpMethod": "POST"

            },
            "MethodResponses": [{
                    "ResponseModels": {
                        "application/json": {
                            "Ref": "PostMethodResponse"
                        }
                    },
                    "statusCode" : 200
                }
            ],

            "ResourceId": {
                "Ref": "APIGateWayResource"
            },

            "RestApiId": {
                "Ref": "APIGateWayRestResourceRestApi"
            }
        }
    },
    "PostMethodResponse": {
        "Type": "AWS::ApiGateway::Model",
        "Properties": {
            "ContentType": "application/json",
            "Name": "PostMethodResponse",
            "RestApiId": {
                "Ref": "APIGateWayRestResourceRestApi"
            },
            "Schema": {
                "$schema": "http://json-schema.org/draft-04/schema#",
                "title": "PostMethodResponse",
                "type": "object",
                "properties": {
                    "Email": {
                        "type": "string"
                    }
                }
            }
        }
    },

    "RestApiDeployment": {
        "Type": "AWS::ApiGateway::Deployment",
        "Properties": {
            "RestApiId": {
                "Ref": "APIGateWayRestResourceRestApi"
            },
            "StageName": "dummy"
        }
    },

    "RestAPIStage": {

        "Properties": {
            "DeploymentId": {
                "Ref": "RestAPIDeployment"
            },
            "MethodSettings": [{
                    "DataTraceEnabled": true,
                    "HttpMethod": "*",
                    "LoggingLevel": "INFO",
                    "ResourcePath": "/*"
                }
            ],
            "RestApiId": {
                "Ref": "APIGateWayRestResourceRestApi"
            },
            "StageName": "Latest"
        },
        "Type": "AWS::ApiGateway::Stage"
    }
    }

}

1 个答案:

答案 0 :(得分:1)

您引用的是RestAPIDeployment(用大写的“ P”和“ I”),但是定义RestApiDeployment(用小写的“ P”和“ I”)。

使这些保持一致,您将克服此问题。