Как я могу развернуть код lambda @ edge в экземплярах Cloudfront организации через aws cli? - PullRequest
0 голосов
/ 05 апреля 2019

Перед некоторыми корзинами AWS установлен дистрибутив Cloudfront, настроенный другим членом моей команды.

У меня есть код node.js для lambda @ edge для перезаписи запросов.

У меня вопрос, как мне развернуть его в Cloudfront для этих сегментов, используя инструмент командной строки aws?

Я думаю, это потребует

  1. запрос на получение разрешения на роль;
  2. развернуть функцию где-нибудь, чтобы ее можно было использовать (в отличие от только моей учетной записи);
  3. создать роль / доверительные отношения;
  4. создать поведение в Cloudfront;
  5. и связать функцию с событием Viewer Request.

Я не нашел никакой понятной документации или примеров того, как все это сделать, не говоря уже об использовании инструмента aws.

Как таковой, я не могу видеть контейнеры Cloudfront или S3, когда я вхожу через веб-сайт, хотя я могу перечислить содержимое корзины s3 через командную строку. (Я не уверен, как получить доступ к Cloudfront через командную строку).

1 Ответ

1 голос
/ 05 апреля 2019

Если ваша функция развернута в Lambda, вы должны добавить ее в элемент «LambdaFunctionAssociations» в конфигурации дистрибутива CloudFront, а затем обновить вашу конфигурацию с помощью команды CLI update-distribution , например:

aws cloudfront update-distribution --id C123456789 --distribution-config file://local/path/to/distrib-config.json

Где id - это идентификатор вашего дистрибутива

Если вы хотите получить текущую конфигурацию дистрибутива CloudFront, вы можете сделать aws cloudfront get-distribution-config --id C123456789

Если вы хотите сначала создать функцию, тоaws lambda create-function вернет созданные функции ARN для передачи в конфиг.https://docs.aws.amazon.com/cli/latest/reference/lambda/create-function.html

Когда вы говорите «только для моей учетной записи», подразумеваете ли вы отдельную учетную запись AWS или вы подразумеваете использование своего пользователя IAM в той же учетной записи AWS, что и в дистрибутиве CloudFront и корзинах S3?Похоже, что ваш пользователь Консоли AWS отличается от пользователя, которому назначены ключи доступа в aws cli.aws cloudfront list-distributions позволит вам увидеть CloudFront через командную строку.

Ссылка на AWS Dev Guide для программного обеспечения lambda @ edge

...