Saltar al contenido

AWS SAM, unable to dynamically change the CodeUri based on Variable

0

I have different local directories for three different environments with differnet codes. I can map all other properties dynamically except the codeUri. The current code below shows up an error "'CodeUri' requires Bucket and Key properties to be specified."

  AuditEventsToDynamo:
    Type: AWS::Serverless::Function
    Properties:
      FunctionName: !Sub 'AuditEventsToDynamo${ENV}'
      CodeUri: !Sub 'AuditEventsToDynamo${ENV}/'
      Handler: !Join [ "", ["AuditEventsToDynamo" ,!Ref "ENV",".lambda_handler"]]
      Runtime: python3.9
      Environment:
        Variables:
          DB_TABLE: !Ref DBTABLE
      Architectures:
        - arm64

The code is local, if I replace the CodeUri with a literal string, it works. Is there a workaround?

preguntada hace 3 años505 visualizaciones
1 Respuesta
0

What's the "literal string" you used that works, and what's the value of "ENV" when it fails? If ENV is something like "Dev", "Prod" etc then the error makes sense - your CodeUri wouldn't have both a Bucket and Key specified.

EXPERTO
respondido hace 3 años
  • I have three local directories named as AuditEventsToDynamoProd AuditEventsToDynamoTest . If I give the path as "AuditEventsToDynamoProd", it works. I couldn't use any Intrinsic Functions to add dynamic values.

No has iniciado sesión. Iniciar sesión para publicar una respuesta.

Una buena respuesta responde claramente a la pregunta, proporciona comentarios constructivos y fomenta el crecimiento profesional en la persona que hace la pregunta.