Скрипт Elasti c Beanstalk, передающий файлы из S3 с одинаковым содержимым файла - PullRequest
0 голосов
/ 18 апреля 2020

Итак, это странно.

Я пытаюсь добиться того, чтобы при развертывании моего Laravel проекта через Elasti c Beanstalk он получал ключи OAuth (private & publi c) из S3 и помещал их в * Каталог 1003 *.

Проблема, с которой я сталкиваюсь, заключается в том, что файлы передаются oauth-private.key и oauth-public.key, но они оба содержат содержимое файла oauth-public.key.

Я дважды проверил содержимое файлов в S3, и они верны.

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

Сценарии:

.ebextensions / 100_download_private_key.config

Parameters:
  bucket:
    Type: CommaDelimitedList
    Description: "Name of the Amazon S3 bucket that contains your file"
    Default: "my-bucket"
  fileuri:
    Type: String
    Description: "Path to the file in S3"
    Default: "https://my-bucket.s3.eu-west-2.amazonaws.com/oauth-private.key"
  authrole:
    Type: String
    Description: "Role with permissions to download the file from Amazon S3"
    Default: "aws-elasticbeanstalk-ec2-role"

Resources:
  AWSEBAutoScalingGroup:
    Type: "AWS::AutoScaling::AutoScalingGroup"
    Metadata:
      AWS::CloudFormation::Authentication:
        S3AccessCred:
          type: "S3"
          roleName: { "Ref" : "authrole" }
          buckets: { "Ref" : "bucket" }

files:
  /tmp/oauth-private.key:
    mode: "000600"
    owner: webapp
    group: webapp
    source: { "Ref" : "fileuri" }
    authentication: S3AccessCred

container_commands:
  make_storage_directory_for_private_key:
    command: "mkdir -p storage"
  move_private_key_to_storage_directory:
    command: "mv /tmp/oauth-private.key storage"

.ebextensions / 110_download_public_key.config

Parameters:
  bucket:
    Type: CommaDelimitedList
    Description: "Name of the Amazon S3 bucket that contains your file"
    Default: "my-bucket"
  fileuri:
    Type: String
    Description: "Path to the file in S3"
    Default: "https://my-bucket.s3.eu-west-2.amazonaws.com/oauth-public.key"
  authrole:
    Type: String
    Description: "Role with permissions to download the file from Amazon S3"
    Default: "aws-elasticbeanstalk-ec2-role"

Resources:
  AWSEBAutoScalingGroup:
    Type: "AWS::AutoScaling::AutoScalingGroup"
    Metadata:
      AWS::CloudFormation::Authentication:
        S3AccessCred:
          type: "S3"
          roleName: { "Ref" : "authrole" }
          buckets: { "Ref" : "bucket" }

files:
  /tmp/oauth-public.key:
    mode: "000644"
    owner: webapp
    group: webapp
    source: { "Ref" : "fileuri" }
    authentication: S3AccessCred

container_commands:
  make_storage_directory_for_public_key:
    command: "mkdir -p storage"
  move_public_key_to_storage_directory:
    command: "mv /tmp/oauth-public.key storage"

Обновление: Объединение обоих сценариев в один, кажется, работает должным образом.

...