Teniendo en cuenta esta función lambda en un archivo serverless.yml:
functions: s3toEc2Lambda: handler: s3toec2lambda.S3toEc2Lambda name: "${self:service}-s3toEc2Lambda" role: S3toEc2LambdaRoleY teniendo en cuenta este SNS creado en la sección de recursos: ¿Alguien sabe cómo informar al punto final de Sns ARN desde la función lambda s3toEc2Lambda?
resources: Resources: WordpressFrontEndSnsS3toEc2: Type: AWS::SNS::Topic Properties: TopicName: "wordpress-front-end-s3-ec2" WordpressFrontEndSnsS3toEc2Lambda: Type: AWS::SNS::Subscription Properties: Endpoint: { "Fn::GetAtt": ["s3toEc2Lambda", "Arn" ] } <------ HERE <------ #Endpoint: ${self:functions.s3toEc2Lambda} <------ OR HERE <------ #Endpoint: { "Fn::GetAtt": ["${self:functions.s3toEc2Lambda}", "Arn" ] } <------ OR HERE <------ Protocol: lambda TopicArn: !Ref 'WordpressFrontEndSnsS3toEc2'A mí siempre me aparece un mensaje de error como este: "Error de plantilla: instancia de Fn::GetAtt hace referencia a un recurso indefinido s3toEc2Lambda"
Gracias !
Los recursos de CloudFormation creados por serverless tienen unformato conocido . Para la función lambda esto es:
{normalizedFunctionName}LambdaFunction
Por lo tanto, debería poder hacer referencia a su función usando lo siguiente:
"Fn::GetAtt": [ S3toEc2LambdaLambdaFunction, Arn ]Más ejemplos sobre esto están aquí