gpt4 book ai didi

amazon-web-services - AWS 云形成 : attribute PathPart must be a readonly property

转载 作者:行者123 更新时间:2023-12-03 07:12:16 25 4
gpt4 key购买 nike

我正在尝试在 AWS CloudFormation 模板上描述我的资源。我尝试在模板中插入 APIGateway 调用 Lambda 函数所需的权限。

通过 CF 的可用文档,我发现我需要的资源类型是 AWS::Lambda::Permission,我是这样构建的

    SampleApiPermission:
Type: AWS::Lambda::Permission
Properties:
Action: "lambda:InvokeFunction"
FunctionName: "HelloWorldFunction"
Principal: "apigateway.amazonaws.com"
SourceArn: !Join
- ''
- - !Sub 'arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:'
- !Ref RestApiHelloWorld
- "/"
- !Ref APIStageHelloWorld
- "/POST/"
- !GetAtt APIGatawayResourceHelloWorld.PathPart

但是他给了我一个错误:“请求的属性 PathPart 必须是 AWS::ApiGateway::Resource 架构中的只读属性”。我也尝试使用 !Ref 但在这种情况下它会获取资源 ID,然后结果是错误的。我尝试进行最后一次尝试,看看其余部分是否错误,但将我需要的部分直接作为字符串,一切正常

    SampleApiPermission:
Type: AWS::Lambda::Permission
Properties:
Action: "lambda:InvokeFunction"
FunctionName: "HelloWorldFunction"
Principal: "apigateway.amazonaws.com"
SourceArn: !Join
- ''
- - !Sub 'arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:'
- !Ref RestApiHelloWorld
- "/"
- !Ref APIStageHelloWorld
- "/POST/"
- "helloworld"

我想了解是否可以通过某种方式获得该值,或者是否不可能并且必须将其作为字符串输入。预先感谢您的关注以及您花时间帮助我。

最佳答案

“请求的属性 PathPart 必须是 AWS::ApiGateway::Resource 架构中的只读属性”的原因是 PathPart 不是 AWS::ApiGateway::Resource 的返回值。唯一的返回值是ResourceId。可以在此处找到文档:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html

也许您可以尝试使用 CloudFormation 的 AWS SAM 扩展,这应该有助于简化 API 网关和 Lambda 函数的构建:https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html#sam-resource-api--examples

关于amazon-web-services - AWS 云形成 : attribute PathPart must be a readonly property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74237669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com