Как подключиться к DocumentDB с TLS из приложения Java в контейнере ECSJAVA

Программисты JAVA общаются здесь
Anonymous
Как подключиться к DocumentDB с TLS из приложения Java в контейнере ECS

Сообщение Anonymous »

Я пытаюсь запустить контейнер для микроксеров, размещенный на ECS Fargate, для хранения макетных определений API требуется MongoDB (DocumentDB). -bundle.pem и храните его в хранилище ключей Java, но я все еще получаю ошибку, которую он не может найти действительный путь сертификации в запрошенную цель
Это мой Контейнер инициирования (есть ли меньше изображения для использования для этой задачи?): < /p>

Код: Выделить всё

const initContainer = taskDefinition.addContainer('init-container', {
image: ecs.ContainerImage.fromRegistry('openjdk:17-alpine'),
essential: false,
command: [
'sh', '-c',
`
mkdir -p /tmp/certs && \
wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem -O /tmp/certs/global-bundle.pem && \
ls -la /tmp/certs/ && \
keytool -import -noprompt -alias "docdb-cert" -file /tmp/certs/global-bundle.pem \
-keystore /tmp/certs/truststore.jks -storepass changeit && \
keytool -list -keystore /tmp/certs/truststore.jks -storepass changeit
`
]
});
< /code>
, а затем это мое определение задачи ECS: < /p>
const microcksContainer = taskDefinition.addContainer(
'microcks-container',
{
image: ecs.ContainerImage.fromRegistry('quay.io/microcks/microcks'), //quay.io images maintained directly by microcks team
containerName: 'microcks',
logging: ecs.LogDrivers.awsLogs({
streamPrefix: 'microcks',
logRetention: logs.RetentionDays.ONE_WEEK,
}),
secrets: {
DOCDB_PASSWORD: ecs.Secret.fromSecretsManager(docdbAdminSecret, 'password'),
},
startTimeout: Duration.seconds(180),
environment: {
SPRING_PROFILES_ACTIVE: 'dev',
SPRING_DATA_MONGODB_URI: `mongodb://docdbadmin:$DOCDB_PASSWORD@${docdbCluster.clusterEndpoint.hostname}:27017/?tls=true&retryWrites=false`,
SPRING_DATA_MONGODB_DATABASE: 'microcks',
JAVA_OPTIONS: "-Djavax.net.ssl.trustStore=/tmp/certs/truststore.jks -Djavax.net.ssl.trustStorePassword=changeit",
MONGODB_TLS: 'true',
MONGODB_TLS_ALLOW_INVALID_HOSTNAMES: 'true',
},
},
);
< /code>
Я неправильно поставляю трастовый хранилище? DocumentDB без хранения сертификата TLS в магазине Java Key, но он также не сработал.
Я попытался использовать строку: 
spring_data_mongodb_uri: mongodb: // docdbadmin: $ docdb_password @$ {docdbcluster.clusterendpoint.hostname}: 27017/? tls = true & tlscafile =/tmp/certs/global-bundle.pem & retrywrites = false 
,

Подробнее здесь: https://stackoverflow.com/questions/794 ... -container

Вернуться в «JAVA»