在项目中,我们使用一些AWS服务,例如AWS Lambda,EC2,AWS API Gateway,ElastiCache等。此外,我们还有CloudFormation模板,该模板描述了整个基础架构。随着项目的开发,我们开始使用一些新的AWS服务或更改一些已使用的服务的配置。此外,我们还应该使CloudFormation模板保持最新。
在这里,我们面临一个问题,我们需要确保我们的CloudFormation模板有效,正确,并且在需要时可以使用它来创建基础架构。在这种情况下,我们需要对模板进行连续测试。哪种方法更合适?
我们是否应该在持续集成过程中从CloudFormation模板配置自动创建堆栈,并跟踪存储库中的模板更改?还是有更好的解决方案?
continuous-integration amazon-web-services continuous-testing aws-cloudformation infrastructure-as-code
我正在使用 AWS 和 Terraform 来启动基础设施,但特别是我在使用混合实例策略启动 ASG 时遇到了问题。我正在尝试启动一个 ASG,其中一个实例始终是按需提供的,其余位置(所有类型都相同),从表面上看,这看起来很容易,但我已经尝试了一段时间并不断遇到各种错误. 这是我目前正在使用的:
resource "aws_launch_template" "lt" {
name_prefix = "danny_test-"
vpc_security_group_ids = [
"${module.sec_groups.security_group_id_common}",
"${module.sec_groups.security_group_id_ssh}",
"${module.sec_groups.security_group_id_web}"
]
image_id = "${module.core_ami.core_ami_id}"
instance_type = "t2.small"
key_name = "${var.ssh_privkey_name}"
user_data = "${base64encode(data.template_file.common_user_data.rendered)}"
iam_instance_profile {
name = "${module.infradev_remote_state.iam_profile_updater_id}"
}
lifecycle {
create_before_destroy = true
}
}
resource "aws_autoscaling_group" "asg" {
name = "danny_test"
vpc_zone_identifier = ["${split(",", module.environment.private_subnet_ids)}"]
#launch_configuration = "${aws_launch_configuration.lc.name}"
min_size = "0"
max_size = "1"
desired_capacity = "1"
health_check_grace_period = "600"
health_check_type = "EC2"
launch_template {
id …Run Code Online (Sandbox Code Playgroud) amazon-web-services autoscaling terraform terraform-provider-aws infrastructure-as-code
我使用 Terraform 在 GCP 中创建了一个服务帐户和一个自定义角色。如何将此自定义角色附加到服务帐户?我可以使用 GCP Console 来做到这一点,但这不是这里的需要,因为我必须使用 Terraform 来做到这一点。请在下面找到我用于创建服务帐户和自定义规则的代码片段。
resource "google_service_account" "mservice_infra_service_account" {
account_id = "mserviceinfra-service-account"
display_name = "Infrastructure Service Account"
}
resource "google_project_iam_custom_role" "mservice_infra_admin" {
role_id = "mservice_infra_admin"
title = "mservice_infra_admin"
description = "Infrastructure Administrator Custom Role"
permissions = ["compute.disks.create", "compute.firewalls.create", "compute.firewalls.delete", "compute.firewalls.get", "compute.instanceGroupManagers.get", "compute.instances.create", "compute.instances.delete", "compute.instances.get", "compute.instances.setMetadata", "compute.instances.setServiceAccount", "compute.instances.setTags", "compute.machineTypes.get", "compute.networks.create", "compute.networks.delete", "compute.networks.get", "compute.networks.updatePolicy", "compute.subnetworks.create", "compute.subnetworks.delete", "compute.subnetworks.get", "compute.subnetworks.setPrivateIpGoogleAccess", "compute.subnetworks.update", "compute.subnetworks.use", "compute.subnetworks.useExternalIp", "compute.zones.get", "container.clusters.create", "container.clusters.delete", "container.clusters.get", "container.clusters.update", "container.operations.get"]
}
Run Code Online (Sandbox Code Playgroud)
如果有人能找到基于 Terraform 的解决方案来解决此问题,将不胜感激。谢谢
如何将现有的,配置的和经过测试的AWS CloudWatch警报导出到Cloudformation模板?
我知道CloudFormer工具,但它支持数量有限的AWS服务(Amazon VPC,DynamoDB等),并且不支持我们使用的某些服务。我可以使用哪些工具和方法来生成Cloudformation模板?
amazon-web-services aws-cloudformation amazon-cloudwatch infrastructure-as-code
本着基础设施即代码的精神,我使用有用的aws_cognito_user_pool资源通过 Terraform 配置了一个 AWS Cognito 用户池。
但是,我似乎无法在MFA 和验证部分下找到帐户恢复首选项的参数/配置映射。
没有规范,这似乎是我的默认选择:
(不推荐)电话(如果可用),否则通过电子邮件发送,并允许用户通过电话重置密码(如果他们也将其用于 MFA)。
我想将其设置为Email only,如下图红色矩形所示:
有谁知道我需要使用什么 Terraform 参数来实现这一目标?aws_cognito_user_pool资源中记录的选项似乎都没有映射到此。
amazon-web-services amazon-cognito terraform terraform-provider-aws infrastructure-as-code
我觉得我需要在这里提供很多背景信息才能理解问题的全部范围,所以如果这有点长或最终提供了太多信息,请提前道歉,我只是想避免很多人跟随尽我所能提出问题和澄清请求。
我有一个技术交接的项目。它曾经在不同所有者的不同 AWS 账户下进行生产。我正在尝试在我控制的 AWS 账户中重新启动它,但其中一个软件包给我带来了一些问题。
它使用 Serverless 来配置几个 S3 存储桶及其访问策略、几个 IAM 角色和一堆 ApiGateway 方法。该包依赖嵌套堆栈来绕过 200 个资源限制,如此处所述。
最后,CircleCI 连接的 IAM 用户已AdministratorAccess附加策略。
在构建的这一步中,我不断收到 CircleCI 的失败消息
node_modules/.bin/serverless deploy --verbose --stage develop --region us-east-1 --package ./.serverless
Run Code Online (Sandbox Code Playgroud)
故障的确切性质似乎不一致,即它并不总是在同一位置发生故障。在某些时候,资源无法创建,整个过程会回滚。以下是日志中运行失败的几个示例,其中包含 +/- 5 行,后面是 Serverless 报告的实际错误
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::Method - ApiGatewayMethod001VarOptions
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::Method - ApiGatewayMethod002VarOptions
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::Method - ApiGatewayMethod003VarOptions
CloudFormation - CREATE_COMPLETE - AWS::ApiGateway::Method - ApiGatewayMethod004VarOptions
CloudFormation - …Run Code Online (Sandbox Code Playgroud) amazon-web-services aws-cloudformation circleci serverless infrastructure-as-code
我正在尝试通过二头肌文件更新应用程序服务的应用程序设置。
在我的二头肌模板中执行此操作时:
var currentAppSettings = list('Microsoft.Web/sites/appServiceName/config/appsettings', '2018-11-01')
var newAppSettings = {
test: 'testValue'
}
var mergedAppSettings = union(currentAppSettings, newAppSettings)
resource appServiceConfig 'Microsoft.Web/sites/config@2018-11-01' = {
name: 'appServiceName/appSettings'
properties: mergedAppSettings
}
Run Code Online (Sandbox Code Playgroud)
...部署二头肌文件时出现循环依赖错误:
"Deployment template validation failed: 'Circular dependency detected on resource: '/subscriptions/293d7347-b26f-4413-9986-d61717aaff26/resourceGroups/WSAPlayground/providers/Microsoft.Web/sites/playground-fitxp-backend-euw-wa/config/appSettings'. Please see https://aka.ms/arm-template/#resources for usage details.'."
Run Code Online (Sandbox Code Playgroud)
有没有办法在不出现依赖错误的情况下执行此操作?
circular-dependency azure azure-rm-template infrastructure-as-code azure-bicep
我的二头肌下方正在返回 keyvault。我喜欢访问父二头肌中 keyvault 中的属性/功能。但不知道将其用作模块时如何实现。
resource kv 'Microsoft.KeyVault/vaults@2019-09-01' existing = {
name: kvName
scope: resourceGroup(subscriptionId, kvResourceGroup )
}
output kv1 object=kv
Run Code Online (Sandbox Code Playgroud)
module kv './keyvault.bicep' = {
name: 'get Secrets'
params: {
subscriptionId: subscriptionId
kvResourceGroup: resourceGroupName
kvName: keyVaultName
}
}
var pwd= kv.outputs.kv1.getSecret('key')
Run Code Online (Sandbox Code Playgroud)
请建议如何进行?
azure azure-resource-manager azure-devops infrastructure-as-code azure-bicep
我在这里遇到了一个难题,即要问这个问题的 SE 站点,所以如果它应该在其他地方,请帮助我。
我一直在研究基础设施即代码解决方案。
不太喜欢 Terraform。智能感知的缺乏使得可观察性比程序员习惯的更难。
我一直在考虑 ARM 模板。我喜欢模板在我们在门户中创建资源时可用,但它似乎不太可读并且之后更难维护。
然后我发现了 Pulumi 并喜欢他们的想法,与 Terraform 相比。在我看来,他们的方法也像上述选项一样是声明性的,但我们可以使用体面的编程语言来完成工作。
该for循环是必须的。
酷,我喜欢!但是既然我们喜欢使用 C#(或其他替代方案),那么我们为什么不使用 SDK 来管理我们的基础设施即代码呢?
Pulumi 将自己与云 SKD 进行了比较,将他们的解决方案定位为更安全,并主张如果我们自己只使用云 SDK,那么我们的解决方案就不会那么可靠。
我想知道这在多大程度上是真的?
去年,我编写了一些使用 Azure 服务总线队列/主题的库。有几个集成测试可以并行运行,我需要通过创建新的队列/主题来隔离它们,并习惯于Microsoft.Azure.ServiceBus.Management.ManagementClient这样做。
看起来我真的根本不需要学习任何东西。
现在进入正题。不放弃我认为很棒的 Pulumi 的创新:
与使用 Azure SDK 相比,Pulumi 真的会增加这么多好处吗?
你有什么体验?
我们正在使用 Apache Kafka,并且有很多手动创建的主题(使用自定义主题配置)。我们希望像代码一样管理我们的主题,就像我们的基础设施/配置的其余部分一样。
我们如何以编程方式和声明方式管理我们的主题?什么是理智的方法?
azure ×3
terraform ×3
azure-bicep ×2
apache-kafka ×1
autoscaling ×1
azure-devops ×1
azure-sdk ×1
circleci ×1
devops ×1
pulumi ×1
serverless ×1