Как развернуть переменную среды с помощью бессерверного развертывания для AWS lambda - PullRequest
0 голосов
/ 06 июля 2018

Я новичок в AWS lambda. Я использую развертывание без обслуживания для развертывания своей лямбда-функции, объявленной в файле serverless.yml. В этом файле я написал развернутую лямбда-функцию, и она работает нормально, но проблема в том, что любая переменная окружения, которую я дал, недоступна в консоли этой лямбда-функции. Я мог бы сделать небольшую ошибку или для развертывания переменной окружения должен быть какой-то другой синтаксис. Я могу перейти к лямбда-функции в консоли и добавить переменную среды вручную. Но я сомневаюсь, что мы можем сделать это при развертывании через serverless deploy

Ответы [ 2 ]

0 голосов
/ 10 июля 2018
serverless deploy 

Безсерверное развертывание прекрасно работает для развертывания на любом этапе, на котором также развернута переменная среды, в моем случае переменная среды не была развернута из-за проблемы отступа в файле yaml, и даже команда развертывания без сервера не выдавала ошибку, это была функция развертывания, но среда переменные не были развернуты

В файле yaml мы можем указать этап, на котором мы хотим развернуть, вот так

provider:
name: aws
runtime: nodejs6.10
stage: dev
region: eu-west-2

Надеюсь, это поможет, если у кого-то возникнет аналогичная проблема

0 голосов
/ 06 июля 2018

Вы можете использовать версии и псевдонимы, предоставляемые AWS Lambda

Вы можете создавать разные версии одной и той же лямбда-функции и давать им псевдоним. Например, когда вы нажимаете лямбда-код - создаете версию (скажем, 5) - создаете псевдоним this (например, TEST). Когда вы уверены, что он готов к производству, создайте версию (или выберите существующую версию и назовите ее (скажем, PROD).

Теперь, когда ваша лямбда-функция выполняется, она дает lambda ARN который содержит псевдоним, тем самым вы можете знать, какой псевдоним (в context.invokedFunctionArn) выполняется, то есть может использоваться как переменная окружения. В то время как вызывая функцию, вы можете указать, какую функцию выполнять Ваш код вызова.

let thisARN = context.invokedFunctionArn;

// Get the last string in ARN - It's either function name or the alias name
let thisAlias = thisARN.split(":").pop();

Теперь, когда вы развертываете новый код, просто укажите псевдоним для этой версии. Для этого вы можете использовать консоль AWS или CLI.

Взгляните на эту лямбда-версию и псевдонимы

Для непосредственного развертывания на свой псевдоним (PROD) вы можете сделать это -

    aws lambda update-alias \
    --region region \
    --function-name helloworld \
    --function-version 2 \
    --name PROD
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...