将ACCS中的Node.js应用程序连接到Exadata Express

原文作者:Dan McGhan 原文地址:https://dzone.com/articles/connecting-a-nodejs-app-in-accs-to-exadata-express

我最爱的云服务OracleExadata云快递服务Exadata(Express)和容器应用云服务(ACCS)。Exadata表达是一种全面管理Oracle数据库服务入门级的价格点对于小型到中型尺寸数据和ACCS的部署应用docker容器。在这篇文章中,我将演示如何连接这两个服务在最基层。

什么是“最基层”?第一,我不是给大家演示如何创建Oracle云服务账户——这两个我就假定你已经做了。此外,演示应用程序后将简约。通常,可以使用云开发者服务创建一个git repo(git 本地库)使用自动构建过程——而不是在这里。这篇文章将只关注所需要的一些连接这两个服务。

创建测试APP

创建一个新目录名字连接试验--APP并添加以下两个文件。

manifest.json:

{

"runtime":{

"majorVersion":"6"

},

"command": "node index.js",

"release": {},

"notes": ""

}

ACCS应用程序常常具有一个或两个元数据文件。在这种情况下,manifest.json用于指定版本的node.js来运行的命令和启动应用程序。

index.js:

const http = require('http');

const oracledb = require('oracledb');

let error;

let user;

oracledb.getConnection(

{

user: process.env.EECS_USER,

password: process.env.EECS_PASSWORD,

connectString: 'dbaccess'

},

function(err, connection) {

if (err) {error = err; return;}

connection.execute('select user from dual', [], function(err, result) {

if (err) {error = err; return;}

user = result.rows[0][0];

error = null;

connection.close(function(err) {

if (err) {console.log(err);}

});

})

}

);

http.createServer(function(request, response) {

response.writeHead(200, {'Content-Type': 'text/plain'});

if (error === null) {

response.end('Connection test succeeded. You connected to Exadata Express as ' + user + '!');

} else if (error instanceof Error) {

response.write('Connection test failed. Check the settings and redeploy app!\n');

response.end(error.message);

} else {

response.end('Connection test pending. Refresh after a few seconds...');

}

}).listen(process.env.PORT);

index.js包含运行逻辑连接测试线(6-26),并且使用简单的Web服务器,让我们知道测试的结果(28-39行)。注意,通过环境三个变量的引用process.env。端口限定的ACCS但是,在其他环境变量将在上一步中创建的教程。

添加客户端证书

要连接Exadata Express,您必须先下载客户端证书。打开浏览器,登录到Oracle云账号。然后去到Exadata快递服务控制台中,选择的服务实例的那种,然后点击下载客户端证书。

image.png

客户端的证书下载前,将提示您输入密码。你需要密码连接到Exadata表示使用JavaKeystore(例如,SQLDeveloper),但是当没有连接到OCI的数据库(例如,节点-oracledb)。

输入并确认密码,然后单击下载。一个名叫client_credentials.zip将下载到您的计算机上。一旦下载,您必须将该文件可靠地防止未经授权访问数据库。

提取的内容client_credentials.zip到文件连接试验--APP目录已创建。该目录的内容应如下所示:

image.png

改变到目录客户机证书目录和打开sqlnet.ora在文件的文本编辑器。改变目录/网络/管理?以需要客户端证书/_。注意,当部署一个应用程序,该应用程序的文件复制到需要目录的容器。在sqlnet.ora文件必须指向客户端凭据,可以有所不同,这取决于环境。

部署应用程序

在这一点上,我们可以部署应用程序和。改变目录备份到连接测试程序压缩内容(不是目录本身)在一个新的压缩文件,命名为Archive.zip。

image.png

返回到浏览器,并导航到服务控制台的ACCS。点击创建应用按钮。

image.png

选择Node作为应用平台。

image.png

设定的应用程序名eecstest使用中,档案文件选择器来选择应用的在上一步中创建的存档,并且然后设置实例存储器选项1。点击创建以开始展开过程。

image.png

该应用程序将出现在列表中的应用程序,你可以获得ACCS的URL。

image.png

如果您导航到URL,在浏览器中,你会看到,测试就失败了——这是可预期的。

