ここでの目標は、EBSボリュームのスケジュールスナップショットを作成することです。 aws_cloudwatch_event_target
のTerraformのドキュメントを見ると、それは可能ではないようですが、私は何か不足している可能性があります。Terraform経由でCloudWatchイベントルールを「ビルトインターゲット」に添付できますか?
3
A
答えて
4
Cloudwatchイベント組み込みターゲットには、入力パラメータと、例のSNSキューにメッセージを追加するために表示されるARN(aws_cloudwatch_event_rule
)またはキネシスストリームにaws_cloudwatch_event_target
で送信するように見えるだけのようです。
resource "aws_cloudwatch_event_target" "ebs_vol_a" {
target_id = "ebs_vol_a"
rule = "${aws_cloudwatch_event_rule.snap_ebs.name}"
arn = "arn:aws:automation:${var.region}:${var.account_id}:action/EBSCreateSnapshot/EBSCreateSnapshot_ebs_vol_a"
input = "\"arn:aws:ec2:${var.region}:${var.account_id}:volume/vol-${var.ebs_vol_a_id}\""
}
resource "aws_cloudwatch_event_rule" "snap_ebs" {
name = "snap-ebs-volumes"
description = "Snapshot EBS volumes"
schedule_expression = "rate(6 hours)"
}
私はまだこれをテストしていませんが、それはべき作品:
だから我々はちょうどこのような何かを行うことができるはず。明らかに、作成したリソースからEBSボリュームIDを取得したいと思うかもしれませんが、それは問題の範囲を超えています。また、AWSコンソールでルールを作成してから、aws events list-targets-by-rule
の出力を見て、ARNにルール名を追加したように思ったが、必ずしも真であるとは限りません。
3
これまでの回答では、イベントターゲットのIAM権限を除いてすべてを取得できました(コンソールに移動してルールを編集し、「ステップ2」の「AWS権限」セクションでは、役割など)。これをテラフォームで動作させるために、私はちょうどいくつかのリソースを追加しました:
resource "aws_cloudwatch_event_rule" "snapshot_example" {
name = "example-snapshot-volumes"
description = "Snapshot EBS volumes"
schedule_expression = "rate(24 hours)"
}
resource "aws_cloudwatch_event_target" "example_event_target" {
target_id = "example"
rule = "${aws_cloudwatch_event_rule.snapshot_example.name}"
arn = "arn:aws:automation:${var.aws_region}:${var.account_id}:action/EBSCreateSnapshot/EBSCreateSnapshot_example-snapshot-volumes"
input = "${jsonencode("arn:aws:ec2:${var.aws_region}:${var.account_id}:volume/${aws_ebs_volume.example.id}")}"
}
resource "aws_iam_role" "snapshot_permissions" {
name = "example"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": "automation.amazonaws.com"
},
"Effect": "Allow",
"Sid": ""
}
]
}
EOF
}
resource "aws_iam_policy" "snapshot_policy" {
name = "example-snapshot-policy"
description = "grant ebs snapshot permissions to cloudwatch event rule"
policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:Describe*",
"ec2:RebootInstances",
"ec2:StopInstances",
"ec2:TerminateInstances",
"ec2:CreateSnapshot"
],
"Resource": "*"
}
]
}
EOF
}
resource "aws_iam_role_policy_attachment" "snapshot_policy_attach" {
role = "${aws_iam_role.snapshot_permissions.name}"
policy_arn = "${aws_iam_policy.snapshot_policy.arn}"
}
関連する問題
- 1. REST API経由で添付ファイルフィールドをアップロード
- 2. 表示画像フラスコ/ python経由でhtmlのcouchDBから添付
- 3. bugzproxy経由でバグへの添付ファイルを追加する
- 4. swiftmailer経由で添付文書を送信する
- 5. VB.Net経由ですでに開いているメールにファイルを添付する
- 6. 添付ファイルをAPI経由でアップロードするとTrelloの添付ファイルが間違ったContent-Typeになる
- 7. ALMの各ステップの添付ファイルをvbscript経由でアップロードします
- 8. ヘッダー付き$ .ajax経由でjavacriptをロード
- 9. IP経由でtelnetできませんが、localhost経由でアクセスできます
- 10. Excel VBA - CDO.message経由で電子メールを送信 - 添付ファイルを追加できません
- 11. Outlook 2k7統合(P/Invoke経由) - 安全でない添付ファイルをブロックする
- 12. Wordpress:wp.mediaで編集添付ファイルの添付ファイルを開きます
- 13. PHP経由で認証ヘッダーを添付するにはどうすればいいですか?
- 14. Terraform - 条件付きデータソース
- 15. PHP複数のファイルをアップロードし、PHPMailer経由でメールにインラインで添付します。
- 16. UWP EmailManager経由で電子メールの添付ファイルを送信していない
- 17. JPA経由でDerby DBテーブル(FK付き)を書き直す
- 18. .net経由でシリアルポート経由でデータを引き出す
- 19. iPhoneをBluetooth経由でXBoxに接続できますか?
- 20. Eclipse経由でGlassfishに.EARをデプロイできますか?
- 21. JQuery経由でBootstrap DateTimePickerから日付オブジェクトを取得できません
- 22. SSH経由でnetbeansを開きます
- 23. JQuery経由でPHPで作成された要素のイベントを添付します。
- 24. Microsoft Graphでは、TrendingAroundの結果に添付ファイルを添付して電子メールで送信できますか?
- 25. Terraformを使用してAWS CloudWatchアラームをAWS Route53ヘルスチェックにリンクする方法は?
- 26. Mongoose.js経由でMongoDBの日付を更新できない
- 27. 添付ファイル付きのPHPメールをGoDaddyサーバーに送信できますか?
- 28. wp_mail経由でヘッダー付きのメールを送信する
- 29. ネットワーク経由でビデオにアクセスできますか?
とても近いです!私は手動で組み込みのターゲットの役割を選択しなければならなかった – ds011591
@ ds011591あなたは精巧にできますか?このすべてをTerraformで作成できましたか? – mkobit