Возможно ли ссылаться на AWS Lambda из самого себя?

#amazon-web-services #aws-lambda #tags

#amazon-web-services #aws-lambda #Теги

Вопрос:

Я прошу прощения, если этот вопрос каким-либо образом неясен — я сделаю все возможное, чтобы добавить детали, если это трудно понять. У меня есть AWS Lambda, из которого я хотел бы получить доступ к тегам для этого же лямбда. Я нашел метод listTags для AWS Lambda, который, похоже, является тем, что я ищу. Это можно вызвать следующим образом:

  var params = {
  Resource: "arn:aws:lambda:us-west-2:123456789012:function:my-function"
 };
 lambda.listTags(params, function(err, data) {
   if (err) console.log(err, err.stack); // an error occurred
   else     console.log(data);           // successful response
 });
  

Однако, чтобы использовать эту функцию, мы должны создать новый экземпляр lambda с помощью конструктора lambda:

 var lambda = new AWS.Lambda({apiVersion: '2015-03-31'});
  

Я не думаю, что это то, что я хочу сделать. Вместо этого я хочу иметь доступ к тегам для этой конкретной лямбды всякий раз, когда выполняется лямбда. Итак, если я вызываю лямбду, я хочу, чтобы этот вызов мог просматривать и видеть, что сама лямбда имеет тег с ключом «environment» и значением «production», например. Я бы не подумал, что хотел бы создать новый экземпляр из него … сам по себе.

Наверняка должен быть какой-то способ сделать это? Возможно, я упускаю что-то очевидное. Я пробовал приведенный выше код, используя объект context вместо лямбда-выражения, но безрезультатно.

Комментарии:

1. AWS.Lambda вероятно (?!) Просто создает экземпляр клиента API , он не «создает экземпляр лямбды» (например, выполняет функцию AWS Lambda)…

2. @deceze Ах, ладно. Я все еще очень новичок в AWS. Таким образом, в этом случае имело бы смысл создать экземпляр API-клиента для AWS. Лямбда внутри самой лямбды?

3. Если вы хотите передать информацию в лямбда-функцию, я бы рекомендовал использовать переменные окружения , связанные с функцией, а не теги. Они напрямую доступны для запущенной функции.

Ответ №1:

Вам следует рассмотреть переменные среды Lambda.

Теги AWS — это просто метаданные, используемые для организации ресурсов, документы aws указывают на их использование как:

 - Tags for resource organization
- Tags for cost allocation
- Tags for automation
- Tags for access control
  

Ссылка:https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html