機能フラグの使用
14307 ワード
皆さんこんにちは!
今週、私はAWS appconfigについて学びました.私はTrunk Based Developmentを使用して以来、私のアプリケーションの機能フラグが必要です.動きましょう.
あなたのAWS AppConfigを設定することができます.ガイドから6ステップに従う必要があります. AWS appconfigアプリケーションを作成する 環境 を作成するは、構成プロフィールと特徴旗 をつくります展開戦略を作成する
設定を展開する
の設定を取得する
この記事では、ステップ6とコードに焦点を合わせます.
機能フラグを取得する前に、適切なアクセスで
機能フラグ
例の出力
feature-flag
私は同様のライブラリ/プロジェクトを作成するつもりです.ネットそれで、調整されてください!
からの源
今週、私はAWS appconfigについて学びました.私はTrunk Based Developmentを使用して以来、私のアプリケーションの機能フラグが必要です.動きましょう.
AWSの設定
あなたのAWS AppConfigを設定することができます.ガイドから6ステップに従う必要があります.
の設定を取得する
この記事では、ステップ6とコードに焦点を合わせます.
オフィシャルガイド AWS appconfigから機能フラグを取得する
機能フラグを取得する前に、適切なアクセスで
AWS_ACCESS_KEY_ID
とAWS_SECRET_ACCESS_KEY
が必要になります.私は、機能フラグを呼び出して、
を使用する「小さな図書館」をつくりました.import {
AppConfigDataClient,
BadRequestException,
GetLatestConfigurationCommand,
StartConfigurationSessionCommand,
} from "@aws-sdk/client-appconfigdata";
const client = new AppConfigDataClient({});
let existingToken: string;
const getToken = async (): Promise<string> => {
const getSession = new StartConfigurationSessionCommand({
ApplicationIdentifier: process.env.APP_CONFIG_APP_IDENTIFIER,
ConfigurationProfileIdentifier:
process.env.APP_CONFIG_CONFIG_PROFILE_IDENTIFIER,
EnvironmentIdentifier: process.env.APP_CONFIG_ENVIRONMENT_IDENTIFIER,
});
const sessionToken = await client.send(getSession);
return sessionToken.InitialConfigurationToken || "";
};
const featureFlag = async (flag: string): Promise<boolean> => {
if (!existingToken) {
existingToken = await getToken();
console.log(existingToken);
}
try {
const command = new GetLatestConfigurationCommand({
ConfigurationToken: existingToken,
});
const response = await client.send(command);
let flags: any = {};
if (response.Configuration) {
let str = "";
for (let i = 0; i < response.Configuration.length; i++) {
str += String.fromCharCode(response.Configuration[i]);
}
const allFlag = JSON.parse(str);
console.log(allFlag);
flags = Object.assign({}, allFlag);
}
return Boolean(flags[flag]?.enabled);
} catch (err) {
if (err instanceof BadRequestException) {
existingToken = await getToken();
console.log(existingToken);
// recall
return featureFlag(flag);
} else {
throw err;
}
}
};
export default featureFlag;
コードの説明:私の機能フラグを取得するために、私はGetLatestConfiguration
APIを呼び出す必要があります.APIを呼び出す前に、設定セッショントークンを取得する必要があります(getToken
を使用します).あなたが私のコードをチェックしたいならば.私は、Githubと図書館でAWS SDK for Javascriptにコードを発表しました.NPM ベルビアントルオ
AWS appconfigを使用して探検機能フラグ
機能フラグ
AWS appconfigを使用して探検機能フラグ
環境変数
AWS_REGION="ap-southeast-1"
AWS_ACCESS_KEY_ID=""
AWS_SECRET_ACCESS_KEY=""
APP_CONFIG_APP_IDENTIFIER=""
APP_CONFIG_CONFIG_PROFILE_IDENTIFIER=""
APP_CONFIG_ENVIRONMENT_IDENTIFIER=""
どうやって?
- Setup Environment
- Modify
demo/index.ts
with your flag.
- Run
npm install
or yarn
- Run
yarn dev
or npm run dev
許可
demo/index.ts
with your flag.npm install
or yarn
yarn dev
or npm run dev
MIT
MIT License
Copyright (c) 2022 Bervianto Leo Pratama
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED
…
Note: Please don't use this for production. This library is still in heavy development and experimental. I want to improve this library before becoming production-ready.
どのように私のライブラリを呼び出すには?
- Promise then/catch
import featureFlag from '@berviantoleo/feature-flag';
featureFlag('try_feature_flag').then((result) => {
console.log(result);
});
あなたもasync
/await
アプローチを使用することができます.
Welcome to contribute to my small library/project. :) If you have any inputs, feel free to add them here too.
次は何ですか。
私は同様のライブラリ/プロジェクトを作成するつもりです.ネットそれで、調整されてください!
ありがとう
からの源
Reference
この問題について(機能フラグの使用), 我々は、より多くの情報をここで見つけました https://dev.to/aws-builders/exploring-feature-flag-use-aws-appconfig-9f9テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol