无法在 Cloudformation 模板中为 AWS::ApiGateway::Resource 指定资源标识符
Unable to specify Resource Identifier for AWS::ApiGateway::Resource in Cloudformation Template
我正在使用 SAM 部署一个简单的 Hello world 应用程序。一个与一个 API 端点,这将触发一个 lambda 函数,该函数 returns 文本 hello world。
我定义了以下资源:
- IAM 角色,以便 API网关可以调用 lambda 函数。
- AWS::ApiGateway::RestApi
- AWS::ApiGateway::Resource
- AWS::ApiGateway::方法
- AWS::无服务器::函数
诚然,我还不知道 2. 和 3. 在功能上的区别。
在 sam deploy
期间,我看到以下错误。
ROLLBACK_IN_PROGRESS AWS::CloudFormation::Stack go-hello-world The following resource(s) failed to create:
[HelloWorldAPIResource,
HelloWorldFunctionRole]. Rollback requested by
user.
CREATE_FAILED AWS::IAM::Role HelloWorldFunctionRole Resource creation cancelled
CREATE_FAILED AWS::ApiGateway::Resource HelloWorldAPIResource Resource handler returned message: "Invalid
Resource identifier specified (Service:
ApiGateway, Status Code: 404, Request ID:
62f34d79-86ab-47fd-85b1-5fbb55071520, Extended
Request ID: null)" (RequestToken:
9633d7db-7b6d-881b-f54e-ca0114862fd8,
HandlerErrorCode: NotFound)
这意味着 AWS::ApiGateway::Resource 没有获得对 AWS::ApiGateway::RestApi 的有效引用。
这是我 template.yml
的相关部分
HelloWorldAPI:
Type: AWS::ApiGateway::RestApi
Properties:
Name: HelloWorldApi
HelloWorldAPIResource:
Type: AWS::ApiGateway::Resource
Properties:
RestApiId: !Ref HelloWorldAPI
ParentId: "/"
PathPart: hello
总的来说,我是 CloudFormation 和 AWS 的新手,非常感谢您的帮助。
应该是:
ParentId: !GetAtt HelloWorldAPI.RootResourceId
我正在使用 SAM 部署一个简单的 Hello world 应用程序。一个与一个 API 端点,这将触发一个 lambda 函数,该函数 returns 文本 hello world。 我定义了以下资源:
- IAM 角色,以便 API网关可以调用 lambda 函数。
- AWS::ApiGateway::RestApi
- AWS::ApiGateway::Resource
- AWS::ApiGateway::方法
- AWS::无服务器::函数
诚然,我还不知道 2. 和 3. 在功能上的区别。
在 sam deploy
期间,我看到以下错误。
ROLLBACK_IN_PROGRESS AWS::CloudFormation::Stack go-hello-world The following resource(s) failed to create:
[HelloWorldAPIResource,
HelloWorldFunctionRole]. Rollback requested by
user.
CREATE_FAILED AWS::IAM::Role HelloWorldFunctionRole Resource creation cancelled
CREATE_FAILED AWS::ApiGateway::Resource HelloWorldAPIResource Resource handler returned message: "Invalid
Resource identifier specified (Service:
ApiGateway, Status Code: 404, Request ID:
62f34d79-86ab-47fd-85b1-5fbb55071520, Extended
Request ID: null)" (RequestToken:
9633d7db-7b6d-881b-f54e-ca0114862fd8,
HandlerErrorCode: NotFound)
这意味着 AWS::ApiGateway::Resource 没有获得对 AWS::ApiGateway::RestApi 的有效引用。
这是我 template.yml
HelloWorldAPI:
Type: AWS::ApiGateway::RestApi
Properties:
Name: HelloWorldApi
HelloWorldAPIResource:
Type: AWS::ApiGateway::Resource
Properties:
RestApiId: !Ref HelloWorldAPI
ParentId: "/"
PathPart: hello
总的来说,我是 CloudFormation 和 AWS 的新手,非常感谢您的帮助。
应该是:
ParentId: !GetAtt HelloWorldAPI.RootResourceId