这通常是因为您使用 AWS SAM 创建了一个带有 AWS WAF 关联的资源,但相关的 AWS WAF 资源尚未创建或不存在。要解决此问题,您需要确保您的 AWS WAF 资源已创建,并且与 AWS SAM 中的 WebACLAssociation 资源关联。
以下是一个示例 AWS SAM 模板,其中包含一个 WebACLAssociation 资源与一个 AWS WAF WebACL 资源关联的示例。在部署该模板之前,请确保已创建名为'my-web-acl”的 AWS WAF WebACL 资源。
Resources:
MyApi:
Type: 'AWS::Serverless::Api'
Properties:
StageName: prod
DefinitionUri: swagger.yaml
MyWebACL:
Type: 'AWS::WAFv2::WebACL'
Properties:
Name: my-web-acl
Scope: REGIONAL
DefaultAction:
Allow: {}
MyWebACLAssociation:
Type: 'AWS::WAFv2::WebACLAssociation'
Properties:
ResourceArn: !Sub 'arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi}/*/GET/*'
WebACLArn: !Ref MyWebACL