У меня есть параметры в SSM, которые сохраняются в виде /dbUrl/prod
, /dbUrl/dev
и так далее, где они в формате /dbUrl/${stage}
.
Я хочу получить этот параметр и установить его как переменную среды для определения задачи, чтобы у меня было другое значение для переменной в зависимости от другой среды. Прямо сейчас застрял на том, как импортировать существующий параметр
Также возможно ли получить доступ к значению DB_URL
как process.env.DB_URL
внутри моего кода node.js после того, как мне удастся установить здесь переменную среды
Документы, за которыми я следил
ПриложениеLoadBalancedFargateService
ApplicationLoadBalancedTaskImageOptions#secrets
const socketService = new ecs_patterns.ApplicationLoadBalancedFargateService(this, `socketService${props.stage}`, {
cluster: cluster,
loadBalancer: loadBalancer ,
memoryLimitMiB: 2048,
cpu: 1024,
desiredCount: 2,
listenerPort: 1111,
taskImageOptions: {
image: ContainerImage.fromAsset("../socket"),
environment: {
},
secrets: {
DB_URL: //how to import existing /dbUrl/${props.stage} from SSM
}
},
});
Вы ссылаетесь на документацию по secrets
опоре ApplicationLoadBalancedTaskImageOptions
. В документах указано, что тип реквизита secrets
— { [string]: Secret }
.
Вы можете перейти по ссылке на документацию Секрет, чтобы узнать, как ее можно получить. Вы увидите, что у него есть метод fromSsmParameter
, который вам нужен. Этот метод принимает IParameter
.
Чтобы импортировать существующий строковый параметр, вы можете использовать один из методов from*
, определенных в классе StringParameter
. Например, вы можете использовать fromSecureStringParameterAttributes
я сделал
DB_URL: Secret.fromSsmParameter(StringParameter.fromStringParameterName(this, 'db',
/dbUrl/${props.stage}))
и вроде работает. Я также смог получить доступ к этому значению какprocess.env.DB_URL
в моем коде node.js.