برنامه نویسی

[AWS System Manager] Spring boot نسخه 3 را با Parameter Store ادغام کنید

1. معرفی

AWS Parameter Store سرویسی است که توسط خدمات وب آمازون (AWS) ارائه می شود که به ما کمک می کند پارامترها و اسرار برنامه های خود را ذخیره و مدیریت کنیم. این یک مکان امن و متمرکز برای ذخیره و دسترسی به داده های حساس مانند اعتبار پایگاه داده، کلیدهای API و داده های پیکربندی فراهم می کند.
بنابراین ما می توانیم از این سرویس برای مدیریت چندین فایل ویژگی استقرار برای یک برنامه Spring Boot استفاده کنیم.

2. اجرا

2.1. دسترسی به محیط توسعه را فراهم کنید
برای دسترسی به ویژگی Parameter Store باید کلید دسترسی و کلید مخفی را برای IDE ارائه کنیم (من از Eclipse استفاده خواهم کرد). می توانید به این پست AWS Toolkit برای Eclipse مراجعه کنید و این مراحل را برای نصب AWS Toolkit برای Eclipse IDE دنبال کنید.

جعبه ابزار AWS برای Eclipse

پس از نصب با موفقیت، باید جفت کلید را به AWS Toolkit اضافه کنیم. می توانید روی نماد AWS Toolkit در هدر کلیک کرده و Preferences را انتخاب کنید. اگر قبلاً یک کلید دسترسی در رایانه خود داشته اید، به این صورت نمایش داده می شود.

اعتبار AWS

اگر نمی‌خواهید از این کلید استفاده کنید، می‌توانید با فشار دادن دکمه پلاس در کنار پیکربندی جهانی، کلید دیگری را به صورت دستی اضافه کنید.

2.2. یک پروژه بهار بوت ایجاد کنید
ما می‌توانیم از Spring Starter Project از Spring Tool Suite (می‌توان آن را در Eclipse Marketplace پیدا کرد) یا Spring Initializer برای ایجاد یک پروژه بوت Spring با بوت بهار نسخه 3
سپس، باید مقداری وابستگی اضافه کنیم که باید از آن برای ادغام با Parameter Store استفاده کنیم.

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-aws-parameter-store-config</artifactId>
            <version>2.2.6.RELEASE</version>
        </dependency>
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

به دقت بررسی کنید که دقیقاً این وابستگی ها را اضافه کرده اید. چون برای Spring Boot نسخه 3 باید استفاده کنیم فنر-ابر-استارتر-بوت استرپ برای کار با Parameter Store. اگر از آن استفاده نکنید، مشکلات مربوط به نسخه عدم تطابق ممکن است رخ دهد. و در نهایت، ما باید استفاده کنیم بهار-ابر-وابستگی ها زیرا Parameter Store روی Spring Cloud کار می کند.

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2022.0.1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

2.3. پارامتر را از Parameter Store بخوانید
باید نام برنامه را در فایل application.properties تعریف کنیم. به عنوان مثال است spring.application.name=my-app. به طور پیش‌فرض، اسپرینگ سینتکس را برای کار با پارامتر در Parameter Store با فرمت تعریف کرد:
/config/<name-of-the-spring-application>_<profile>/<parameter-name>
اگر قرارداد پارامتر پیش فرض با نیازهای ما مطابقت نداشته باشد. ما می توانیم یک ایجاد کنیم bootstrap.properties نادیده گرفتن.

aws.paramstore.enabled=true
aws.paramstore.prefix=/demo
aws.paramstore.name=my-app
aws.paramstore.profileSeparator=
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اکنون مقداری پارامتر ایجاد می کنیم و کدی برای آزمایش اضافه می کنیم.
در کنسول AWS از AWS System Manager، می توانید پارامتر را انتخاب کرده و روی دکمه ایجاد پارامتر کلیک کنید.

کنسول فروشگاه پارامتر

من قبلاً برخی از پارامترها را در آنجا دارم، بنابراین دیگر ایجاد نمی کنم. شما می توانید با ورودی نام پارامتر ایجاد کنید.

نام پارامتر

نوع را انتخاب کنید، برای SecureString توصیه کنید.

نوع پارامتر

و در نهایت مقدار این پارامتر را وارد کنید.

مقدار پارامتر

برای هدف آزمایش، @Value حاشیه نویسی برای تعیین مقدار پارامترها استفاده خواهد شد. ما انتظار داریم port متغیر دارای مقدار خواهد بود /demo/my-app/spring.port و message متغیر مربوط به /demo/my-app/spring.message.

@SpringBootApplication
@Slf4j
public class DemoApplication implements CommandLineRunner {

    @Value("${spring.port}")
    private String port;

    @Value("${spring.message}")
    private String message;


    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);

    }

    @Override
    public void run(String... args) throws Exception {

        log.info("Resolved message port: {}", port);
        log.info("Resolved message parameter: {}", message);


    }

}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با شروع برنامه و مشاهده در گزارش کنسول، می‌توانیم مقداری را که در AWS Parameter Store ایجاد کرده‌ایم ببینیم.

مقدار گزارش پارامتر

3. خلاصه

با استفاده از Parameter Store با اپلیکیشن Spring Boot، می‌توانیم ارزش ویژگی‌ها را به راحتی مدیریت کنیم. می تواند شبیه به خواندن مقادیر از کار کند application.properties فایل توسط @Value حاشیه نویسی همچنین به کاهش مشکلات عدم تطابق بین پردازش توسعه در محیط محلی و استقرار پردازش در AWS Cloud کمک کنید.

پیاده سازی همه این نمونه ها را می توان در GitHub من یافت

کد نویسی مبارک 🙂

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا