Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

591
Visualizações
¿Cómo puedo invocar otra función lambda también definida en la plantilla de AWS SAM?

Sé cómo invocar funciones lambda que he nombrado y que ya existen como funciones Lambda, pero ¿cómo puedo hacer que una función A invoque una función B que estoy definiendo en la plantilla AWS SAM juntas y no conoceré el nombre de antemano, también conocido como dinámicamente?

¿Hay alguna manera de pasar el nombre de FunctionB como parte de la plantilla SAM antes de que se cree para que la plantilla conozca el nombre completo de FunctionB, antes de crear FunctionA?

Veo muchas preguntas sobre probar esto solo localmente

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

SAM es diferente a CloudFormation. SAM tiene un atajo. El tipo de recurso SAM AWS::Serverless::Function simplifica esto.

En esta plantilla SAM de ejemplo, el recurso de ejemplo 'CallerFunction' tiene:

  1. Una política de alcance para invocar la función 'microservicio'
  2. Una variable de entorno con el nombre de función.
 AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: > A SAM template where lambda function caller invokes lambda function microservice. Resources: CallerFunction: Type: AWS::Serverless::Function Properties: Description: 'A lambda that invokes the function microservice' CodeUri: caller/ Handler: app.handler Runtime: nodejs10.x Policies: - LambdaInvokePolicy: FunctionName: !Ref MicroserviceFunction Environment: Variables: MICROSERVICE_FUNCTION: !Ref MicroserviceFunction MicroserviceFunction: Type: AWS::Serverless::Function Properties: Description: 'A microservice lambda' CodeUri: microservice/ Handler: index.handler Runtime: nodejs10.x Policies: CloudWatchLogsFullAccess

¡Diviértete con serverless!

over 4 years ago · Santiago Trujillo Relatório

0

Puede pasar el nombre o el ARN de la otra función como una variable de entorno. Por ejemplo:

 Resources: FunctionA: Type: AWS::Lambda::Function Properties: Handler: index.handler Runtime: python3.6 Role: !Sub ${FunctionRole.Arn} Environment: Variables: # pass FunctionB ARN as environment variable FUNCTION_B_ARN: !Sub ${FunctionB.Arn} Code: ZipFile: | import os def handler(event, context): # use environment variable print(os.getenv("FUNCTION_B_ARN")) FunctionB: Type: AWS::Lambda::Function Properties: Handler: index.handler Runtime: python3.6 Role: !Sub ${FunctionRole.Arn} Code: ZipFile: | def handler(event, context): print("hello world") FunctionRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Statement: - Action: - sts:AssumeRole Effect: Allow Principal: Service: - lambda.amazonaws.com Version: '2012-10-17' ManagedPolicyArns: - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda