Skip to content

Commit 12d8918

Browse files
committed
[Add] - implement AWS ACM and Scheduler functions with error handling
1 parent e14b445 commit 12d8918

File tree

2 files changed

+148
-9
lines changed

2 files changed

+148
-9
lines changed

services/acm.sh

Lines changed: 103 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,107 @@
22
# AWS acm
33

44
aws_acm_list() {
5-
for item in $(aws acm list-certificates --query "*[].CertificateArn" --output text); do
6-
aws_run_commandline \
7-
"
8-
aws acm describe-certificate \
9-
--certificate-arn $item \
10-
--query \"*[].{CertificateArn:CertificateArn,DomainName:DomainName,SubjectAlternativeNames:SubjectAlternativeNames,Type:Type}\"
11-
"
12-
done
5+
for item in $(aws acm list-certificates --query "*[].CertificateArn" --output text); do
6+
aws_run_commandline \
7+
"
8+
aws acm describe-certificate \
9+
--certificate-arn $item \
10+
--query \"*[].{CertificateArn:CertificateArn,DomainName:DomainName,SubjectAlternativeNames:SubjectAlternativeNames,Type:Type}\"
11+
"
12+
done
13+
}
14+
15+
aws_acm_import() {
16+
local certificate_arn="$1"
17+
local certificate_file="$2"
18+
local private_key_file="$3"
19+
local certificate_chain_file="$4"
20+
21+
if [[ -z "$certificate_arn" || -z "$certificate_file" || -z "$private_key_file" || -z "$certificate_chain_file" ]]; then
22+
echo "Error: Missing required arguments."
23+
echo "Usage: aws_acm_import <certificate_arn> <certificate_file> <private_key_file> <certificate_chain_file>"
24+
return 1
25+
fi
26+
27+
aws_run_commandline \
28+
"aws acm import-certificate \
29+
--certificate-arn $certificate_arn \
30+
--certificate fileb://$certificate_file \
31+
--private-key fileb://$private_key_file \
32+
--certificate-chain fileb://$certificate_chain_file"
33+
}
34+
35+
aws_acm_delete() {
36+
local certificate_arn="$1"
37+
38+
if [[ -z "$certificate_arn" ]]; then
39+
echo "Error: Missing required argument."
40+
echo "Usage: aws_acm_delete <certificate_arn>"
41+
return 1
42+
fi
43+
44+
aws_run_commandline "aws acm delete-certificate --certificate-arn $certificate_arn"
45+
}
46+
47+
aws_acm_request() {
48+
local domain_name="$1"
49+
local validation_method="$2"
50+
local subject_alternative_names="$3"
51+
52+
if [[ -z "$domain_name" || -z "$validation_method" ]]; then
53+
echo "Error: Missing required arguments."
54+
echo "Usage: aws_acm_request <domain_name> <validation_method> [subject_alternative_names]"
55+
return 1
56+
fi
57+
58+
local command="aws acm request-certificate --domain-name $domain_name --validation-method $validation_method"
59+
60+
if [[ -n "$subject_alternative_names" ]]; then
61+
command="$command --subject-alternative-names $subject_alternative_names"
62+
fi
63+
64+
aws_run_commandline "$command"
65+
}
66+
67+
aws_acm_validate() {
68+
local certificate_arn="$1"
69+
local validation_record="$2"
70+
71+
if [[ -z "$certificate_arn" || -z "$validation_record" ]]; then
72+
echo "Error: Missing required arguments."
73+
echo "Usage: aws_acm_validate <certificate_arn> <validation_record>"
74+
return 1
75+
fi
76+
77+
aws_run_commandline \
78+
"aws acm validate-certificate \
79+
--certificate-arn $certificate_arn \
80+
--validation-record $validation_record"
81+
}
82+
83+
aws_acm_get_validation_records() {
84+
local certificate_arn="$1"
85+
86+
if [[ -z "$certificate_arn" ]]; then
87+
echo "Error: Missing required argument."
88+
echo "Usage: aws_acm_get_validation_records <certificate_arn>"
89+
return 1
90+
fi
91+
92+
aws_run_commandline \
93+
"aws acm describe-certificate \
94+
--certificate-arn $certificate_arn \
95+
--query 'Certificate.DomainValidationOptions[].ResourceRecord'"
96+
}
97+
98+
aws_acm_get_with_hint() {
99+
local certificate_list=$(aws acm list-certificates --query "*[].{Arn:CertificateArn,Domain:DomainName}" --output text | awk '{print $1 " (" $2 ")"}')
100+
local selected_certificate=$(peco_create_menu 'echo ${certificate_list}' '--prompt "Select ACM certificate >"' | awk '{print $1}')
101+
102+
if [[ -n "$selected_certificate" ]]; then
103+
aws_run_commandline \
104+
"aws acm describe-certificate \
105+
--certificate-arn $selected_certificate \
106+
--query \"*[].{CertificateArn:CertificateArn,DomainName:DomainName,SubjectAlternativeNames:SubjectAlternativeNames,Type:Type}\""
107+
fi
13108
}

services/ecs.sh

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,4 +99,48 @@ aws_ecs_execute_container() {
9999
container_name=$(aws ecs describe-task-definition --task-definition $aws_ecs_task_definition_arn --query 'taskDefinition.containerDefinitions[*].name' --output text | sed 's/\t/\n/g' | peco)
100100
echo Container name ${container_name:?"container_name is not set or empty"}
101101
aws ecs execute-command --cluster $aws_ecs_cluster_arn --container $container_name --interactive --command "/bin/sh" --task $aws_ecs_task_arn
102-
}
102+
}
103+
104+
aws_ecs_list_task_definitions() {
105+
aws_run_commandline "\
106+
aws ecs list-task-definitions \
107+
--query 'taskDefinitionArns[]' \
108+
--output text"
109+
}
110+
111+
aws_ecs_describe_task_definition() {
112+
local task_definition="$1"
113+
114+
if [[ -z "$task_definition" ]]; then
115+
echo "Error: Missing required argument."
116+
echo "Usage: aws_ecs_describe_task_definition <task_definition>"
117+
return 1
118+
fi
119+
120+
aws_run_commandline "\
121+
aws ecs describe-task-definition \
122+
--task-definition $task_definition"
123+
}
124+
125+
aws_ecs_deregister_task_definition() {
126+
local task_definition="$1"
127+
128+
if [[ -z "$task_definition" ]]; then
129+
echo "Error: Missing required argument."
130+
echo "Usage: aws_ecs_deregister_task_definition <task_definition>"
131+
return 1
132+
fi
133+
134+
aws_run_commandline "\
135+
aws ecs deregister-task-definition \
136+
--task-definition $task_definition"
137+
}
138+
139+
aws_ecs_get_task_definition_with_hint() {
140+
local task_definition_list=$(aws ecs list-task-definitions --query 'taskDefinitionArns[]' --output text)
141+
local selected_task_definition=$(peco_create_menu 'echo ${task_definition_list}' '--prompt "Select task definition >"')
142+
143+
if [[ -n "$selected_task_definition" ]]; then
144+
aws_ecs_describe_task_definition "$selected_task_definition"
145+
fi
146+
}

0 commit comments

Comments
 (0)