问题标签 [aws-codestar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
730 浏览

node.js - 无服务器应用程序的结构

我是无服务器应用程序的新手。我按照 aws 教程使用 codestar 和 lambda 构建了一个简单的 nodejs 无服务器应用程序。

然而,想象一下这个节点应用程序做了很多事情。因此,它在 index.js 中有多个函数,一个用于功能 A,一个用于功能 B,等等(例如)。

我是否必须将多个 lambda 表达式(每个功能一个)附加到这个 codestar 项目?

0 投票
1 回答
660 浏览

ruby-on-rails - 无法在 AWS Cloud9 CodeStar EB 开发 Ruby on Rails 环境中运行 rails 控制台/服务器

我使用 CodeStar 创建了我的第一个环境,并选择了 Ruby on Rails w/ Elastic Beanstalk 选项。我将 AWS Cloud9 用于 IDE。我想在提交之前使用预览选项查看代码更改的影响,并查看了http://docs.aws.amazon.com/cloud9/latest/user-guide/app-preview上的文档.html,但是我似乎无法在开发环境中运行服务器。

从 Cloud9 终端的环境目录中(路径:/home/ec2-user/environment/ env_name),我尝试rails s -b $IP -p $PORT按照以前的非 AWS Cloud9 的记录,rails server甚至rails console只是为了检查。在每种情况下,我都会获得以下帮助详细信息rails new

我错过了什么?

0 投票
2 回答
153 浏览

node.js - 在无服务器节点实例上存储 AWS IoT 凭证的最佳方式?

我现有的本地托管服务器加载其 iot 身份 + 凭据,如下所示:

..而且我不会在任何地方提交私钥和证书。它安全地存在于服务器磁盘上。

我如何安全地将其迁移到在 codestar 上运行的无服务器 cloud9 设置?假设我信任我的 AWS 团队,我可以将其存储在项目文件中吗?

0 投票
1 回答
938 浏览

node.js - 将现有 Nodejs Express 应用程序转换为 aws 无服务器应用程序

我有一个使用 Mongodb 的 Nodejs express 应用程序,我想去无服务器。

我是否必须用 aws Lambda 再次编写我所有的端点表达?如何将我的 mongoose 模式转换为与 Dynamodb 一起使用?

我尝试使用 aws codestar 服务,发现我可以使用 Express.js,但只是作为 Web 服务。我仍然不明白为什么我不能将它与 Web 应用程序一起使用。

我需要一些澄清,请。

提前致谢。

0 投票
1 回答
1011 浏览

python - Buildspec.yml 文件中设置的环境变量在构建时未显示在环境中(AWS Lambda / CodeStar)

首先介绍一点背景。我们正在 AWS 中构建一个应用程序,使用 CodeStar 来控制一切。它是用 Python 3 编写的

但是,尽管每次尝试我们都无法让我们在 buildspec.yml 文件中设置的变量在我们部署代码时显示在环境中。

例如以下本质上是 buildspec.yml 文件。

然后,当我们构建一个打印整个环境变量的函数时,MY_VAR 不会显示在变量中。我们使用的代码本质上是这样的:

据我所知,它目前分配了一个角色,赋予它完全权限。我相信有一个简单的解决方案,但到目前为止我们还没有找到它——尽管花了几个小时尝试让它工作

任何帮助或指示将不胜感激。

注意 - 这似乎非常类似于:

AWS Lambda 未读取环境变量

但我们想在 yaml 文件中设置变量,而不是通过 Lambda 配置区域

0 投票
1 回答
671 浏览

amazon-web-services - 如何将 JSON 数据添加到 HTML AWS lambda 响应正文?

我在建立一个网站时遇到了一些麻烦。它使用 AWS lambda 函数。我正在 AWS CodeStar 上构建和部署。

该站点剥离 URL 参数(例如 /BTC),将其发送到外部 API 端点,该端点返回一些 JSON 数据。我可以使用 显示整个 JSON 响应body: JSON.stringify(response),因此它肯定来自 API。但是,我想在发送回客户端之前将 JSON 值转换为 HTML 标记。然而,当我做类似的事情时var html = '<h1>JSON.stringify(response['DISPLAY']['BTC']['USD']['MARKET'])</h1>';。我收到内部服务器错误 - 格式错误的请求。

我想不通。我对 AWS 的世界还很陌生,所以可能忽略了一些东西,我在文档中四处查看,似乎找不到与此相关的任何内容。

另外,当我JSON.stringify在网页上显示输出时。如果我在浏览器控制台中重新解析它,response['DISPLAY']['BTC']['USD']['MARKET']返回一个值 - 所以我相当确定有效负载数据的语法是正确的。

任何帮助,将不胜感激!如果需要,很高兴提供更多信息。

0 投票
1 回答
534 浏览

amazon-web-services - 如何在 aws codepipeline 中添加批准阶段?

我是 aws 服务的新手。我们有一些从 CodeStar 创建的 ExpressJS Lambda 项目,并且正在使用默认管道

(CodeCommit(source)-> CodeBuild(build&test)-> CloudFormation->(deployment))。

当我们创建项目时,它部署在 Staging 和 Production 上。现在,无论何时我们提交它都会这样做。现在我们的问题是我们需要开发、质量保证和生产环境。目前,我们可以通过 staging & prod 进行管理。但我需要一个从登台到生产的审批阶段。但它会自动部署在两者上。我搜索了很多,访问了很多网站。但是他们只有图表显示 CodeDeploy 被用于部署,在我的例子中,CodeFormation 正在被使用。没有找到一些集成 CodeDeploy 的指南。

我需要帮助来维护它,从代码提交到阶段再到批准再到生产。

谢谢

0 投票
1 回答
351 浏览

amazon-web-services - 在不同账户上部署 AWS CodeStar 项目

AWS CodeStar 允许您启动 CodePipelines 和 CodeCommit 存储库以支持您的项目。如果我想在 CodeStar 中构建一个项目,然后获取生成的包,我如何将该包部署到另一个帐户中?

例如,基本的“Python Web Service Lambda”CodeStar 模板生成了这些文件,

这明显缺乏用于设置部署代码的 CodePipeline 的模板。因此,我只能自己弄清楚如何部署它。

如何将 CodeStar 模板部署到不同的 AWS 账户?

0 投票
2 回答
600 浏览

amazon-web-services - 在 CodeStar 和 CodePipeline 中为 AWS Lambda 服务创建环境的问题

我使用 AWS CodeStar 使用“Express.js Aws Lambda Webservice”CodeStar 模板创建了一个新应用程序。这很棒,因为它使用 AWS CodePipeline 为我设置了一个简单的 CI/CD 管道。默认情况下,管道有 3 个步骤从 git repo 获取源代码,运行构建步骤,然后部署到“开发”环境。

我的问题是我无法设置它,以便我的管道有多个环境:dev、staging 和 prod。

我当前的部署步骤有 2 个操作:GenerateChangeSetExecuteChangeSet。以下是原始开发环境构建步骤中操作的配置,效果很好:

在此处输入图像描述

在此处输入图像描述

我在管道末尾创建了一个新的部署阶段以部署到登台,但老实说,我不确定如何更改配置。我想最终我希望能够进入 AWS 控制台的 AWS Lambda 部分并查看三个独立的 lambda 函数:binance-bot-dev、binance-bot-staging、binance-bot-prod。然后我可以将这些中的每一个设置为 cloudwatch 预定事件或使用他们自己的 api 网关 url 公开。

这是我尝试用于新部署阶段的配置:

在此处输入图像描述

在此处输入图像描述

我真的不确定这个配置是否正确以及我应该改变什么才能以我想要的方式进行部署。

例如,我应该更改“堆栈名称”,还是应该将其保留为“awscodestar-binance-bot-lambda”,或者像我在这里一样为每个环境更改它?

另外,我指向项目中的另一个 template.yml 文件。原始 template.yml 如下所示:

对于 template.staging.yml,我使用完全相同的配置,只是在“资源”下将“Dev:”更改为“Staging:”,并且还更改了 NODE_ENV 环境变量的值。所以,我基本上想知道这是我想要实现的正确配置吗?

假设配置中的所有内容都是正确的,那么我需要解决此错误。如上所述设置所有内容后,我可以运行我的管道,但是当它进入我的暂存构建步骤时,GenerateChage_Staging操作失败并显示以下错误消息:

操作执行失败用户:arn:aws:sts::954459734159:assumed-role/CodeStarWorker-binance-bot-CodePipeline/1524253307698 无权执行:cloudformation:DescribeStacks on resource:arn:aws:cloudformation:us-east-1 :954459734159:stack/awscodestar-binance-bot-lambda-staging/*(服务:AmazonCloudFormation;状态代码:403;错误代码:AccessDenied;请求 ID:dd801664-44d2-11e8-a2de-8fa6c42cbf86)

从这条错误消息看来,我需要为我的“CodeStarWorker-binance-bot-CodePipeline”添加“cloudformation:DescribeStacks”,所以我转到 IAM -> Roles 并单击 CodeStarWorker-binance-bot-CodePipeline 角色. 但是,当我单击“CodeStarWorker-binance-bot-CodePipeline”并深入了解 CloudFormation 的策略信息时看起来该角色已经拥有“DescribeStacks”的权限!

在此处输入图像描述

如果有人能指出我做错了什么或提供任何指导来理解和思考如何使用 AWS CodePipeline 做多个环境,那就太好了。谢谢!

更新:

我将 Deploy_To_Staging 管道阶段中的“堆栈名称”更改回“awscodestar-binance-bot-lambda”。但是,然后我从 GenerateChange_Staging 操作中收到此错误:

操作执行失败无效的模板路径:binance-bot-BuildArtifact::template-export.staging.yml。工件 binance-bot-BuildArtifact 不存在

更新 2: 在我的项目的根目录中,我有 CodeStar 生成的 buildspec.yml 文件。它看起来像这样:

然后我将其添加到 CloudFormation 部分:

然后我将其添加到“构建:-> 命令:”部分:

我将此添加到“文件:”

  • 模板-export.staging.yml
  • 模板-export.prod.yml

但是,我仍然收到“binance-bot-BuildArtifact 不存在”的错误。

这是进行 buildspec.yml 更改后的完整错误:

操作执行失败无效的模板路径:binance-bot-BuildArtifact::template-export.staging.yml。工件 binance-bot-BuildArtifact 不存在

我可以在管道的一个阶段而不是另一个阶段访问“binance-bot-BuildArtifact”,这对我来说似乎很奇怪。难道构建工件仅在构建阶段之后直接可用于一个管道阶段?有人可以帮我访问这个“binance-bot-BuildArtifact”吗?谢谢!

0 投票
0 回答
48 浏览

amazon-web-services - Codestar 管道成功,但我的文件都不在我的 ec2 实例中

我是 AWS 新手,正在使用 codestar 开发 Express 应用程序。

我刚刚花了很多时间弄清楚 codestar 是如何工作的。

在过去的 12 小时里,我在部署的站点上遇到了 502 bad gateway 错误。所以在浏览了这些论坛和 stackoverflow 之后,我发现由于我的“npm start”运行良好,文件可能没有很好地部署。

在将 SSH 设置到 EC2 实例中后,这个假设被证明是正确的。在将我的项目的 Zip 文件手动上传到弹性 beanstalk 后,我让它工作了。

1-管道部署必须正常工作,因为 nodejs-logs 显示我的 package.json 文件中的设置已正确设置

2-但是,我在构建的 ec2 实例中找到的文件可能是原始的 nodejs 文件,并且根本没有被覆盖。

3-它不在自动缩放上,如果这很重要的话

如何配置 codestar/EB/EC2 以便管道可以从 github 正常工作到 E.Beanstalk 实例?是否有已知的问题和解决方案?

谢谢!