小编ske*_*ryl的帖子

UTF-8 byte []到String

假设我刚刚使用a BufferedInputStream将UTF-8编码的文本文件的字节读入字节数组.我知道我可以使用以下例程将字节转换为字符串,但是这样做是否有更高效/更智能的方法,而不仅仅是迭代字节并转换每个字节?

public String openFileToString(byte[] _bytes)
{
    String file_string = "";

    for(int i = 0; i < _bytes.length; i++)
    {
        file_string += (char)_bytes[i];
    }

    return file_string;    
}
Run Code Online (Sandbox Code Playgroud)

java utf-8

237
推荐指数
3
解决办法
61万
查看次数

使用Amazon Elastic Beanstalk部署.NET Windows服务而不使用Web应用程序

我想创建一个Elastic Beanstalk配置,允许我部署.NET Windows服务但不部署Web应用程序.

我刚刚阅读了这篇博客文章,其中解释了如何使用.ebextensions在Web应用程序旁边部署Windows服务,但是有没有可以在不为Web应用程序部署Web Deploy软件包的情况下运行.ebextensions的方案?

我唯一的选择是创建一个包含.ebextensions目录的空Web应用程序,然后部署Web Deploy包吗?

Elastic Beanstalk常见问题解答提到了部署非Web应用程序的能力(此处),我在AWS开发人员论坛(此处)上发现了类似(未答复)的问题.

更新

由于这个问题缺乏活动,而且我无法在互联网上找到任何其他信息,我只是假设这个问题的答案是"不"(至少目前为止).

我最终创建了一个空的Web应用程序,并使用它通过.ebextensions YAML配置部署我的Windows服务.

作为旁注,我想从亚马逊的文档中突出显示这个页面,我发现这是创建这些特殊配置文件的非常有用的指南.

另一个更新

在实现上述方法之后,我发现Elastic Beanstalk没有.ebextensions为新的Beanstalk实例执行我的脚本.因此,在创建新实例时无法安装Windows服务.我不得不跳过几个环节,最终得出一个可扩展的解决方案.如果您需要最终解决方案的详细信息,请与我们联系.

最终,看起来Elastic Beanstalk似乎不是用于部署可扩展的Windows服务.


基本解决方案

我不习惯发布源代码,因为它不是用于个人项目,但这是我当前部署解决方案的基本结构:

  1. 自定义EC2 AMI包含一个在启动时运行的"bootstrap"程序.该计划执行以下操作:
    1.1. 从(可配置的)"部署"S3存储桶 1.2 下载"zip"存档
    .将下载的zip文件解压缩到临时目录
    1.3.找到/执行"install.bat"脚本(脚本的名称也是可配置的).此脚本安装并启动Windows服务.
  2. 使用bootsrap程序将Elastic Beanstalk"Instance AMI"设置为自定义AMI(请参阅:本文)

要部署新代码:将安装.zip存档(包含Windows服务和install.bat文件)上载到S3存储桶,并终止Elastic Beanstalk应用程序的所有EC2实例.在重新创建实例时,引导程序将下载/安装新更新的代码.

当然,如果我重新开始,我将跳过使用Elastic Beanstalk并使用标准的AWS自动扩展以及类似的部署方案.最重要的是,如果您没有Web应用程序,请不要使用Elastic Beanstalk; 您最好使用标准的AWS自动缩放功能.

新的AWS部署工具

亚马逊最近宣布了一些似乎解决部署问题的新代码部署/管理服务:http://aws.amazon.com/blogs/aws/code-management-and-deployment/

我还没有使用这些新服务(我甚至不确定它们是否已经发布),但它们看起来很有前景.

.net c# amazon-web-services amazon-elastic-beanstalk

56
推荐指数
1
解决办法
8471
查看次数