Как программно получить «ID-распределения» для аннулирования кэша облачного фронта? - PullRequest
0 голосов
/ 24 мая 2019

Необходимо программно получить CDN_DISTRIBUTION_ID, чтобы кэши CloudFront могли быть аннулированы после сборки независимо от распределения.

У меня есть Cloudfront, чтобы сделать его недействительным, как предполагалось, но для этого требуется идентификатор дистрибутива. Поскольку один и тот же код yaml будет использоваться для индивидуальной среды каждого разработчика, ci, production и т. Д., Его необходимо получить программно. Я изо всех сил пытаюсь понять, как получить distribution_id, не находя его вручную в консоли AWS или не используя обходные пути на других языках. Мы хотели бы иметь возможность просто передать его как переменную типа $ {DISTRUBUTIION_ID}, но я изо всех сил пытаюсь выяснить, как установить это через yaml.

- aws cloudfront create-invalidation --distribution-id CDN_DISTRIBUTION_ID --paths "/*"

У меня есть идентификатор для импорта стека, но я не уверен, как его импортировать в спецификацию сборки времени выполнения, где он должен быть.

Outputs:
  ClientDistribution:
    Description: "ClientDistribution distribution id"
    Value: !Ref ClientDistribution
    Export:
      Name: !Sub "${AWS::StackName}-ClientDistribution"

1 Ответ

0 голосов
/ 24 мая 2019

После развертывания стека вы можете получить идентификатор распространения с помощью AWS CLI и jq (при условии, что у вас есть вывод ClientDistribution, как показано в вашем вопросе):

aws cloudformation describe-stacks --stack-name <name> | jq '.Stacks[0].Outputs[] | select(.OutputKey=="ClientDistribution").OutputValue'

Затем вы можете использовать это для установки вашей переменной и продолжения с аннулированием.

См. Также description-stacks и DescribeStacks .

...