GVKun编程网logo

如何在 Linux 中每行的字符后自动引用内容? Elastic Beanstalk 环境变量相关

1

如果您对如何在Linux中每行的字符后自动引用内容?ElasticBeanstalk环境变量相关感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解如何在Linux中每行的字符后自动引用内容?Ela

如果您对如何在 Linux 中每行的字符后自动引用内容? Elastic Beanstalk 环境变量相关感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解如何在 Linux 中每行的字符后自动引用内容? Elastic Beanstalk 环境变量相关的各种细节,此外还有关于Amazon EC2 和 AWS Elastic Beanstalk 之间的区别、amazon-web-services – Multi Docker Elastic Beanstalk:上传.ebextensions、amazon-web-services – 从私有Docker存储库将映像部署到AWS Elastic Beanstalk、AWS - Elastic Beanstalk - eb 部署在 Linux 上的 .NET 核心上失败的实用技巧。

本文目录一览:

如何在 Linux 中每行的字符后自动引用内容? Elastic Beanstalk 环境变量相关

如何在 Linux 中每行的字符后自动引用内容? Elastic Beanstalk 环境变量相关

如何解决如何在 Linux 中每行的字符后自动引用内容? Elastic Beanstalk 环境变量相关

考虑以下文件:

APP_ENV=production
APP_NAME=Some API <- This line HERE
RDS_DB_PASSWORD=Some_Strong_Password
// etc...

此文件由 AWS Elastic Beanstalk 为我的环境自动生成,即我无法控制内容的格式。

当应用程序运行时,它会在内部传递环境变量,这工作正常。但是,当我尝试运行如下所示的 Laravel 命令时,它不会转义每个变量的内容:

export $(sudo cat /opt/elasticbeanstalk/deployment/env) && sudo -E -u webapp PHP artisan some-command

因此,值 Some API 被作为 Some 传递,因为它没有用引号括起来。

有没有办法在此文件中第一个 = 之后的值周围插入引号,然后将它们传递给我的网络应用程序?或者,我是否错误地运行了我的命令?鉴于这是 Laravel 特定的,没有关于如何在运行 Amazon Linux 2 的 Elastic Beanstalk 上运行 Laravel 命令的文档。

解决方法

我设法通过在应用程序部署时将变量导出到我的配置文件来解决这个问题,如下所示:

commands:
    setvars:
        command: /opt/elasticbeanstalk/bin/get-config environment | jq -r ''to_entries | .[] | "export \\(.key)=\\"\\(.value)\\""'' > /etc/profile.d/sh.local

参见参考文献 here。

Amazon EC2 和 AWS Elastic Beanstalk 之间的区别

Amazon EC2 和 AWS Elastic Beanstalk 之间的区别

有人可以解释一下 EC2 和 Beanstalk 之间的区别。我想了解有关 SaaS、PaaS 和 IaaS 的信息。

要在 Wordpress 中部署 Web 应用程序,我需要一个可扩展的托管服务。如果有什么比我的目的更好,也请告诉我。

仅供参考 - 我想托管和部署多个 Wordpress 和 Drupal 站点。

我不想给服务器更多的时间而专注于开发。但是云托管需要自动扩展。

答案1

小编典典

首先,EC2 和 Elastic Compute Cloud是一回事。

其次,AWS 包含一系列 Web 服务,其中包括 EC2 和 Elastic Beanstalk。它还包括许多其他产品,例如 S3、RDS、DynamoDB
和所有其他产品。

EC2

EC2 是 Amazon 的服务,它允许您在 AWS 云中创建 服务器 (AWS 调用这些 实例)。
您按小时付费,并且只支付您使用的费用。你可以对这个实例做任何你想做的事情,也可以启动n实例数量。

弹力豆茎

Elastic Beanstalk 是 EC2 层之外的抽象层。Elastic Beanstalk 将为您设置一个“环境”,其中可以包含许多 EC2
实例、一个可选数据库以及一些其他 AWS 组件,例如 Elastic Load Balancer、Auto-Scaling Group、Security
Group。然后,只要您想更新在 AWS 中运行的软件,Elastic Beanstalk 就会为您管理这些项目。Elastic Beanstalk
不会在它为您创建的这些资源之上增加任何成本。如果您有 10 小时的 EC2 使用时间,那么您只需支付 10 小时的计算时间。

运行 WordPress

对于运行 Wordpress,它是你最舒服的。您可以直接在单个 EC2 实例上运行它,也可以使用AWS
Marketplace中的解决方案,也可以使用 Elastic
Beanstalk。

选什么?

如果您想减少系统操作并只关注网站,那么 Elastic Beanstalk 将是最佳选择。Elastic Beanstalk 支持 PHP
堆栈(以及其他堆栈)。您可以将您的站点保持在版本控制中,并在您进行更改时轻松部署到您的环境中。它还将设置一个 Autoscaling
组,如果流量增长,该组可以生成更多 EC2 实例。

amazon-web-services – Multi Docker Elastic Beanstalk:上传.ebextensions

amazon-web-services – Multi Docker Elastic Beanstalk:上传.ebextensions

是否可以将.ebextensions部署到Multi-Docker Elastic Beanstalk?

我使用Dockerrun.aws.json文件上传我的应用程序,一切正常.我想设置日志以流式传输到Cloudwatch.我应该使用.ebextensions做到这一点.但是,如果我只在网络浏览器(AWS控制台)上传Dockerrun.aws.json(不是.zip或.war),我不知道如何附加.ebextensions.

>我如何将.ebxetensions部署到Multi Docker Elastic Beanstalk?
> …或者是否可以设置哪些日志应该流式传输到Cloudwatch日志?

