AWS - 코드에서 구성 분리
4074 단어 appconfigjavascriptconfigdataaws
AWS 앱 구성
AWS AppConfig에서 구성 데이터 생성
이link는 AWS AppConfig를 사용하여 구성을 생성하고 배포하는 단계를 단계별로 안내합니다.
이 블로그를 따라하려면 - 설정하는 동안 아래 설정을 사용하십시오.
구성 데이터
위 링크를 따라 아래 JSON 구성 데이터를 AppConfig에 배포합니다.
{
"newProductRolloutFlag": true,
"newProductRolloutStates": ["IL","CA"]
}
AppConfig에서 구성 데이터에 액세스하는 방법
두 가지 방법 - AWS SDK 및 Lambda Extension의 API
AWS SDK
2단계 프로세스입니다.
광범위한 세부 사항에 뛰어들지 않고 높은 수준에서...
GetLatestConfiguration API - 후속 호출에서 전달될 NextPollConfigurationToken과 함께 AppConfig의 최신 구성 데이터를 반환합니다.
제 개인적인 선택은 AppConfig Lambda Extension을 사용하는 것입니다. 이것은 성능이 뛰어나고 개발자에게 친숙한 방법입니다.
AppConfig Lambda 확장 프로그램
AWS는 AppConfig용 Lambda 확장 기능을 구축했습니다. 다음은 AWS 콘솔 UI에서 AppConfig Lambda 확장 기능을 Lambda 계층으로 추가하는 단계입니다.
AWS Lambda 서비스로 이동 -> Lambda 계층 추가 -> 계층 선택 -> AWS 계층 -> AWS-AppConfig-Extension -> 표시된 최신 버전을 추가합니다.
샘플 코드
//index.js (NodeJS runtime)
const http = require('http');
const params = process.env.APPCONFIG_PROFILE.split('/')
//Sample APPCONFIG_PROFILE value: "BlogConfig/prod/productRollout"
const AppConfigApplication = params [0]; //BlogConfig
const AppConfigEnvironment = params [1]; //prod
const AppConfigConfiguration = params [2] //productRollout
function getConfiguration(application, environment, configuration) {
return new Promise((resolve, reject) => {
const req = http.get(`http://localhost:2772/applications/${application}/environments/${environment}/configurations/${configuration}`, (res) => {
if (res.statusCode < 200 || res.statusCode >= 300) {
return reject(new Error('statusCode=' + res.statusCode));
}
var body = [];
res.on('data', function(chunk) {
body.push(chunk);
});
res.on('end', function() {
resolve(Buffer.concat(body).toString());
});
});
req.on('error', (e) => {
reject(e.message);
});
req.end();
});
}
exports.handler = async (event) => {
try {
const configData = await getConfiguration(AppConfigApplication, AppConfigEnvironment, AppConfigConfiguration);
const parsedConfigData = JSON.parse(configData);
console.log(parsedConfigData);
if(parsedConfigData.newProductRolloutFlag && parsedConfigData.newProductRolloutStates.includes("IL")) {
console.log("Running newProduct feature");
/*
NEW PRODUCT ROLLOUT IMPLEMENTATION
*/
}
} catch (err) {
console.error(err);
return err;
}
};
위의 예는 소스 코드에서 구성 데이터를 분리하는 사례와 Lambda가 AWS AppConfig에서 구성 데이터에 대한 변경 사항을 즉시 선택하는 방법을 보여줍니다.
Gino Crescoli에서 Pixabay의 이미지
Reference
이 문제에 관하여(AWS - 코드에서 구성 분리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/prabusah_53/aws-decouple-configuration-from-code-2oco텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)