如何访问从 s3 存储桶复制到 .NET 代码中的弹性 beantalk 的文件?
How to access a file copied from s3 bucket to elastic beanstalk inside .NET code?
我在 Elastic Beanstalk 上托管一个 .NET 后端应用程序。我制作了一个配置文件,如:
Resources:
AWSEBAutoScalingGroup:
Metadata:
AWS::CloudFormation::Authentication:
S3Auth:
type: "s3"
buckets: ["my-bucket"]
roleName:
"Fn::GetOptionSetting":
Namespace: "aws:autoscaling:launchconfiguration"
OptionName: "IamInstanceProfile"
DefaultValue: "aws-elasticbeanstalk-ec2-role"
files:
# Private key
"/var/app/current/file":
mode: "000400"
owner: root
group: root
authentication: "S3Auth"
source: https://my-url/file
这似乎可行,但是,当我尝试仅使用 file
(我也尝试过 ./file
)作为路径名来访问 .NET 中的文件时,我得到 File not found
错误。它说我当前的目录是 var/app/current
.
我最终不确定如何查看 EC2 中 EB 实例的文件,甚至查看它是否复制过来,或者在不抛出异常的情况下失败。如果它确实复制了,它被放在哪里......或者我只是访问了错误的文件?
EB 将在您的部署结束时覆盖您的/var/app/current
。所以无论你在 files
中写什么,都会被删除。您可以尝试 /var/app/staging
。如果这也不起作用,您可以考虑将文件保存在 /var/app
.
之外
我在 Elastic Beanstalk 上托管一个 .NET 后端应用程序。我制作了一个配置文件,如:
Resources:
AWSEBAutoScalingGroup:
Metadata:
AWS::CloudFormation::Authentication:
S3Auth:
type: "s3"
buckets: ["my-bucket"]
roleName:
"Fn::GetOptionSetting":
Namespace: "aws:autoscaling:launchconfiguration"
OptionName: "IamInstanceProfile"
DefaultValue: "aws-elasticbeanstalk-ec2-role"
files:
# Private key
"/var/app/current/file":
mode: "000400"
owner: root
group: root
authentication: "S3Auth"
source: https://my-url/file
这似乎可行,但是,当我尝试仅使用 file
(我也尝试过 ./file
)作为路径名来访问 .NET 中的文件时,我得到 File not found
错误。它说我当前的目录是 var/app/current
.
我最终不确定如何查看 EC2 中 EB 实例的文件,甚至查看它是否复制过来,或者在不抛出异常的情况下失败。如果它确实复制了,它被放在哪里......或者我只是访问了错误的文件?
EB 将在您的部署结束时覆盖您的/var/app/current
。所以无论你在 files
中写什么,都会被删除。您可以尝试 /var/app/staging
。如果这也不起作用,您可以考虑将文件保存在 /var/app
.