Skip to content

Commit

Permalink
fallback to ssm.GetParameter if failed to ssm.GetParameters
Browse files Browse the repository at this point in the history
refs #678
To backward compatibility, fallbacking to ssm.GetParameter API.

This will be removed at ecspresso 2.4.
  • Loading branch information
fujiwara committed Mar 29, 2024
1 parent d491fc7 commit e7f0bbe
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion verify.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import (
"github.com/aws/aws-sdk-go-v2/service/secretsmanager"
"github.com/aws/aws-sdk-go-v2/service/ssm"
"github.com/aws/aws-sdk-go-v2/service/sts"
"github.com/aws/smithy-go"
"github.com/fatih/color"
"github.com/kayac/ecspresso/v2/registry"
)
Expand Down Expand Up @@ -121,7 +122,21 @@ func (v *verifier) existsSecretValue(ctx context.Context, from string) error {
WithDecryption: aws.Bool(true),
})
if err != nil {
return fmt.Errorf("failed to get ssm parameter %s: %w", name, err)
var ae smithy.APIError
if errors.As(err, &ae) && ae.ErrorCode() == "AccessDeniedException" {
// fallback to GetParameter (older ecspresso implementation)
// TODO: This fallback will be removed in 2.4
Log("[WARNING] failed to get ssm parameters with GetParameters API, fallback to GetParameter API: %s", err)
_, err := v.ssm.GetParameter(ctx, &ssm.GetParameterInput{
Name: aws.String(name),
WithDecryption: aws.Bool(true),
})
if err != nil {
return fmt.Errorf("failed to get ssm parameter %s: %w", name, err)
}
} else {
return fmt.Errorf("failed to get ssm parameters %s: %w", name, err)
}
}
return nil
}
Expand Down

0 comments on commit e7f0bbe

Please sign in to comment.