HttpApi invalid error on nested stack

0

Im trying to create a nested stack on a cloudformation template, i have declared in the parent application a reference to the http api we are using, and use this api in the child template. When i try to do the build with sam, it throws this error: "E0001 Error transforming template:ApiId must be a valid reference to an 'AWS::Serverless::HttpApi' resource in same template."

Parent template declaration:

childStack:
    Type: "AWS::Serverless::Application"
    Properties:
      Location: ./child.yaml
      Parameters:
        ApiId: !Ref ApiReference

Child template declaration:

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31

Parameters:
  ApiId:
    Type: string

Globals:
  Function:
    Runtime: !Ref "AWS::NoValue"
    Handler: !Ref "AWS::NoValue"
    Layers: !Ref "AWS::NoValue"

Resources:
  lambdaFunctionLogGroup:
    Type: 'AWS::Logs::LogGroup'
    Properties:
      Location: ./parent.yaml
      LogGroupName: !Join
        - '/'
        - - '/aws/lambda'
          - !Ref 'TournamentSubscriptionFunction'
      RetentionInDays:
        !FindInMap [Service, !Ref EnvironmentName, LogRetentionInDays]

  lambdaFunction:
    Location: ./parent.yaml
    Type: AWS::Serverless::Function
    Properties:
      Description: Image validation for identity verification
      FunctionName: !Sub '${EnvironmentName}-lambda'
      PackageType: Image
      Architectures: ['arm64']
      Environment:
        Variables:
          ExampleVariable
      Policies:
        - CloudWatchLambdaInsightsExecutionRolePolicy
      Events:
        Name:
          Type: HttpApi
          Properties:
            Path: /event-client/api/lambda
            Method: POST
            ApiId: !Ref ApiReference
            Auth:
              Authorizer: OAuth2Authorizer
      VpcConfig:
        SubnetIds: !Split
          - ','
          - Fn::ImportValue: !Sub '${EnvironmentName}-PrivateSubnets'
      Tags:
        Environment: !Sub '${EnvironmentName}'
    Metadata:
      DockerTag: nodejs16.x-v1
      DockerContext: ../dist/src/client/lambda-route
      Dockerfile: Dockerfile
posta un anno fa284 visualizzazioni
1 Risposta
0

According to the docs:

This cannot reference an AWS::Serverless::HttpApi resource defined in another template.
profile pictureAWS
ESPERTO
kentrad
con risposta un anno fa

Accesso non effettuato. Accedi per postare una risposta.

Una buona risposta soddisfa chiaramente la domanda, fornisce un feedback costruttivo e incoraggia la crescita professionale del richiedente.

Linee guida per rispondere alle domande