Итак, это странно.
Я пытаюсь добиться того, чтобы при развертывании моего 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"
Обновление: Объединение обоих сценариев в один, кажется, работает должным образом.