最佳答案
您应该创建一个zip存档,其中包含Dockerrun.aws.json和.ebextensions目录以及您需要的任何配置文件.

Elastic Beanstalk将从存档中找到Dockerrun.aws.json文件.

这在AWS’Multicontainer Docker tutorial中有所涉及.

amazon-web-services – 从私有Docker存储库将映像部署到AWS Elastic Beanstalk

amazon-web-services – 从私有Docker存储库将映像部署到AWS Elastic Beanstalk

我正在尝试从其私有仓库中提取Docker镜像,并在Zip包装的Dockerrun.aws.json的帮助下将其部署在AWS Elastic Beanstalk上.它的内容是

{
    "AWSEBDockerrunVersion": "1","Authentication": {
        "Bucket": "my-bucket","Key": "docker/.dockercfg"
    },"Image": {
        "Name": "namespace/repo:tag","Update": "true"
    },"Ports": [
        {
            "ContainerPort": "8080"
        }
    ]
}

其中“my-bucket”是我在s3上的桶名,它使用与我的BS环境相同的位置.在密钥中设置的配置是结果

$docker login

在docker2boot应用程序的终端中调用.然后将其复制到“my-bucket”中的文件夹“docker”.图像确实存在.
之后我将带有dockerrun文件的.zip上传到EB,然后部署我得到

Activity execution Failed,because: WARNING: Invalid auth configuration file

我错过了什么?
提前致谢

最佳答案
Docker已将配置文件路径从〜/ .dockercfg更新为〜/ .docker / config.json.他们还利用这个机会对配置文件格式进行了重大更改.

但是,AWS仍然需要前一种格式,即〜/ .dockercfg(see the file name in their documentation)中使用的格式:

{
  "https://index.docker.io/v1/": {
    "auth": "__auth__","email": "__email__"
  }
}

这与〜/ .docker / config.json中使用的新格式不兼容:

{
    "auths": {
        "https://index.docker.io/v1/": {
            "auth": "__auth__","email": "__email__"
        }
    }
}

它们非常相似.因此,如果您的Docker版本生成新格式,只需删除auths行及其相应的大括号,您就可以了.

AWS - Elastic Beanstalk - eb 部署在 Linux 上的 .NET 核心上失败

AWS - Elastic Beanstalk - eb 部署在 Linux 上的 .NET 核心上失败

如何解决AWS - Elastic Beanstalk - eb 部署在 Linux 上的 .NET 核心上失败?

我正在尝试通过 CLI 在 64 位 Amazon Linux 2/2.1.2 环境上运行的 .NET Core 上将我的应用程序部署到弹性 beantalk。但出现错误。

顺便说一下,这是一个控制台应用程序。

$eb deploy my-application-env
Creating application version archive "app-5c2f-210223_114601".
Uploading myapplication/app-5c2f-210223_114601.zip to S3. This may take a while.
Upload Complete.
2021-02-23 08:46:06    INFO    Environment update is starting.      
2021-02-23 08:46:45    INFO    deploying new version to instance(s).
2021-02-23 08:46:48    ERROR   Instance deployment: Your source bundle has a single .NET Core application. You must include a file with a ''.runtimeconfig.json'' suffix. The deployment Failed.
2021-02-23 08:46:48    ERROR   Instance deployment Failed. For details,see ''eb-engine.log''.
2021-02-23 08:46:51    ERROR   [Instance: i-0791a0f52214a79a0] Command Failed on instance. Return code: 1 Output: Engine execution has encountered an error..
2021-02-23 08:46:51    INFO    Command execution completed on all instances. Summary: [Successful: 0,Failed: 1].
2021-02-23 08:46:51    ERROR   Unsuccessful command execution on instance id(s) ''i-0791a0f52214a79a0''. Aborting the operation.
2021-02-23 08:46:51    ERROR   Failed to deploy application.        
                                                                      
ERROR: ServiceError - Failed to deploy application.

如您所见,错误是:

实例部署:您的源包具有单个 .NET Core 应用程序。您必须包含一个带有“.runtimeconfig.json”后缀的文件。部署失败。

但我确定 myapplication.runtimeconfig.json 放在构建目录中。

这是我的 myapplication.csproj

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
  </PropertyGroup>
  

  <ItemGroup>
    <packagereference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

  <ItemGroup>
    <None Include="appsettings.Production.json" copyToPublishDirectory="Always" />
    <None Include="appsettings.Test.json" copyToPublishDirectory="Always" />
    <None Include="appsettings.Development.json" copyToPublishDirectory="Always" />
    <None Include="runtimeconfig.json" copyToPublishDirectory="Always" />
 </ItemGroup>

 <ItemGroup>
  <None Include="web.config" copyToPublishDirectory="Always" />
</ItemGroup>

</Project>

我在网上搜索了一些关于可以部署的 Visual Studio 工具的解决方案,但我需要通过 CLI 来完成这项工作,因为我正在尝试实施 CI/CD。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

我们今天的关于如何在 Linux 中每行的字符后自动引用内容? Elastic Beanstalk 环境变量相关的分享就到这里,谢谢您的阅读,如果想了解更多关于Amazon EC2 和 AWS Elastic Beanstalk 之间的区别、amazon-web-services – Multi Docker Elastic Beanstalk:上传.ebextensions、amazon-web-services – 从私有Docker存储库将映像部署到AWS Elastic Beanstalk、AWS - Elastic Beanstalk - eb 部署在 Linux 上的 .NET 核心上失败的相关信息,可以在本站进行搜索。

本文标签: