'Extract resource-id from ARN
I saw in AWS documentation that ARN formats are:
arn:partition:service:region:account-id:resource-id
arn:partition:service:region:account-id:resource-type/resource-id
arn:partition:service:region:account-id:resource-type:resource-id
I'm trying to fetch the resource-id from the ARN.
The following code works, but ugly...
I'm searching for how to improve it:
func GetResourceNameFromARN(roleARN string) string {
if parsedARN, err := arn.Parse(roleARN); err == nil {
return parsedARN.Resource
}
return ""
}
func extractResourceId(arn string) string {
resource := GetResourceNameFromARN(arn)
switch len(strings.Split(resource, "/")) {
case 1:
switch len(strings.Split(resource, ":")) {
case 2:
return strings.Split(resource, ":")[1]
}
case 2:
return strings.Split(resource, "/")[1]
}
return resource
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
