Passando parâmetros para o AWS Lambda

4

Estou tentando escrever um modelo do CloudFormation que assina uma função do Lambda em um Grupo de Logs do CloudWatch Logs. Essa função Lambda deve, então, analisar os logs e colocá-los em um cluster do Amazon ES.

A assinatura, etc., está funcionando perfeitamente, mas o único ponto em que não consigo me convencer é como passar no terminal do cluster do Amazon ES para a função Lambda. O modelo que a AWS fornece ao percorrer o console inclui uma linha:

var endpoint = 'my-aws-es-endpoint.amazonaws.com';

Obviamente, precisarei atualizá-lo toda vez que o modelo do CloudFormation for executado, pois sempre que obtiver um cluster diferente com um ponto final diferente. Eu não quero atualizar isso manualmente, mas quero poder usar as funções do CloudFormation como 'Fn :: GetAtt' para obter o ponto final e passá-lo para o Lambda. Eu simplesmente não consigo descobrir como.

    
por user1799 16.11.2016 / 10:42

1 resposta

4

Você pode passar o ponto de extremidade do cluster ES para a função Lambda como uma variável de ambiente . Aqui está um snippet do modelo do CloudFormation para essa função:

"mylambda": {
  "Type": "AWS::Lambda::Function",
  "Properties": {
    "Handler": "index.handler",
    "Role": { "Fn::GetAtt" : ["LambdaExecutionRole", "Arn"] },
    "Code": {
      "S3Bucket": "my-lambda-functions-bucket",
      "S3Key": "mylambda.zip"
    },
    "Runtime": "nodejs4.3",
    "Timeout": "25",
    "Environment": {
       "Variables": {
         "ESENDPOINT": { "Fn::GetAtt": ["ESDOMAINRESOURCE", "DomainEndpoint"] }
       }
    }
  }
}
    
por 20.01.2017 / 10:41