Отображение git-хэша на развернутую лямбду - PullRequest
0 голосов
/ 08 июля 2019

Мы хотели бы иметь возможность понять версию нашего программного обеспечения, которая в настоящее время развернута для конкретной лямбда-версии AWS.Каковы оптимальные методы отслеживания хеша фиксации кода в лямбда-выражении AWS?Мы рассмотрели AWS tagging , а также AWS Lambda Aliasing , но ни один из этих подходов не кажется удобным или удобным для пользователя.Есть ли другие сервисы, которые предоставляет AWS?

Спасибо

Ответы [ 3 ]

1 голос
/ 09 июля 2019

Без контекста и лучшего понимания вашего прецедента вокруг хеша коммитов трудно дать прямо полезный ответ, и, как показали другие ответы, есть много способов сделать это. При этом хеш коммита конкретного кода, в конечном счете, является метаданными, и AWS предлагает решение для работы с метаданными ресурса: тегами.

Лучшая практика - помечать ваши ресурсы метаданными. Почти все, если не все ресурсы AWS (включая Lambda) поддерживают теги. Как указано в документации AWS, «тегирование позволяет вам быстро искать, фильтровать и управлять ресурсами» и с учетом ограничений AWS ваши теги могут быть практически любой парой ключ-значение, которая вам нравится, включая «commit: hash».

Стратегия тегирования здесь будет заключаться в том, чтобы назначить хеш коммита тэгу «commit» со значением «e63abe27». Вы можете пометить ресурсы вручную через консоль или применить теги как часть процесса сборки.

После отметки на высоком уровне вы сможете определить, какой коммит используется, перечислив теги для рассматриваемой лямбды. Команда CLI будет выглядеть примерно так:

aws lambda list-tags —resource arn:aws:lambda:us-east-1:123456789012:function:myFunction

Подробнее о тегах и стратегии тегов можно узнать, ознакомившись с документацией AWS здесь , а также вы можете скачать документацию по наилучшей практике тегирования здесь .

0 голосов
/ 08 июля 2019

Одной из альтернатив может быть создание файла с помощью Git SHA как части вашей системы сборки, который упакован вместе с другими файлами в артефакте сборки. Следующий скрипт генерирует файл gitSha.json в ${outputDir}:

#!/usr/bin/env bash

gitSha=$(git rev-parse --short HEAD)
printf "{\"gitSha\": \"%s\"}" ${gitSha} > "${outputDir}/git-sha.js"

Следовательно, gitSha.json может выглядеть следующим образом:

{"gitSha": "5c805638"}

Затем к этому файлу можно получить доступ, скачав пакет. Кроме того, вы можете создать функцию, которая проверяет файл во время выполнения и возвращает его значение вызывающей стороне, записывает его в журнал или тому подобное в зависимости от вашего варианта использования.

Этот скрипт был реализован с использованием bash и git rev-parse , но вы можете использовать любой язык сценариев в сочетании с библиотекой Git, с которой вам удобно.

0 голосов
/ 08 июля 2019

Лучший способ создания версии Lambda - создать опцию «Создать версию» и добавить эти версии в псевдоним.

Мы широко используем этот механизм для сопоставления одной AWS Lambda с различными конечными точками шлюза API. Мы используем переменные среды, предоставляемые AWS Lambda, для перемещения всех конфигураций за пределы функции Lambda . В каждой версии Lambda мы меняем эти переменные среды по мере необходимости и создаем новую версию. Эта версия может быть сопоставлена ​​с псевдонимом, который поможет сохранить шлюз API или точки интеграции без изменений (без каких-либо изменений для интеграции)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...