image.png

最后一个步骤就是做好一切工作。..

添加环境变量

返回到ACCS服务控制台,并进入到中eecstest app中。选择左侧的部署选项,并单击环境变量下的Add按钮。

image.png

将名称设置为TNS_ADMIN,并将其值设置为$ APP_HOME/ client_credentials,然后单击Save。

image.png

重复前面的步骤,创建两个更多的环境变量。第一个将命名为EECS_USER,它的值将是您想要连接的Exadata Express数据库用户的用户名。最后一个环境变量将命名为EECS_PASSWORD,其值将是EECS_USER中指定的数据库用户的密码。

在创建了三个环境变量之后,滚动到顶部并单击Apply Edits按钮。这将重新部署应用程序与新的设置。

image.png

在部署应用程序之后,您可以导航到它的URL,在那里您应该看到连接测试已经成功。

image.png

正如您所看到的,一旦知道移动的部分是什么,连接这两个服务并不困难。在使用真正的应用程序时,我建议将客户端凭证与应用程序文件分开。

如果在本地开发,则TNS_ADMIN环境变量可以指向用于dev的客户端凭证的本地副本。 在ACCS中部署到其他环境时,可以使用开发人员云服务构建流程从Storage Service中下载正确的客户端凭据,并将其添加到应用程序文件,然后将其部署到ACCS。

本文的版权归 用户1169992 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏蓝天

cron 的配置和说明

作者:北南南北 来自:LinuxSir.Org 摘要:Linux操作系统中,计划任务通常由cron来承担,了解或掌握cron,能为我们管理服务器带来更多的便利,...

742
来自专栏ml

linux基础命令

1.shutdown 常用命令: (1) shutdown -h 1 --一分钟关机 (2) shutdown -h n...

3296
来自专栏www.96php.cn

Apache多虚拟主机多版本PHP(5.2+5.3+5.4)共存运行配置全过程

    因为某种需求,可能是因为早期的项目需要低版本的php,和目前开发所用的版本不太一致,我们需要给不同的虚拟主机配置不同版本的PHP。避免去额外配置多个A...

44812
来自专栏云计算教程系列

如何在Debian上使用Cachet

如果有多个业务系统对外提供服务,那么一个状态展示系统可以为客户提供直观的服务状态展示。当出现系统故障或安排更新计划时可以为客户提供一个信息公开的平台,以便作出相...

1063
来自专栏Java帮帮-微信公众号-技术文章全总结

SVN使用指南【工作培训版】

为什么要使用配置管理 及时了解团队中其他成员的进度。 轻松比较不同版本间的细微差别; 记录每个文件成长的每步细节,利于成果的复用(reuse); 资料共享,避免...

3775
来自专栏容器云生态

如何手动给Docker容器设置静态IP

要点: 1.首先需要在宿主机上虚拟出来一个真实可用桥接网卡比如br0 2.docker启动的时候默认使用br0进行桥接网络 3.创建docker容器的时候使用-...

2695
来自专栏逸鹏说道

后渗透攻防的信息收集

1.0前言 后渗透常见的信息收集思路 延伸: 渗透测试中的技巧 后渗透阶段的攻防对抗 linux入侵后续指南 mimikittenz:又一款Windows密码获...

3816
来自专栏SeanCheney的专栏

《Learning Scrapy》(中文版)第6章 Scrapinghub部署

前面几章中,我们学习了如何编写爬虫。编写好爬虫之后,我们有两个选择。如果是做单次抓取,让爬虫在开发机上运行一段时间就行了。或者,我们往往需要周期性的进行抓取。我...

2748
来自专栏FreeBuf

小米范系列渗透测试工具介绍

*本文原创作者:shentouceshi,本文属FreeBuf原创奖励计划,未经许可禁止转载 为了提高工作效率,最近写了几款渗透测试类的工具,在这里给大家分享一...

2365
来自专栏杨建荣的学习笔记

从零开始串联Python前后端技术

运维开发流程概述 是我们参与到其中的一个入口,我们需要了解运维开发的一些环节,还有运维开发的一些技术基础。我们通过一个实例来做演示,基本的需求就是从数据库中查...

2906

扫码关注云+社区