1+ provider "alicloud" {
2+ region = var. region
3+ }
4+
5+ resource "random_string" "suffix" {
6+ length = 8
7+ lower = true
8+ upper = false
9+ numeric = false
10+ special = false
11+ }
12+
13+ locals {
14+ common_name = random_string. suffix . id
15+ }
16+
17+ resource "alicloud_ram_user" "ram_user" {
18+ name = " create-by-solution-${ local . common_name } "
19+ }
20+
21+ resource "alicloud_ram_access_key" "ramak" {
22+ user_name = alicloud_ram_user. ram_user . name
23+ }
24+
25+ resource "alicloud_ram_policy" "policy" {
26+ policy_name = " ram-policy-${ local . common_name } "
27+ policy_document = << EOF
28+ {
29+ "Version": "1",
30+ "Statement": [
31+ {
32+ "Effect": "Allow",
33+ "Action": [
34+ "amqp:*",
35+ "amqp-open:*"
36+ ],
37+ "Resource": "*"
38+ }
39+ ]
40+ }
41+ EOF
42+ description = " allow all amqp operations"
43+ }
44+
45+ resource "alicloud_ram_user_policy_attachment" "attach_policy_to_user" {
46+ user_name = alicloud_ram_user. ram_user . name
47+ policy_type = " Custom"
48+ policy_name = alicloud_ram_policy. policy . policy_name
49+ }
50+
51+ resource "alicloud_amqp_instance" "default" {
52+ instance_name = " test-instance-${ local . common_name } "
53+ payment_type = " PayAsYouGo"
54+ serverless_charge_type = " onDemand"
55+ support_eip = true
56+ support_tracing = true
57+ }
58+
59+ resource "alicloud_amqp_static_account" "default" {
60+ instance_id = alicloud_amqp_instance. default . id
61+ access_key = alicloud_ram_access_key. ramak . id
62+ secret_key = alicloud_ram_access_key. ramak . secret
63+ }
64+
65+ resource "alicloud_amqp_virtual_host" "default" {
66+ instance_id = alicloud_amqp_instance. default . id
67+ virtual_host_name = " test-vhost-${ local . common_name } "
68+ }
69+
70+ resource "alicloud_amqp_exchange" "default" {
71+ virtual_host_name = alicloud_amqp_virtual_host. default . virtual_host_name
72+ instance_id = alicloud_amqp_instance. default . id
73+ internal = false
74+ auto_delete_state = false
75+ exchange_name = " test-exchange-${ local . common_name } "
76+ exchange_type = " DIRECT"
77+ }
78+
79+ resource "alicloud_amqp_queue" "default" {
80+ instance_id = alicloud_amqp_instance. default . id
81+ queue_name = " test-queue-${ local . common_name } "
82+ virtual_host_name = alicloud_amqp_virtual_host. default . virtual_host_name
83+ auto_delete_state = false
84+ }
85+
86+ resource "alicloud_amqp_binding" "default" {
87+ binding_key = " binding-key-${ local . common_name } "
88+ binding_type = " QUEUE"
89+ destination_name = alicloud_amqp_queue. default . queue_name
90+ instance_id = alicloud_amqp_instance. default . id
91+ source_exchange = alicloud_amqp_exchange. default . exchange_name
92+ virtual_host_name = alicloud_amqp_virtual_host. default . virtual_host_name
93+ }
0 commit comments