- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们目前有一个从“Java Spring,Web 服务”类型的 Beanstalk 模板创建的 CodeStar 项目。然而,使用 CloudFormation 生成的项目仅包含用于部署我们的 API 的单个环境。
问题:如何正确修改此模板,以便有两个不同的环境同时运行?
就 Beanstalk 而言:我们需要 SingleInstance
输入我们的 dev
实例,我们想要一个 LoadBalanced
输入我们的 prod
实例(使用两个 EC2 实例进行冗余)。
引用的教程提到awscodestar-<project_name>-infrastructure-prod
用作 CloudFormation 集的堆栈名称,但是如果没有创建要部署的实际实例,那么它如何工作?我很困惑。
为什么还没有一个模板文件提供与所描述的类似的两个环境 CodePipeline/Beanstalk 设置?这似乎是一种相当主流的 CI/CD 方法。
这是我们的 template.yml
文件:
AWSTemplateFormatVersion: 2010-09-09
Transform:
- AWS::CodeStar
Conditions:
UseSubnet: !Not [!Equals [!Ref 'SubnetId', subnet-none]]
Parameters:
ProjectId:
Type: String
Description: AWS CodeStar project ID used to name project resources and create roles.
InstanceType:
Type: String
Description: The type of Amazon EC2 Linux instances that will be launched for this project.
KeyPairName:
Type: String
Description: The name of an existing Amazon EC2 key pair in the region where the project is created, which you can use to SSH into the new Amazon EC2 Linux instances.
VpcId:
Type: String
Description: The ID of the Amazon Virtual Private Cloud (VPC) used for the new Amazon EC2 Linux instances.
SubnetId:
Type: String
Description: The name of the VPC subnet used for the new Amazon EC2 Linux instances launched for this project.
SolutionStackName:
Type: String
Description: The software stack used to launch environments and configure instances in AWS Elastic Beanstalk.
EBTrustRole:
Type: String
Description: The service role in IAM for AWS Elastic Beanstalk to be created for this project.
EBInstanceProfile:
Type: String
Description: The IAM role that will be created for the Amazon EC2 Linux instances.
Stage:
Type: String
Description: The name for a project pipeline stage, such as Staging or Prod, for which resources are provisioned and deployed.
Default: ''
Resources:
EBApplication:
Description: The AWS Elastic Beanstalk application, which is a container used to deploy the correct application configuration.
Type: AWS::ElasticBeanstalk::Application
Properties:
ApplicationName: !Sub '${ProjectId}app${Stage}'
Description: The name of the AWS Elastic Beanstalk application to be created for this project.
EBApplicationVersion:
Description: The version of the AWS Elastic Beanstalk application to be created for this project.
Type: AWS::ElasticBeanstalk::ApplicationVersion
Properties:
ApplicationName: !Ref 'EBApplication'
Description: The application version number.
SourceBundle: 'target/ROOT'
EBConfigurationTemplate:
Description: The AWS Elastic Beanstalk configuration template to be created for this project, which defines configuration settings used to deploy different versions of an application.
Type: AWS::ElasticBeanstalk::ConfigurationTemplate
Properties:
ApplicationName: !Ref 'EBApplication'
Description: The name of the sample configuration template.
OptionSettings:
- Namespace: aws:elasticbeanstalk:environment
OptionName: EnvironmentType
Value: SingleInstance
- Namespace: aws:elasticbeanstalk:environment
OptionName: ServiceRole
Value: !Ref 'EBTrustRole'
- Namespace: aws:elasticbeanstalk:healthreporting:system
OptionName: SystemType
Value: enhanced
SolutionStackName: !Ref 'SolutionStackName'
EBEnvironment:
Description: The AWS Elastic Beanstalk deployment group where the application is deployed, which is made up of the Amazon EC2 Linux instances launched for this project.
Type: AWS::ElasticBeanstalk::Environment
Properties:
ApplicationName: !Ref 'EBApplication'
EnvironmentName: !Ref 'EBApplication'
Description: The application to be deployed to the environment.
TemplateName: !Ref 'EBConfigurationTemplate'
VersionLabel: !Ref 'EBApplicationVersion'
OptionSettings:
- Namespace: aws:autoscaling:launchconfiguration
OptionName: IamInstanceProfile
Value: !Ref 'EBInstanceProfile'
- Namespace: aws:autoscaling:launchconfiguration
OptionName: InstanceType
Value: !Ref 'InstanceType'
- Namespace: aws:autoscaling:launchconfiguration
OptionName: EC2KeyName
Value: !Ref 'KeyPairName'
- Namespace: aws:ec2:vpc
OptionName: VPCId
Value: !Ref 'VpcId'
- !If
- UseSubnet
- Namespace: 'aws:ec2:vpc'
OptionName: Subnets
Value: !Ref 'SubnetId'
- !Ref "AWS::NoValue"
最佳答案
您可以创建一个主模板并将生产和开发模板作为嵌套堆栈引用。在这种情况下,您所要做的就是复制 template.yaml 文件两次,将副本重命名为适当的名称,然后将它们上传到 S3 存储桶。然后您的 template.yaml 文件将引用这两个模板。像这样的事情:
AWSTemplateFormatVersion: 2010-09-09
Transform:
- AWS::CodeStar
Description: Master stack which creates all required nested stacks
Resources:
ProdStack:
Type: "AWS::CloudFormation::Stack"
Properties:
TemplateURL: https://your-bucket/templates/production-stack.yml"
Parameters:
InstanceType: t2.micro
EBInstanceProfile: eg
KeyPairName: eg
VpcId: eg
ProjectId: eg
SubnetId: eg
SolutionStackName: eg
EBTrustRole: eg
Tags:
- Key: Environment
Value: Production
DevStack:
Type: "AWS::CloudFormation::Stack"
Properties:
TemplateURL: https://your-bucket/templates/development-stack.yml"
Parameters:
InstanceType: t2.nano
EBInstanceProfile: eg
KeyPairName: eg
VpcId: eg
ProjectId: eg
SubnetId: eg
SolutionStackName: eg
EBTrustRole: eg
Tags:
- Key: Environment
Value: Dev
这将创建两个堆栈并允许您为每个堆栈输入适当的参数。看看这里:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html
您的管道可能会保留在主文件中,以及两个环境所需的任何其他参数,具体取决于您构建项目的方式。
关于amazon-web-services - 从 CodeStar 项目自定义产品部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60104575/
是否有可以创建/附加到 CodeStarWorker-*-CloudFormation 的 IAM 策略来限制 子网 或 HostedZoneId CodeStar工作人员可以使用吗? 这是一个示例
我引用了这个文档:https://docs.aws.amazon.com/codestar/latest/userguide/customize-ec2-multi-endpoints.html#cu
我在 AWS Codestar 中创建了一个 Spring 项目。我想将环境属性传递给我的应用程序(例如 DATA_SOURCE_URL)。我可以在“配置”->“软件”“修改”中的 Elastic B
我正在尝试使用 Codestar 框架元框选项在组字段中使用 Wysiwyg 编辑器添加一个以上项目,但它不起作用。我试图找出解决方案,但我发现当我重命名下面隐藏部分的类时,它会出现隐藏部分,并且它可
您好,我在将 python 部署到 lambda codestar 时遇到以下错误 有人可以帮助我吗? [Container] 2019/07/11 21:15:54 Running command
CodeStar 似乎由两部分组成 一种轻松生成多个相关资源的方法和一个用于管理项目的 CodeCommit 存储库,以及 一种自动部署 CodeCommit 代码以在特定 AWS 服务上运行的机制。
是否可以从代码构建完整的 AWS Codestar 项目? Codestar 在控制台 GUI 中提供了一系列项目模板,我想从模板作为代码开始,这样一切都可以在配置管理下进行。 最佳答案 致各位模组,
AWS CodeStar 允许您启动 CodePipelines 和 CodeCommit 存储库来支持您的项目。如果我想在 CodeStar 中构建一个项目,然后获取生成的包,如何将该包部署到另一个
首先介绍一下背景。我们正在 AWS 中使用 CodeStar 构建一个应用程序来控制一切。它是用 Python 3 编写的 但是,尽管每次尝试,我们都无法让我们在 buildspec.yml 文件中设
谁能告诉我如何为 Angular 应用程序配置 AWS CodeStar 项目? 目前没有针对 Angular 的特定项目模板。但我看到有 Node.js + Lambda 项目模板。 我不知道它是如
我正在探索在 AWS 堆栈上快速部署和启动项目的选项。我遇到了以上两个服务,“LightSail”和“CodeStar”。 我无法从互联网上找到这两种服务的任何比较。因此想更多地了解这两种服务的相互比
我有一个在 IDE 中运行时完美运行的 Spring Boot 项目。我想通过 AWS CodeStar 运行它。不幸的是,CodeStar 创建的默认 Spring 模板使用的是 Spring MV
我一直在尝试使用 Elastic Beanstalk 在 AWS Ruby on Rails 上使用 Codestar。我尝试应用和分配自动扩展完全访问策略但无济于事。有人可以帮助我解决这些错误吗?也
我正在使用 AWS Codestar。它集成了许多 AWS 服务,以便我可以从 git push 到部署。 它使用cloudformation。我有一个依赖于 uuid npm 的 lambda 函数
我想创建一个 Spring Boot 应用程序,但我不确定这两个可用选项的区别以及我应该选择哪一个 最佳答案 EC2只不过是一个普通的实例,您必须在其中安装所需的软件,例如数据库,并且我们必须告诉系统
我正在评估 CodeStar 在 Amazon Lambda 函数上的一些 Python 编程,并且曾经使用过 JetBrain PyCharm用于我的 Python 开发。 AWS CodeStar
每当我将代码推送到 bitbucket 时,我都找不到停止自动触发管道的方法。 最佳答案 我的假设是您希望更好地控制管道何时执行某些操作。 与其通过阻止管道被触发来实现这一点,我建议使用阶段转换或手动
我正在设置 CodePipeline,并创建了一个操作来从 GitHub 获取源代码。 这需要建立一个连接,我做到了,而且在 GitHub 方面看起来也很好。 但是,如果我发布对管道的更改,我会在源阶
我正在使用默认的 NodeJS 和无服务器模板测试 CodeStar。出于某种原因,此模板的运行时环境默认为 nodejs 8.11,构建环境默认为 6.10。 为了同步它们,我试图覆盖构建图像以使其
我正在按照 AWS CodeStar 文档中的无服务器项目教程,使用通过 Python 3.7 Lambda 模板创建的基本项目来探索 CodeStar: https://docs.aws.amazo
我是一名优秀的程序员,十分优秀!