検索

クリアフィルター
記事
Tomohiro Iwamoto · 2021年2月16日

InterSystems IRIS デプロイガイド - AWS CloudFormation テンプレート - Windows編

## 目的 CloudFormationの記事は、Linux系のものが多いですが、Windowsでも自動化したいという需要がありそうですので、[オリジナル記事](https://jp.community.intersystems.com/post/intersystems-iris-%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E3%82%AC%E3%82%A4%E3%83%89-aws-cloudformation-%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88-%C2%A0)を元に、CloudFormationを使用してミラークラスターをWindowsサーバにデプロイする例を実装してみました。また、簡単な実行例も追加しました。 ソースコード一式はこちらの[Gitレポジトリ](https://github.com/IRISMeister/AWSIRISDeployment)にあります。 更新: 2021年3月1日 ワンライナーで踏み台ホスト経由でWindowsに公開鍵認証する方法を追記しました 更新: 2022年11月29日 [QuickStart](https://aws.amazon.com/jp/quickstart/architecture/intersystems-iris/)の形式に合わせて大幅に変更しました。以前の内容は[こちら](https://github.com/IRISMeister/AWSIRISDeployment/releases/tag/v0.1)に保存してあります。 更新: 2022年12月21日 踏み台ホストの使用を止め、代わりにAWS System Manager(SSM)を有効化しました。プライベートサブネット上のインスタンスへのアクセスが簡素化されます。以前の内容は[こちら](https://github.com/IRISMeister/AWSIRISDeployment/releases/tag/v0.2)に保存してあります。 ## 事前準備 [QuickStart](https://aws.amazon.com/jp/quickstart/architecture/intersystems-iris/)のデプロイ方法に従います。 非公開のS3バケットにIRISのキット及びライセンスキーをアップロードします。 - IRISをWindowsにデプロイする場合 ```bash S3BucketName= aws s3 mb s3://$S3BucketName aws s3 cp iris.key s3://$S3BucketName aws s3 cp ISCAgent-2022.1.0.209.0-lnxrh7x64.tar.gz s3://$S3BucketName aws s3 cp IRIS-2022.1.0.209.0-win_x64.exe s3://$S3BucketName ``` - IRISをLinux(AmazonLinuxあるいはRedHat7/x64)にデプロイする場合 ```bash S3BucketName= aws s3 mb s3://$S3BucketName aws s3 cp iris.key s3://$S3BucketName aws s3 cp ISCAgent-2022.1.0.209.0-lnxrh7x64.tar.gz s3://$S3BucketName aws s3 cp IRIS-2022.1.0.209.0-lnxrh7x64.tar.gz s3://$S3BucketName ``` - IRISをLinux(Ubuntu/x64)にデプロイする場合 ```bash S3BucketName= aws s3 mb s3://$S3BucketName aws s3 cp iris.key s3://$S3BucketName aws s3 cp ISCAgent-2022.1.0.209.0-lnxrh7x64.tar.gz s3://$S3BucketName aws s3 cp IRIS-2022.1.0.209.0-lnxubuntu2004x64.tar.gz s3://$S3BucketName ``` > このテンプレートは、AmazonLinuxを使用しています。RedHat7もしくはUbuntuを利用する場合は、別途「[カスタマイズ候補](#linux)」のチャプターの作業が必要です また、事前にAWS上に用意されているテンプレートではなく、カスタマイズを行ったテンプレートを使用するので、下記を実行します。 > QSS3BucketNameはS3BucketNameと同じでも、異なっていても構いません。 ```bash $ git clone https://github.com/IRISMeister/AWSIRISDeployment.git --recursive $ cd AWSIRISDeployment ``` Windowsにデプロイする場合 ```bash QSS3BucketName= aws s3 cp quickstart-intersystems-iris-windows s3://$QSS3BucketName/quickstart-intersystems-iris-windows --recursive aws s3 cp submodules/quickstart-aws-vpc/templates s3://$QSS3BucketName/quickstart-intersystems-iris-windows/submodules/quickstart-aws-vpc --recursive aws s3 cp submodules/quickstart-linux-bastion/templates s3://$QSS3BucketName/quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion --recursive aws s3 cp submodules/quickstart-linux-bastion/scripts s3://$QSS3BucketName/quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion --recursive ``` Linuxにデプロイする場合 ```bash QSS3BucketName= aws s3 cp quickstart-intersystems-iris s3://$QSS3BucketName/quickstart-intersystems-iris --recursive aws s3 cp submodules/quickstart-aws-vpc/templates s3://$QSS3BucketName/quickstart-intersystems-iris/submodules/quickstart-aws-vpc --recursive aws s3 cp submodules/quickstart-linux-bastion/templates s3://$QSS3BucketName/quickstart-intersystems-iris/submodules/quickstart-linux-bastion --recursive aws s3 cp submodules/quickstart-linux-bastion/scripts s3://$QSS3BucketName/quickstart-intersystems-iris/submodules/quickstart-linux-bastion --recursive ``` ## 実行例 以下、既存VPCにWindows版IRISのミラー構成をデプロイする際の実行例です。 > VPCを新規作成する場合は、下記の[VPC関連の事前準備](#VPC関連)は不要です。 ### 事前準備 #### VPC関連 既存VPC上に、以下のリソースを事前に用意しました。 > デプロイ実行時にNATゲートウエイが無いと、スタックの作成に失敗します。必ず用意してください。 - パブリックサブネット ![image](/sites/default/files/inline/images/cfwindows_pub_subnet.png) - プライベートサブネット ![image](/sites/default/files/inline/images/cfwindows_subnet.png) - ルートテーブル/ルート ![image](/sites/default/files/inline/images/cfwindows_route_0.png) - ルートテーブル/サブネットの関連付け ![image](/sites/default/files/inline/images/cfwindows_route-assoc_0.png) - NATゲートウエイ ![image](/sites/default/files/inline/images/cfwindows_natgw.png) #### S3への各種ファイルのアップロード ```bash S3BucketName=iwamoto-cf-templates aws s3 mb s3://$S3BucketName aws s3 cp ISCAgent-2022.1.0.209.0-lnxrh7x64.tar.gz s3://$S3BucketName aws s3 cp iris.key s3://$S3BucketName aws s3 cp IRIS-2022.1.0.209.0-win_x64.exe s3://$S3BucketName git clone https://github.com/IRISMeister/AWSIRISDeployment.git cd AWSIRISDeployment # キットファイル格納先と同じbucketを使用しています QSS3BucketName=iwamoto-cf-templates aws s3 cp quickstart-intersystems-iris-windows s3://$QSS3BucketName/quickstart-intersystems-iris-windows --recursive aws s3 cp submodules/quickstart-aws-vpc/templates s3://$QSS3BucketName/quickstart-intersystems-iris-windows/submodules/quickstart-aws-vpc --recursive aws s3 cp submodules/quickstart-linux-bastion/templates s3://$QSS3BucketName/quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion --recursive aws s3 cp submodules/quickstart-linux-bastion/scripts s3://$QSS3BucketName/quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion --recursive ``` このような内容になります。 ``` aws s3 ls s3://$QSS3BucketName --recursive 2022-06-15 07:48:57 675737136 IRIS-2022.1.0.209.0-win_x64.exe 2022-10-12 01:09:57 16139988 ISCAgent-2022.1.0.209.0-lnxrh7x64.tar.gz 2022-03-29 07:11:24 546 iris.key 2022-11-25 09:15:50 0 quickstart-intersystems-iris-windows/ 2022-11-25 09:16:05 0 quickstart-intersystems-iris-windows/scripts/ 2022-11-28 05:34:49 6008 quickstart-intersystems-iris-windows/scripts/MirrorInstaller.xml 2022-11-28 13:34:52 0 quickstart-intersystems-iris-windows/submodules/ 2022-11-28 13:34:52 0 quickstart-intersystems-iris-windows/submodules/quickstart-aws-vpc/ 2022-11-28 13:34:52 0 quickstart-intersystems-iris-windows/submodules/quickstart-aws-vpc/templates/ 2022-11-28 13:34:52 59966 quickstart-intersystems-iris-windows/submodules/quickstart-aws-vpc/templates/aws-vpc.template.yaml 2022-11-28 13:34:52 0 quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion/ 2022-11-28 13:34:52 0 quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion/scripts/ 2022-11-28 13:34:52 531 quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion/scripts/auditing_configure.sh 2022-11-28 13:34:52 881 quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion/scripts/banner_message.txt 2022-11-28 13:34:52 11763 quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion/scripts/bastion_bootstrap.sh 2022-11-28 13:34:52 0 quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion/templates/ 2022-11-28 13:34:52 24068 quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion/templates/linux-bastion.template 2022-11-25 09:16:16 0 quickstart-intersystems-iris-windows/templates/ 2022-11-28 09:35:42 6059 quickstart-intersystems-iris-windows/templates/iris-cluster-arbiter-node.template.yaml 2022-11-28 09:35:42 21529 quickstart-intersystems-iris-windows/templates/iris-cluster-iris-node.template.yaml 2022-11-28 09:35:42 13736 quickstart-intersystems-iris-windows/templates/iris-cluster-main.template.yaml 2022-11-28 09:35:43 10403 quickstart-intersystems-iris-windows/templates/iris-entrypoint-new-vpc.template.yaml ``` ### (オプション)全パラメータ設定済みyamlの編集 繰り返し実行することを考慮して、パラメータを全て指定した状態のテンプレートを作成しておくと便利です。 ```bash vi test-iris-cluster-main-windows.yaml ``` > 編集後のファイルをうっかり公開してしまわないよう注意してください 編集時の注意 - BastionSubnetIdParameterには、異なるAZに属する2つのpublic subnetを指定してください。 - InstanceSubnetIdParameterには、異なるAZに属する3つのsubnetを指定してください。はじめの2つがIRISホスト、最後に指定したサブネットがArbiterホストが稼働するサブネットになります。 - IRISをインストールするホストは、インストール作業の際にインターネットへのアクセスを行います。具体的にはs3アクセスのためにaws cliが必要(amazon linuxと違ってUbuntuにはプリインストールされていません)なのですが、その他にもchocolateyを使用してaws cliをインストールしています。NATゲートウェイ等を構成済みのプライベートサブネットを構築済みで無い場合は、[こちら](NATGW.yaml)を参考にして一時的に追加してください。 > NATゲートウェイは存在するだけでコストが発生します。(VM起動直後のS/Wインストール時など)必要な時に作成し、不要になったらすぐ削除したかったので、別のCFテンプレートにしています。 ### コンソールからCloudFormationの実行 1. スタックを「新しいリソースを使用」して作成します。 テンプレートソースには「テンプレートファイルのアップロード」を選択し、先ほど編集したファイル(test-iris-cluster-main-windows.yaml)を指定します。 「スタックの詳細を指定」画面でパラメータを設定します。 |パラメータ|設定値例| | --- | --- | |BastionSubnetIdParameter|subnet-0f7c4xxxxxxxxxxxx,subnet-05b42xxxxxxxxxxxx| |IRISPasswordParameter|SYS1| |InstanceSubnetIdParameter|subnet-0180bxxxxxxxxxxxx,subnet-03272xxxxxxxxxxxx,subnet-08e8fxxxxxxxxxxxx| |QSS3BucketName|iwamoto-cf-templates| |QSS3BucketRegion|ap-northeast-1| |QSS3KeyPrefix|quickstart-intersystems-iris-windows/| |S3BucketNameParameter|iwamoto-cf-templates| |SshKeyParameter|aws| |VpcIdParameter|vpc-0e538xxxxxxxxxxxx| 「スタックオプションの設定」画面に特に設定はありません。実行がうまくいかない場合は、スタックの作成オプションの「失敗時のロールバック」を無効にしておくと、作成された環境がロールバックされずに残りますので、問題の解析がしやすくなります(不要になったら、忘れずに削除すること)。 「レビュー」画面で、「The following resource(s) require capabilities:」で、下記にチェックをいれる必要があります。 - AWS CloudFormation によって IAM リソースがカスタム名で作成される場合があることを承認します。 - AWS CloudFormation によって、次の機能が要求される場合があることを承認します: CAPABILITY_AUTO_EXPAND 「スタックの作成」ボタンを押します。複数のネストされたスタックの作成が開始されます。 2. 出力内容を確認します。 スタックのステータスがCREATE_COMPLETEになるまで待機します(15分ほどかかりました)。 スタック(アップロードしたスタックではなく、ネストされたxxx-IRISStack-xxxx)の出力を表示します。ギアアイコンで行の折り返し指定が出来ます。 |Stack|キー|値|説明| | --- | --- | --- | --- | |IRIStack|JDBCEndpoint|jdbc:IRIS://xxxx-NLB-xxxxx.elb.ap-northeast-1.amazonaws.com:51773/DATA| JDBC Connection String| |IRIStack|Node01InstanceId|i-xxxxxxxxxx|Node 01 Instance ID| |IRIStack|Node01PrivateIP|10.0.12.85|Node 01 Private IP| |IRIStack|Node02InstanceId|i-xxxxxxxxxx|Node 02 Instance ID| |IRIStack|Node02PrivateIP|10.0.10.159|Node 02 Private IP| これらの出力値を記録しておいてください。 ### IRIS管理ポータルへのアクセス Node01ホスト(ミラープライマリサーバ)の管理ポータルに接続します。下記のコマンドを実行します。 - 踏み台ホストを使用しない場合 セッションマネージャのポート転送を利用します。事前に[AWS CLIのインストール・構成](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html)と[SSMプラグインのインストール](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)が必要です。私はWindows10+WSL2(Ubuntu)を使用していますので、下記を実行しました。 ``` $ curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" -o "session-manager-plugin.deb" $ sudo dpkg -i session-manager-plugin.deb ``` ``` $ export instanceid=i-xxxxxxxxxx $ aws ssm start-session --target $instanceid \ --document-name AWS-StartPortForwardingSession \ --parameters '{"portNumber":["52773"],"localPortNumber":["52773"]}' ``` > [SSHトンネルを作成する方法](https://aws.amazon.com/jp/premiumsupport/knowledge-center/systems-manager-ssh-vpc-resources/)もあります。 - 踏み台ホストを使用する場合 ```bash BastionPublicIP=54.168.xxx.xxx Node01PrivateIP=10.0.12.85 ssh -i aws.pem -L 52773:$Node01PrivateIP:52773 ec2-user@$BastionPublicIP ``` この時点で、http://localhost:52773/csp/sys/UtilHome.csp で管理ポータルにアクセスできます。アカウントはSuperUser、パスワードはスタックのパラメータで指定したものを使用します。ミラーの状態を確認するために、管理ポータルのホーム画面の右端に「ミラー・モニターを表示」というリンクがありますので、クリックします。以下の画面のように表示されていれば正常です。 ![image](/sites/default/files/inline/images/cfwindows_mirror_0.png) ### WindowsへのRDP接続 RDP接続する場合は、(推奨に従って)Node01をプライベートサブネットに作成している場合、ssh同様、RDPも直接接続できません。フリートマネージャーをRDPの代替えとして利用可能です。 ![image](/sites/default/files/inline/images/fleet-manager_1.png) フリートマネージャーを使しない場合は、下記のようなコマンドをローカルで実行し、localhostから転送する必要があります。 - 踏み台ホストを使用しない場合 ``` $ export instanceid=i-xxxxxxxxxx $ aws ssm start-session --target $instanceid \ --document-name AWS-StartPortForwardingSession \ --parameters '{"portNumber":["3389"],"localPortNumber":["33389"]}' ``` - 踏み台ホストを使用する場合 ``` ssh -i aws.pem -L 33389:$Node01PrivateIP:3389 ec2-user@$BastionPublicIP ``` Windowsのパスワードは、AWSコンソールからのRDP接続方法で取得します。 その上で、RDPでlocalhost:33389に接続し、Administrator/取得したパスワード、でログインします。 ### Linuxへの接続 - 踏み台ホストを使用しない場合 SSMのセッションマネージャを使用します。 ![image](/sites/default/files/inline/images/session-manager_0.png) あるいは、~/.ssh/configを[設定する](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html)ことで、SSM経由でSSHアクセスすることも可能です。 ``` $ export instanceid=i-xxxxxxxxxx $ ssh -i aws.pem ec2-user@$instanceid ``` - 踏み台ホストを使用する場合 ```bash BastionPublicIP=54.168.xxx.xx Node01PrivateIP=10.0.12.85 ssh -i aws.pem -L 52773:$Node01PrivateIP:52773 ec2-user@$BastionPublicIP ssh -i aws.pem -L 33389:$Node01PrivateIP:3389 ec2-user@$BastionPublicIP ssh -i aws.pem -oProxyCommand="ssh -i aws.pem -W %h:%p ec2-user@$BastionPublicIP" ec2-user@$Node01PrivateIP or ssh -i aws.pem -oProxyCommand="ssh -i aws.pem -W %h:%p ec2-user@$BastionPublicIP" ubuntu@$Node01PrivateIP ``` > BastionPublicIPは、事前に用意した踏み台ホストの公開IPです。 ### 動作確認 - 外部ロードバランサ経由のアクセス この時点で、JDBC経由でアクセス可能になっているはずです。JDBCEndpointを使用してアクセスします。 > 手順は省略します。実行にはJDBCドライバが必要です。 ## カスタマイズ候補 ### Windows iris-cluster-iris-node.template.yamlでPSファイル等を作成しています。下記の箇所は、環境・目的に応じて変更してください。 - Windows環境のローカライズ(timezone, firewall設定) - c:\cfn\scripts\Setup-config.ps1 ***注意) firewallを無効に設定しています*** - ドライブの作成、割り当て - Resourcesセクション ``` Resources: NodeInstance: Properties: BlockDeviceMappings: ``` - c:\cfn\scripts\drives.diskpart.txt - IRISインストール先など - c:\cfn\scripts\Install-IRIS.ps1 ``` $irisdir="h:\InterSystems\IRIS" $irissvcname="IRIS_h-_intersystems_iris" $irisdbdir="I:\iris\db\" $irisjrndir="J:\iris\jrnl\pri" $irisjrnaltdir="K:\iris\jrnl\alt" ``` このpsファイルは、実行時に作成される/temp/envs.ps1と組み合わせれば、IRISの無人インストール用のスクリプトとして機能します。 - プリインストールするソフトウェア - c:\cfn\scripts\Install-choco-packages.ps1 s3からファイルを入手する場合、awscliは必須です。利便性のためnotepadplusplus, google chromeを追加インストールしています。 ### Linux - O/Sの指定 現在、O/Sは利便性によりAmazon Linuxを指定してあります。 O/SをRedHatに変更するには下記ファイルの内容を変更してください。 quickstart-intersystems-iris\templates\iris-cluster-iris-node.template.yaml ``` LatestAmiIdParameter: Type: AWS::EC2::Image::Id Default: ami-0be4c0b05bbeb2afd ``` O/SをUbuntuに変更するには下記ファイルの内容を変更してください。 quickstart-intersystems-iris\templates\iris-cluster-iris-node.template.yaml ``` LatestAmiIdParameter: Type: 'AWS::SSM::Parameter::Value' Default: /aws/service/canonical/ubuntu/server/focal/stable/current/amd64/hvm/ebs-gp2/ami-id ``` ``` IRISKitNameParameter: Type: String Default: IRIS-2022.1.0.209.0-lnxubuntu2004x64 ``` ## オリジナル(quickstart)との差異 デプロイ先をWindowsに変更する際に、Linux版との互換性を維持したままで、いくつかの修正を加えました。 - Windowsの起動に時間がかかるため、デフォルトのInstance typeをm5.largeからm5.xlargeに変更。gp2をgp3に変更。IOPSを指定。 - LatestAmiIdForIRISParameterパラメータを新設。Windowsのキット(日本語版、英語版等)の指定。 - IRISKitNameParameterパラメータを新設。キット名の指定。 - RDPアクセス用にSecurityGroupIngress(ポート:3389)を追加 - SE.ShardInstallerクラス修正 - CreateMirrorSet(), JoinAsFailover()を変更 \#\#class(SYS.Mirror).CreateMirrorSet(),JoinAsFailover()実行時のECPAddressのデフォルト($system.INetInfo.LocalHostName())が、Windowsでは"EC2AMAZ-F1UF3QM"のようなWindowsホスト名になる。このホスト名では他のホストからDNSで名前解決できないので、JoinMirrorAsFailoverMember()がエラーになる。そのため、下記を追加。 CreateMirrorSet() ``` set mirror("ECPAddress") = hostName // Windows on AWS need this ``` JoinAsFailover() ``` set MirrorInfo("ECPAddress") = hostName // Windows on AWS need this ``` - Roleを追加 ``` キット用S3バケットに対するs3:GetObject ec2:Describe* ec2:DeleteRoute ec2:CreateRoute ec2:ReplaceRoute セッションマネージャ有効化のため AmazonSSMManagedInstanceCore ``` - Linux用のcloud-initのUserData(初回起動時に実行されるshell)にO/SがUbuntu,RedHat7の場合分けを追加 - 踏み台ホストをデプロイしない代わりにAWS System Managerを有効化 ## その他 ### 1. LBのヘルスチェック値 LBのヘルスチェックのデフォルト値を使用しています。quickstart-intersystems-iris-windows\templates\iris-cluster-main.template.yamlのコメントを解除して適切な値に調整してください。 ``` #HealthCheckTimeoutSeconds: 10 #HealthCheckIntervalSeconds: 10 #UnhealthyThresholdCount: 3 ``` ### 2. テンプレートとAWSリソースの関係 以下、テンプレートと作成されるAWSリソースの関係です。 |テンプレート名|作成されるリソース| | --- | --- | |iris-cluster-iris-node.template.yaml|スタンドアロン| |iris-cluster-iris-main.template.yaml|ミラー環境| |iris-entrypoint-new-vpc.template.yaml|VPC+ミラー環境| AWS System Managerを有効化しているため、いずれも踏み台ホストは作成しません。必要であれば、この[テンプレート](BastionNode.yaml)を参考にして作成しください。 ### 3. テンプレートのデフォルト値 環境の明滅を繰り返し実行する可能性がある場合、パラメータを全て指定した状態のテンプレートを別途作成しておくと便利です。 |テンプレート名|O/S|用途| | --- | --- | --- | |test-iris-cluster-iris-node-linux.yaml|Linux| スタンドアロン| |test-iris-cluster-iris-node-windows.yaml|Windows| スタンドアロン| |test-iris-cluster-iris-main-linux.yaml|Linux| ミラー環境| |test-iris-cluster-iris-main-windows.yaml|Windows| ミラー環境| |test-iris-entrypoint-new-vpc-linux.yaml|Linux| VPC+ミラー環境| |test-iris-entrypoint-new-vpc-windows.yaml|Windows| VPC+ミラー環境| 例えば、スタンドアローン構成でIRISを起動したい場合は、下記のファイルを編集します。 ```bash $ #デプロイするサブネット(InstanceSubnetIdParameterの値)には既存のパブリックサブネットを指定してください $ vi test-iris-cluster-iris-node-linux.yaml ``` スタック作成時に、test-iris-cluster-iris-node-windows.yamlを指定すれば、スタンドアローン構成でIRISを起動することが出来ます。 ### 3. WindowsへのSSH SSMのセッションマネージャを使用します。 > 踏み台ホストの使用を止めたため、下記内容は無効になりました。下記の方法を試す場合は、別途、[こちらのような](BastionNode.yaml)テンプレートを利用して踏み台ホストを作成してください。 IRIS稼働ホストにOpenSSHをインストールすれば、踏み台ホスト経由で、IRISホストにSSHする事が可能です。ただし、Linux版に比べて、Windows版のIRISではCLIで実行できることが限られているため、効果は限定的です。 IRIS稼働ホストで実行。 ```powershell PS C:\Users\Administrator> Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 PS C:\Users\Administrator> Start-Service sshd ``` Windowクライアントからアクセスする際には、Windows版OpenSSHクライアント固有の問題「posix_spawn: No such file or directory」を回避するために、Git同梱のBashを使用しました。 ```bash user@DESKTOP-XXXX MINGW64 ~ ssh -oProxyCommand="ssh -i aws.pem -W %h:%p ec2-user@54.95.xxx.xxx" Administrator@10.0.0.62 Administrator@10.0.0.62's password: RDP接続の際に取得したパスワード ``` (load pubkey "aws.pem": invalid format が出ますが無視) また、ひと手間いりますが、踏み台ホストの.ssh/authorized_keys(パブリックキー)を、デプロイ先のWindowsにコピーすれば、ワンライナーで公開鍵認証できます。 ```bash user@DESKTOP-XXXX MINGW64 ~ ssh -i aws.pem -oProxyCommand="ssh -i aws.pem -W %h:%p ec2-user@54.95.xxx.xxx" Administrator@10.0.0.62 ``` Adminグループには特別の設定が必要でした。[こちら](https://www.concurrency.com/blog/may-2019/key-based-authentication-for-openssh-on-windows )のConfiguring the Serverを参考にしました。 ### 4. cfn-init.logにPythonのエラーが出る場合 cfn-init.logに下記のようなエラーが出ることがあるようです。 ``` 2021-02-12 02:50:32,957 [ERROR] -----------------------BUILD FAILED!------------------------ 2021-02-12 02:50:32,957 [ERROR] Unhandled exception during build: 'utf8' codec can't decode byte 0x83 in position 8: invalid start byte ``` 回避されることを期待して、Install-IRIS.ps1に、以下の命令を追加しています。 ``` [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 ``` ## 参考にしたサイト 下記のサイトを参考にしています。 - https://aws.amazon.com/jp/quickstart/architecture/intersystems-iris - https://dev.classmethod.jp/articles/about-windows-cfn-init-non-ascii-encoding-error/ - https://dev.classmethod.jp/articles/aws-cloudformation-setup-windows-server-2016/ - https://aws.amazon.com/jp/premiumsupport/knowledge-center/cloudformation-drive-letters-windows/ - https://www.concurrency.com/blog/may-2019/key-based-authentication-for-openssh-on-windows
お知らせ
Mihoko Iijima · 2021年3月16日

第11回 InterSystems IRIS プログラミングコンテスト(開発者ツール)開催!

開発者の皆さん、こんにちは! 世界中の開発者からの熱いご要望により、新たなコンテストの開催が決定しました! 🏆 InterSystems IRIS プログラミングコンテスト: 開発者ツール 🏆 応募期間は 2021年3月29日~4月18日 です! 💰 賞金総額: $8,500 💰 (投票期間は 2021年4月19日~25日、勝者発表は 4月26日を予定しています) InterSystems IRIS を使用して、開発の迅速化、より質の高いコードの提供、テスト、デプロイ、サポート、またはソリューションの監視を支援するアプリケーションやツールを開発し、ご応募ください! 優勝特典 1、審査員から多く票を集めたアプリケーションには、以下の賞金が贈られます。 🥇 1位 - $4,000 🥈 2位 - $2,000 🥉 3位 - $1,000 2、開発者コミュニティで多く票を集めたソリューションには、以下の賞金が贈られます。 🥇 1位 - $750 🥈 2位 - $500 🥉 3位 - $250 複数の参加者が同数の票を獲得した場合、全参加者が勝者となり賞金は勝者間で分配されます。 参加資格 どなたでもご参加いただけます!(InterSystems 開発者コミュニティのアカウントを作成するだけでご応募いただけます) 👥 開発者がチームを組んで共同でアプリケーションを作成し、応募することもできます! 1チーム 2~5名 までご参加いただけます。 チームでご応募いただく場合は、アプリケーションの README にチームメンバー名の記載をお忘れなく!!(開発者コミュニティのプロファイルのリンクもお願いします) コンテストのスケジュール 3月29日~4月18日 応募期間(Open Exchange へ作成されたアプリケーションをアップロードいただける期間=3週間です。この期間内であればアップロード後も自由に編集できます。) 4月19日~25日 投票(1週間) 4月26日 勝者発表(US時間に発表します) コンテストのテーマ 💡 InterSystems IRIS 開発者ツール 💡 このコンテストでは、IRIS を使用する開発者のエクスペリエンスを向上させ、より迅速な開発を可能にし、より質の高いコードを提供し、InterSystems IRIS を使用したソリューションのテスト、デプロイ、サポート、またはモニタリングが行えるアプリケーションをご応募ください。 応募要件は以下の通りです。 テーマとするアプリケーションの種類:フレームワーク、IDE、データベース管理、モニタリング、デプロイメント・ツールなど。 アプリケーションの動作環境:IRIS Community Edition、IRIS for Health Community Edition、IRIS Advanced Analytics Community Edition のいずれかで動作すること 公開方法:アプリケーションはオープンソースとして GitHub で公開してください。 READMEの記述について:インストール手順の記載と、アプリケーションがどのように動作するのかを説明するビデオ、または説明を記載してください。 ※上記要件は変更される場合があります。 Helpful resources アプリケーション例は以下の通りです。 iris-rad-studio - RAD for UI cmPurgeBackup - backup tool errors-global-analytics - errors visualization objectscript-openapi-definition - open API generator Test Coverage Tool - test coverage helper その他 開発環境テンプレートは以下の通りです(1から環境を作成せずにすむのでお勧めです!)。 日本語で解説を付けたページもご用意しています。詳細はこちらの記事をご参照ください。 objectscript-docker-template rest-api-contest-template native-api-contest-template iris-fhir-template iris-fullstack-template iris-interoperability-template iris-analytics-template コンテスト応募方法(このページ末尾のビデオをご参照ください) 審査及び投票ルール(英語) インターシステムズ社のプロダクトマネージャ、Developer Communityのモデレータ、グローバルマスターアドボケイト(VIPレベル)等、Developer Community 内での投票も行われます。 コンテストの審査および投票ルールについて詳細はこちらをご覧ください。 ❗️ コンテスト規約については、こちらをご参照ください。❗️ ご応募方法について 以下の応募方法ビデオをご参照ください。 以下、コンテストに応募する迄の手順をご説明します。 コンテスト応募までの流れは以下の通りです(※ビデオでは、3番以降の内容をご紹介しています)。 1、IRISプログラミングコンテスト用テンプレートを使用して、開発環境を準備します。 2、コンテスト用アプリケーションを作成します。 3、コンテストの準備が完了したら、ソースコードをローカルのGitリポジトリへコミットします。 初回コミット時に、Gitの初期設定がないためコミットが失敗することがあります。その場合は、以下のコマンドでGitユーザ名とEmailを設定します。 git config --global user.name "ここにユーザ名" git config --global user.email "ここにメールアドレス” 4、ローカルのGitリポジトリのコミットが完了したら、リモートのGitリポジトリを作成します。 リポジトリ作成後、リモートリポジトリのURLをコピーします。 5、リモートのGitリポジトリへPushします。 git push ここにリモートのリポジトリのURL 6、OpenExchangeにログインし、アプリケーションを追加します。 ※事前にDeveloper communityでユーザアカウントを作成する必要があります。ログイン後、Profile→Applications から Application をクリックし、4 でコピーしたリモートのGitリポジトリのURLを設定します。アプリケーションを登録すると、画面右上に「Send Approval」のボタンが表示されるので、クリックします。再度作成したアプリケーションを開くと、「Apply for Contest」ボタンが表示されるので、クリックすると応募が完了します。
お知らせ
Mihoko Iijima · 2021年3月29日

テクノロジーボーナス詳細:第11回 InterSystems IRIS プログラミングコンテスト(開発者ツール編)

開発者の皆さん、こんにちは! 第11回 IRIS プログラミングコンテスト - 開発者ツール編 の 続報 📣 の「テクノロジーボーナス」についてご紹介します。 今回のコンテストも、チームで開発した作品もご応募いただけます!ぜひコンテスト詳細ページもご確認ください! Docker container usage - 2 points アプリケーションがコンテナ版 IRIS を使用している場合「Docker container」ボーナスを獲得できます! シンプルな開発環境テンプレートをご用意しています。ぜひご利用ください。 ZPM Package deployment - 2 points フルスタックアプリケーション用の ZPM(ObjectScript Package Manager) パッケージをビルドして公開し、それを使用してデプロイできるようにすると2ポイント獲得できます。 以下のコマンド実行例は、 IRIS に ZPM クライアントをインストールしパッケージをインストールしている例です。 zpm "install your-multi-model-solution" 詳しくは、ZPM client や ドキュメント をご参照ください。 Unit Testing - 2 points InterSystems IRIS のユニットテストを実施しているアプリケーションは、ボーナスポイントを獲得できます。 ObjectScript のユニットテストの詳細については、ドキュメントと開発者コミュニティを参照してください。 Online Demo of your project - 3 points オンラインデモとしてプロジェクトをクラウドにプロビジョニングすると、さらに3点のボーナスポイントを獲得できます! このテンプレートやその他のデプロイメントオプションを使用することができます。デプロイメントについて詳細は、2021年03月30日(火) 00:00 開始(EDT 米国東部標準時:2021年03月29日(月) 11:00)のキックオフウェビナーをご参照ください。 Code quality analysis with zero bugs - 2 points コード管理用に code quality Github action を含め、ObjectScriptのバグが 0 の場合、ボーナスポイントを獲得できます。 詳細については、2021年03月30日(火) 00:00 開始(EDT 米国東部標準時:2021年03月29日(月) 11:00)のキックオフウェビナーをご参照ください。 Article on Developer Community - 2 points 作成したアプリケーション/プロジェクトの概要を開発者コミュニティの記事として投稿した場合、1 記事に対して 2 ポイント獲得できます。 また、他言語へ記事を翻訳し、掲載した場合も同様にポイントを獲得できます。 Video on YouTube - 3 points 開発した作品の動画を作成し、YouTube に掲載した場合、3ポイント獲得できます。 ※ ボーナスポイントについては、変更される可能性もあります。予めご了承ください。
お知らせ
Mihoko Iijima · 2021年4月19日

★投票開始!★第11回 InterSystems IRIS プログラミングコンテスト(開発者ツール)

開発者の皆さん、こんにちは! 第11回 InterSystems IRIS プログラミングコンテスト: 開発者ツール の投票が開始されました! 🔥 これだ!と思う一押し作品に投票お願いします! 🔥 投票期間:4月19日~26日 (1週間) 投票方法は? コミュニティメンバーはどなたでも投票いただけます! 投票種別は、Expert Nomination と Community Nomination に分かれています。コミュニティメンバーは、Community Nomination を選択いただき、どの作品がどの順位になるかを指定しながら投票してください! Community Leaderboard: 開発者コミュニティのメンバーは、お好みのアプリケーションに対して1位~3位を指定しながら投票できます。 開発者コミュニティでのあなたの状態 順位 1位 2位 3位 開発者コミュニティに記事を掲載したり、OpenExchange(OEX)にアプリをアップロードしたことがある方 9点 6点 3点 開発者コミュニティに1つの記事を掲載した、または 1アプリケーションを OEX にアップロードしたことがある方 6点 4点 2点 開発者コミュニティへコメントや質問を投稿したことがある方 3点 2点 1点 Experts Leaderboard: エキスパートノミネーションでは、エキスパートのレベルが上がると獲得できるポイントも増えます! エキスパートレベル 順位 1位 2位 3位 グローバルマスターズの VIP レベル または、InterSystems Product Managers 15点 10点 5点 グローバルマスターズの Ambassador レベル 12点 8点 4点 グローバルマスターズの Expert レベル または DC モデレーター 9点 6点 3点 グローバルマスターズの Specialist レベル 6点 4点 2点 グローバルマスターズの Advocate レベル または インターシステムズの従業員 3点 2点 1点 エキスパートリーダーボードの投票権をお持ちの方は、コミュニティリーダーボードにも自動的にポイントが加算されます。 投票方法 詳細 Open Exchange にログインします(開発者コミュニティのアカウントでログインできます)。 投票ボタンは、開発者コミュニティ内で、質問/回答/記事の掲載/投稿に対するコメント など 記載いただいた方に対して有効になります。 ボタンが押せない場合は、コミュニティへのコメントやオリジナルの記事など、書き込みお願いします! 詳細は、こちらの記事をご参照ください。 世界の IRIS 開発者が作成した ✨素敵なアプリ✨ が公開されています!ぜひ 🔥これだ🔥 と思う作品に投票お願いします! 投票期間であれば、一度投票した後も別のアプリケーションへ投票し直すこともできます(投票期間は1週間あります)。 なお、コンテスト参加者は投票週間の間にバグの修正やアプリケーションの改善を行うことができますので、アプリケーションのリリース情報についてもお見逃しなく!(サブスクリプション登録が行えます) ➡️ InterSystems オンラインコンテストの新しい投票ルールについて詳細はこちらをご参照ください。
お知らせ
Mihoko Iijima · 2021年4月27日

★受賞者発表!★第11回 InterSystems IRIS プログラミングコンテスト(開発者ツール)

開発者の皆さんこんにちは! 第11回 InterSystems IRIS プログラミングコンテスト(開発者ツール) への応募、投票が全て終了しました。コンテストへのご参加、またご興味をお持ちいただきありがとうございました。 今回のお知らせでは、見事受賞されたアプリケーションと開発者の方々を発表します! 🏆 Experts Nomination - 特別に選ばれた審査員から最も多くの票を獲得したアプリケーションに贈られます。 🥇 1位 - $4,000 は Server Manager for VSCode を開発された @John Murray さんに贈られました! 🥈 2位 - $1,500 は Config-API を開発された @Lorenzo Scalese さんに贈られました! 🥈 2位 - $1,500 は zpm-explorer を開発された @Henrique Dias さんと @José Roberto Pereira さんに贈られました! 🏆 Community Nomination - 最も多くの票を獲得したアプリケーションに贈られます。 🥇 1位 - $750 は Server Manager for VSCode を開発された @John Murray さんに贈られました! 🥈 2位 - $500 は zpm-explorer を開発された @Henrique Dias さんと @José Roberto Pereira さんに贈られました! 🥉 3位 - $250 は Config-API を開発された @Lorenzo Scalese さんに贈られました! 🎊 受賞者の皆様、おめでとうございます!👏 今回も、コンテストにご注目いただきありがとうございました! 次のコンテストは・・・・・・・・? 近日公開予定です!お楽しみに!
お知らせ
Mihoko Iijima · 2021年5月8日

InterSystems IRIS FHIR Accelerator Service (FHIRaaS) をAWSで利用するには?

開発者の皆さん、こんにちは! いよいよ 🏆 InterSystems FHIR Accelerator Programming Contest 🏆 への応募が開始されます! 今回のコンテストに参加するためには、InterSystems IRIS FHIR Accelerator Service (FHIRaaS) を AWS で利用する必要があります。 FHIRaaS の利用を開始するための最初の手続きとして、特別なコードを含めた URL を使用して ISC Dev FHIR Portal でユーザ情報を登録する必要があります。 「特別なコードを含んだ URL」って? 以下例のように「特別なコード」をクエリパラメータに指定して、ポータルサイトにアクセスします。 👉🏼 https://portal.trial.isccloud.io/account/signup?code=特別なコード ポータルサイトを利用するための「特別なコード」は、以下いずれかの方法で入手できます! コミュニティ上で @Irina Podmazko へダイレクトメッセージを送付する DC Discord channel にアクセスして、またはプライベートメッセージでコンテスト担当者に連絡する このお知らせのコメント欄に「コード希望!」を記入する(担当者からダイレクトメッセージでコードをお知らせします) コードを入手されたら、ポータル用 URL のクエリパラメータに code=入手したコード を指定してアクセスし、ユーザ情報を登録してください。 コンテストに関する質問は、このお知らせ記事のコメントや、discord-contests channel でお知らせください! FHIR Accelerator のコンテストに参加して、InterSystems の FHIRaaS を使いこなせるようになりましょう!✌🏼 ✨ Happy coding ✨
記事
Toshihiko Minamoto · 2021年8月9日

AppS.REST - InterSystems IRIS の新しい REST フレームワーク

1 年ほど前、私のチーム(多数の社内アプリケーションの構築と管理、および他の部署のアプリケーションで使用するツールやベストプラクティスの提供を担う InterSystems のアプリケーションサービス部門)は、Angular/REST ベースのユーザーインターフェースを元々 CSP や Zen を使って構築された既存のアプリケーションに作りこむ作業を開始しました。 この道のりには、皆さんも経験したことがあるかもしれない興味深いチャレンジがありました。既存のデータモデルとビジネスロジックに新しい REST API を構築するというチャレンジです。 このプロセスの一環として、REST API 用に新しいフレームワークを構築しました。あまりにも便利であるため、自分たちだけに取っておくわけにはいきません。 そこで、Open Exchange の で公開することにしました。 今後数週間または数か月の間に、これに関する記事がいくつか掲載される予定です。それまでは、GitHub のプロジェクトドキュメント))に用意されたチュートリアルをご利用ください。 はじめに、設計の目標と意図についていくつか以下に示します。 すべての目標が実現したわけではありませんが、順調に進んでいます! ## 高速開発とデプロイ REST アプローチは、Zen と同じアプリケーション開発のクイックスタートを提供し、一般的な問題を解決しながら、アプリケーション固有の特殊なユースケースに柔軟性を提供する必要があります。 * REST アクセスへの新しいリソースの公開は、Zen DataModel と同じくらい簡単である必要があります。 * REST リソースの追加/変更には、アクセスされているレベルでの変更が必要です。 * REST による永続クラスの公開は、継承と最小限のオーバーライドで行えるべきですが、ハンドコーディング相当の機能もサポートする必要があります。 (これは、%ZEN.DataModel.Adaptor と %ZEN.DataModel.ObjectDataModel に似ています。) * エラー処理/レポート、シリアル化/逆シリアル化、検証などに関する一般的なパターンは、各アプリケーションの各リソースに対して再実装する必要があってはいけません。 * SQL クエリ、フィルタリング、順序付け、および高度な検索機能とページネーションのサポートは、各アプリケーションに再実装するのではなく、組み込みである必要があります。 * REST API はオブジェクトレベル(CRUD)でだけでなく、既存の API/ライブラリのクラスメソッドとクラスクエリに対しても簡単に構築できます。 ## セキュリティ セキュリティは、付け足しで行うものではなく、設計/実装時に断定的に決定するものです。 * REST 機能がクラス継承によって取得される場合、開発者が能動的にアクセスが必要な人とアクセス条件を指定するまでリソースにアクセスできない動作をデフォルトとします。 * SQL 関連機能の実装を標準化することで、SQL インジェクション攻撃の標的を最小にします。 * 設計には OWASP API トップ 10(参照: [https://owasp.org/www-project-api-security](https://owasp.org/www-project-api-security/))を考慮する必要があります。 ## 持続可能性 アプリケーション設計の統一性はエンタープライズアプリケーションエコシステムにおいて強力なツールです。 * 多様なハンドコーディングされた REST API と実装を蓄積するのではなく、一連のポートフォリオを通じて外観が似通った REST API を作成しなければなりません。 この統一性により、次が達成されなければなりません。 * 共通のデバッグ手法 * 共通のテスト手法 * REST API に接続するための共通の UI 手法 * 複数の API にアクセスする複合アプリケーションの開発の簡便性 * REST を介して提供または受け入れられるオブジェクト表現のエンドポイントと形式は、エンドポイントに基づいて API ドキュメント(Swagger/OpenAPI)を自動的に生成できるほど十分に定義されている必要があります。 * 業界標準の API ドキュメントに基づき、サードパーティまたは業界標準のツールを使用して、クライアントコードの一部(REST 表現に対応する typescript クラスなど)を生成できるようにします。
お知らせ
Mihoko Iijima · 2021年7月7日

テクノロジーボーナス詳細:第 13 回 InterSystems IRIS プログラミングコンテスト(AI)

開発者の皆さん、こんにちは! 第 13 回 InterSystems IRIS プログラミングコンテスト(AI編)のテクノロジーボーナス🍆が発表されました! ボーナスポイントを獲得して 💰賞金💰 をゲットしてください! IntegratedML の利用 - 4 ポイント AI/ML ソリューションに InterSystems IntegratedML を利用すると4ポイント獲得できます。 ご利用いただくときは、IRISのバージョンが2021.1以上であることをご確認ください。ZPMパッケージマネージャを含めた最新のMLイメージは以下イメージ名です。 intersystemsdc/iris-ml-community:2021.1.0.215.0-zpm intersystemsdc/irishealth-ml-community:2021.1.0.215.0-zpm R Gateway and Python gateway の利用 - 4 ポイント InterSystems IRIS 2021リリースには、R ゲートウェイと Python ゲートウェイの 2 つの新機能が含まれています。 Rゲートウェイの使用方法に関するテンプレートを公開しています。使い方の簡単なデモはこちらのビデオをご覧ください。 Embedded Python の利用 - 4 ポイント Embedded Python は、InterSystems IRIS の将来のバージョンでリリースされる予定の新機能です。 Embedded Python は、IRIS のクラスを使用して、IRIS の中から Python を使用/実行できるオプションを提供します。 簡単なデモは、こちらのビデオでご紹介しています。 Enbedded Python のアーリーアクセスプログラム(EAP)にご参加いただいた方に Enbedded Python が利用できるイメージをご提供しています。 ご興味ある方は、python-interest@intersystems.com までぜひご連絡ください。 この Gitリポジトリでは、ZPM でデプロイできる Embedded Python のテンプレートの使用方法をご紹介しています。このテンプレートで Pull する IRIS のイメージは 2021.1 ではないため、アーリーアクセスプログラム(EAP)から入手したイメージに変更してからご利用ください。 PMML の利用 - 4 ポイント PMML(Predictive Modelling Markup Language)は、InterSystems IRIS で AI/ML ソリューションを構築するために使用できます。詳細は、ドキュメントをご参照ください。 PMMLの使用方法については、Open Exchange の例もご参照ください。 Docker コンテナの利用 - 2 ポイント アプリケーションを docker コンテナで実行されている InterSystems IRIS でご応募いただくと「Docker コンテナ」ボーナスを獲得できます。 こちらに、シンプルなテンプレートをご用意しています。シンプルなテンプレートを git clone し、コンテナを開始したらすぐに開発を始めていただくことができます。ぜひご利用ください。 ZPM Package deployment - 2 ポイント フルスタックアプリケーションの ZPM(ObjectScript Package Manager) パッケージをビルドして公開し、一緒にデプロイできるようにするとボーナスポイントを獲得できます。 公開されている ZPM パッケージは、以下のコマンドでインストールできます。 zpm "install your-multi-model-solution" 上記コマンドを実行するためには、ZPM クライアントのインストールが必要です。 ZPMクライアントについてはドキュメントをご参照ください。 Unit テスト - 2 ポイント InterSystems IRIS コードの Unit テストを実施したアプリケーションには、ボーナスが付与されます。 ObjectScript Unit テストの詳細については、ドキュメントおよび開発者コミュニティの記事をご参照ください。 あなたのアプリケーションのオンラインデモを作成する - 3 ポイント オンラインデモとしてアプリケーションをクラウドにプロビジョニングすると、さらに3ポイント獲得できます。 開発環境テンプレートやその他のデプロイメントオプションを使用することができます。サンプルアプリケーションはこちらからアクセスできます。 サンプルアプリケーションの使用方法についてはビデオをご参照ください。 Code quality analysis with zero bugs - 2 ポイント コード管理のために、Githubアクションに code quality を含め(例)、ObjectScript のバグを 0 にした場合にボーナスポイントを獲得できます。 開発者コミュニティに記事を Upする - 2 ポイント 作成したアプリケーション/プロジェクトの概要を開発者コミュニティの記事として投稿した場合、1 記事に対して 2 ポイント獲得できます。 また、他言語へ記事を翻訳し、掲載した場合も同様にポイントを獲得できます。 Video on YouTube - 3 ポイント 開発した作品の動画を作成し、YouTube に掲載した場合、3ポイント獲得できます。 ※ ボーナスポイントについては、変更される可能性もあります。予めご了承ください。
お知らせ
Mihoko Iijima · 2021年7月19日

★ 投票開始!★第13回 InterSystems IRIS プログラミングコンテスト(AI)

開発者の皆さん、こんにちは! 今日から、第13回 InterSystems IRIS プログラミングコンテスト(AI) の投票が始まりました! これだ 🔥 と思う作品への投票、よろしくお願いします! 🔥 投票はこちらから! 🔥 投票方法については、以下の通りです。 Experts nomination: 今回は、インターシステムズの経験豊富な審査員がベストアプリを選び、Expert Nominationで賞品をノミネートします。 ⭐️ @Evgeny.Shvarov, Developer Ecosystem Manager⭐️ @Raj.Singh5479, Product Manager - Developer Experience⭐️ @Robert.Kuszewski, Product Manager - Developer Experience⭐️ @Thomas.Dyar, Product Specialist - Machine Learning⭐️ @Aleksandar.Kovacevic, Sales Engineer⭐️ @Eduard.Lebedyuk, Sales Engineer⭐️ @Sergey.Lukyanchikov, Sales Engineer⭐️ @Guillaume.Rongier7183, , Sales Engineer Community nomination: 開発者コミュニティのメンバーは、お好みのアプリケーションに対して1位~3位を指定しながら投票できます。 開発者コミュニティでのあなたの状態 順位 1位 2位 3位 開発者コミュニティに記事を掲載したり、OpenExchange(OEX)にアプリをアップロードしたことがある方 9点 6点 3点 開発者コミュニティに1つの記事を掲載した、または 1アプリケーションを OEX にアップロードしたことがある方 6点 4点 2点 開発者コミュニティへコメントや質問を投稿したことがある方 3点 2点 1点 エキスパートレベル 順位 1位 2位 3位 グローバルマスターズの VIP レベル または、InterSystems Product Managers 15点 10点 5点 グローバルマスターズの Ambassador レベル 12点 8点 4点 グローバルマスターズの Expert レベル または DC モデレーター 9点 6点 3点 グローバルマスターズの Specialist レベル 6点 4点 2点 グローバルマスターズの Advocate レベル または インターシステムズの従業員 3点 2点 1点 今回も「ブラインド投票」します! 各応募作品への投票数は、誰にも分らないようになっています。1日1回、この記事のコメント欄に投票数を公開する予定です。 コンテストページの表示順は、コンテストに応募した時期が早ければ早いほど、上位に表示されます。 メモ:新しいコメントの通知を受けるために、この投稿を購読することをお忘れなく!(記事末尾の ベルのアイコンをクリックするだけ!) 投票に参加するには? Open Exchange へのサインインします(開発者コミュニティのアカウントを使用してください)。 投票ボタンは、開発者コミュニティ内で、質問/回答/記事の掲載/投稿に対するコメント など 記載いただいた方に対して有効になります。 ボタンが押せない場合は、コミュニティへのコメントやオリジナルの記事など、書き込みお願いします!詳細は、こちらの記事をご参照ください。 気が変わった場合は? - 選択をキャンセルして別のアプリケーションに投票できます。 世界の IRIS 開発者が作成した ✨素敵なアプリ✨ が公開されています!ぜひ 🔥これだ🔥 と思う作品に投票お願いします! メモ:コンテストへ応募された作品は、投票週間中にバグを修正したり、アプリケーションを改良したりすることができますので、アプリケーションのリリースを見逃さずに購読してください。
お知らせ
Mihoko Iijima · 2021年7月26日

テクノロジーボーナスの付与結果:第 13 回 InterSystems IRIS プログラミングコンテスト(AI)

開発者の皆さん、こんにちは! 第 13 回 InterSystems IRIS プログラミングコンテスト(AI)にご応募いただいた作品に対して加点されたテクノロジーボーナスをご紹介します! Project IntegratedML Python/R Gateway Embedded Python PMML Docker ZPM Unit Testing Online Demo Code Quality Article on DC Video on YouTube Total Bonus Nominal 4 4 4 4 2 2 2 3 2 2 3 29 fhir-integratedml-example 4 2 2 2 10 ESKLP 4 2 3 9 cryptocurrency-rate-forecasting 4 2 6 iris_satellite_plantation 4 2 6
お知らせ
Mihoko Iijima · 2021年7月26日

★受賞者発表!★第 13 回 InterSystems IRIS プログラミングコンテスト(AI)

開発者の皆さん、こんにちは! 第 13 回 InterSystems IRIS プログラミングコンテスト(AI)への応募、投票が全て終了しました。コンテストへのご参加、またご興味お持ちいただきありがとうございました。 今回のお知らせでは、見事受賞されたアプリケーションと開発者の方々を発表します! 🏆 Experts Nomination - 特別に選ばれた審査員から最も多くの票を獲得したアプリケーションに贈られます。 🥇 1位 - $4,000 は、 fhir-integratedml-example を開発された @José.Pereira さんと @Henrique.GonçalvesDias さんに贈られました! 🥈 2位 - $2,000 は、ESKLP を開発された @Aleksandr.Kalinin6636 さんに贈られました! 🥉 3位 - $1,000 は、 cryptocurrency-rate-forecasting を開発された @Oleh.Dontsov さんに贈られました! 🏆 Community Nomination - 最も多くの票を獲得したアプリケーションに贈られます。 🥇 1位 - $1,000 は、 fhir-integratedml-example を開発された @José.Pereira さんと @Henrique.GonçalvesDias さんに贈られました! 🥈 2位 - $500 は、 cryptocurrency-rate-forecasting を開発された @Oleh.Dontsov さんに贈られました! 🥉 3位 - $250 は、 iris_satellite_plantation を開発された @Renato.Banzai さんに贈られました! 🎊 受賞者の皆様、おめでとうございます!👏 今回も、コンテストにご注目いただきありがとうございました!
記事
Toshihiko Minamoto · 2022年4月19日

Raspberry Pi Raspberry で InterSystems Iris Fhirserver を実行する

### Raspberry を FHIRserver として実行する 一年ほど前、![](/sites/default/files/inline/images/afbeelding1.png) Raspberry Pi での HAPI FHIRserver のインストールに関する記事を書きました。 当時、FHIR 標準の基本しか知らず、FHIR サーバーの背後にあるテクノロジーや Raspberry についてほとんど知りませんした。 試して、失敗して、諦めて、もう一度試すことで、たくさんのことを学びました。1 年以上が経ち、いまだに「忍耐力に長けるアマチュア」ではありますが、その間、FHIR のフル環境を Raspberry で構築し、HTML/JavaScript/jQuery/Bootstrap によるアプリケーションや PHP アプリケーションを多数作成してきました。 Raspberry の認証サーバーや承認サーバーについてもいくらか経験し、SMART on FHIRを使った実験も行いました。 最後の機能しなかったバージョンと、明らかに私が作成した成功バージョンの違いが判らないまま動作することもありましたが、作業や実験のほとんどは動作しました。 今でも驚いています。 振り返ると、システム開発について適切に学習しておくべきだったと思います(私は山林学専攻で卒業し、現在はその分野を中心にボランティア活動を行っています。 まぁ、本題からは外れてしまいますが)。 Raspberry Pi は実験には十分ですが、本稼働には適していないことに注意してください。 したがって、信頼性、継続性、セキュリティ、プライバシーといった要素が必要である、または期待されているヘルスケアなどの分野で、Raspberry を本稼働システムとして使用しないでください。 実験目的では完璧で安価なコンピュータであり、幾度も私の期待を超えていますが、「産業耐久性」に欠けています。 ### InterSystems FHIRserver 入手しやすさと、非常に早い段階で結果を得られたことを理由に、当時 HAPI FHIR を選択しました。 以前の同僚で、現在では InterSystems に勤めている人から、InterSystems の FHIRserver でも試用することをすでに提案されていました。 InterSystems については非常によく知っており(というより、「i.know」と言うべきでしょうか 😉)、面白そうに思えましたが、当時、一年以上前は、ARM プロセッサ向けに適したバージョンの Iris は存在していませんでした(Raspberry は ARM で動作します)。 それとは別に、Iris の Community バージョンは Docker コンテナとして配布されていましたが、私には Docker に関する知識がまったくありませんでした。 ### Raspbian から Ubuntu へ それから 1 年が過ぎました。 現在では、さらに強力になった新しい Raspberry Pi が登場しています(在庫のある限り…)。 新しい Raspberry 4 は、Raspberry 3 と同様に、64 ビット Unix をサポートしています。 IRIS Community バージョンは ARM にも対応しており、コンテナと Docker についてもいくらかさらに学習しました。 こういった改善すべてを基に、昨年の年末にオランダで施行されたわけのわからない「ロックダウン」が、IRIS Community バージョンを Raspberry Pi で実行させる新しい実験を開始するチャンスとなりました。 振り返ると、これは非常に簡単なことでした。 実際、注意すべき点は 3 つしかありません。 1. 64 ビットをサポートする Raspberry が必要です。 つまり、Raspberry 3 または 4 が必要となります。 2. (64 ビット)Raspbian ではうまくいきませんでした(ちなみに非常に新しいものです)。 しかし、64 ビット Ubuntu では成功しました。 3. InterSystems FHIRserver は、HAPI FHIRserver よりも FHIR 呼び出しに関して厳格さが増しているようです。 これについては別の機会に説明しますが、これを悪いことだとは思っていません。 (ヘルス)ケア環境における中央リポジトリであるため、標準について厳格である必要があるためです。そうでなければ、「ガベージイン・ガベージアウト」になってしまうでしょう。 それでも、HAPI FHIRserver でうまく実行していたアプリケーションが IRIS では失敗することを理解するのには、いくらか時間がかかりました。 ネタバレ注意: 問題は私のアプリケーションにありました。 それにしても、Raspberry Pi のような、100 ユーロもかからない小さなコンピュータで、InterSystems IRIS フルプラットフォームが実行し、管理ポータル、Ensemble、Caché、そして FHIRserver が備わっているのを目の当たりにするのは、楽しく本当に価値以上の価値があります。 以降では、そこに至るまでに私が行ったことを、順を追って説明します。 Ubuntu の歴史、Docker の背後の意ある哲学など、長々とした話にはなりません。 そちらの方に関心のある方は、インターネットをご覧ください。 ここでは「楽しく進められるフロー」に焦点を当て、どこで初めて間違ったのかについて言及する場合にのみ、注釈したいと思います。 ### InterSystems FHIRserver のインストール #### フェーズ 1: Ubuntu 64 ビット 1. _SD カードをフォーマット_し、そこに ARM プロセッサ用 64 ビット Ubuntu を配置します。 私の場合、圧縮バージョンの名前は「ubuntu-20.04.3-preinstalled-server-arm64+raspi.img.xz」でした。これは http://cdimage.ubuntu.com にあります。 (もちろん、SD カードに置く前に、.img ファイルを解凍する必要があります!) RaspberryPi-imager は、誤ったバージョンを提供するため、使用しないでください。 私は Win32DiskImager を使用しました。 2. _新しいイメージで Raspberry を開始_します。 ubuntu-account のパスワードを変更します(そして記憶しましょう!)。 あくまでも ubuntu-account のパスワードです。 3. _この時点で Raspberry は Ubuntu で実行していますが、まだ準備はできていません_。 以下を見てください。 ![](/sites/default/files/inline/images/afbeelding2_0.png) この Ubuntu-version はまだ 32 ビットになっています! 今すぐこれを直しましょう。 1. Pi にログインします。 2. **sudo rpi-update** 3. **sudo reboot now** 5. **sudo copy /boot/config.txt /boot/config-ok.txt**(検出したエラーを逃してしまった場合に備えます) 6. **sudo nano /boot/config.txt**   [pi4] の下に次のテキストを追加します: arm_64bit=1 8. boot/config.txt を保存します。(nano で: <ctrl>O ) 9. nano を終了します。(<ctrl>X) 10. **sudo reboot now** これで、64 ビットで実行するようになりました。 自分で確認してみましょう: ![](/sites/default/files/inline/images/afbeelding4.png) Pi のIP アドレスをメモし(**sudo hostname -I**。I は大文字のアイです)、Ubuntu では SSH はデフォルトで有効になっているため、別の場所に保管しておきます。 #### フェーズ 2: Docker 1. **sudo curl -fsSL https://get.docker.com -o get-docker.sh** 2. **sudo sh get-docker.sh**  しばらくすると、これは、「non-priviledged user」として使用することに関する Docker の詳細な通知が得られます。 3. **sudo usermod -aG docker $USER** 4. ログオフしてから、もう一度ログインします。 5. **docker container run hello-world** Docker はシステム上の「hello-world」イメージを探すようになりました。 見つからない場合は、Docker リポジトリからダウンロードします。 その後、Docker はイメージを Pi 上のコンテナに配置し、「hello-world」イメージを開始します。 Docker の別のテキストブロックで、「Hello from Docker」のウェルカムメッセージと共に確認できます。 #### フェーズ 3: InterSystems の IRIS FHIRserver の Docker イメージ 1.  以下のコマンドを一度に発行します。 **sudo docker run --name my-iris -d --publish 9091:1972 --publish 9092:52773 containers.intersystems.com/intersystems/irishealth-community-arm64** 多数のイベントが順に発生します。 * Docker は Irishealthから「community edition」を取得し、それをローカルの Docker リポジトリに配置します。 * Docker は「my-iris」という Docker コンテナで Community エディションを起動します。 * Docker はコンテナで実行している IRIS のポート 1972 を Raspberry のポート 9091 にマッピングします。 * 同じパターンに従って、IRIS のポート 52773(コンテナ内)は Raspberry のポート 9092 になります。 以下のようにすると、何が起きたのかを確認できます。 2. **sudo docker container ls**  ただし、これを確認するには別のはるかに印象的な方法があります。 #### フェーズ 4: InterSystems IRIS for Health Fhirserver の起動 ネットワークで Web ブラウザを起動します。英語版 PC の場合は次の場所に移動してください。     _ <Raspberry の IP アドレス>_:9092/csp/sys/UtilHome.csp_ . IRIShealth の管理ポータルが表示されます。 このポータルは、自動的にPC の言語設定に調整されます。 標準アカウントは _SYSTEM(先頭のアンダースコアを含む)で、初回パスワードは SYS(アンダースコアはありません)です。 IRIS からすぐにパスワードを変更するように求められます。 これで、次に記載されている指示に従って IRIS for Health FHIRserver を構成し、起動できるようになりました。https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.UI.Page.cls?KEY=HXFHIR_server_install 「Foundation」を構成して「Endpoint」(FHIR 3 または 4)を定義する必要があります。 「Endpoint」は、FHIRserver にアクセスできる URI となります。 私の場合は、_http://192.168.1.29:9092/csp/healthshare/fhironpi/fhir/r4/Patient_ にある「Patient」リソースです(外部からはアクセスできません!)。 ### まとめ 手間を取る価値があったでしょうか? そのとおり!それ以上の価値があります。 まず、それほどの手間はありませんでした。 Raspbian ではうまくいきませんでしたが、それは簡単に解決しました。 そして、IRIS-for-health プラットフォームを Raspberry Pi のようなデバイスで実行できるのは素晴らしいことです。 ダッシュボード(DeepSee)、データ変換ツール、Ensemble(Enterprise Service Bus とその他多数のツール)、CSP ページ、および Caché(多次元データベース)すべてを実験できるようですし、自然言語処理の I.know も管理ポータルに表示されています。 IRIS-for-health プラットフォームには、FHIRserver 単体よりもはるかに多くの機能が備わっており、1 つの記事ではとても説明しきれません。 私個人としては、ほぼリリース直後から Ensemble を使用してきましたし(アーキテクトとして)、それとは別に、IRIS-for-health の起源は 20 世紀後半だったため、思い入れがあります。 ヘルスケアアプリケーション向け MUMPS 開発環境(MUMPS/マンプス: マサチューセッツ総合病院ユーティリティマルチプログラミングシステム)は、ほとんどが Digital Corp の Vax コンピュータシステムで実行されていたのですが、私の IT キャリアが始まったのも同時期なのです。 MUMPS、Caché、Ensemble、そして今日には IRIS-for-Health プラットフォームの安定性は非常に高く、必要なサポートとメンテナンスは比較的控え目です。 InterSystems 製品のドキュメントは広範に用意されており、簡単に見つけることができます。 IRIS と FHIRserver での実験をさらに続ていく予定です。最低でも後 1 つ、FHIR 標準への厳格な準拠に対する私の「奮闘」に関する記事を絶対に公開いたします! 健康を大切に、思考を繰り返して、実験し続けましょう! Bob
記事
Toshihiko Minamoto · 2022年12月21日

Kubeless を使って FasS モードで InterSystems IRIS を実行する

FaaS(Function as a Service)は、アプリケーションの機能を開発、実行、および管理するプラットフォームを提供するクラウドコンピューティングサービスのカテゴリです。アプリの開発と起動に一般的に関連するインフラストラクチャの複雑な構築や保守がありません。 このモデルに従ったアプリケーションの構築は、「サーバーレス」アーキテクチャを実現する方法の 1 つであり、通常、マイクロサービスアプリケーションを構築する際に使用されています。 Wikipedia FaaS は、クラウドでワークロードを実行するための非常に一般的なアプローチで、開発者はコードを書くことに専念することができます。 この記事では、InterSystems IRIS のメソッドを FaaS 方式でデプロイする方法を説明します。 ## Kubernetes をインストール まず、**Kubernetes 1.16** をインストールします。 多数のガイドが用意されているため、ここには書き写しませんが、私は [minicube](https://minikube.sigs.k8s.io/docs/handbook/config/) を使用しています。 Kubernetes の実行に minicube を使用する場合、以下のコマンドを実行するだけです。 minikube start --kubernetes-version=v1.16.1 ##   ## Kubeless をインストール 次に、[Kubeless](https://github.com/vmware-archive/kubeless) をインストールします。 Kubeless は Kubernetes ネイティブのサーバーレスフレームワークで、基盤のインフラストラクチャの構築を気にすることなく、小さなコードをデプロイできます。 Kubernetes リソースを利用して、自動スケール、API ルーティング、監視、トラブルシューティングなどの機能を提供します。 kubectl create ns kubeless kubectl create -f https://github.com/kubeless/kubeless/releases/download/v1.0.8/kubeless-v1.0.8.yaml kubectl get pods -n kubeless 出力は以下のようになります。 > NAME                                          READY   STATUS    RESTARTS   AGE > kubeless-controller-manager-666ffb749-26vhh   3/3     Running   0          83s また、Kubeless クライアントをインストールする必要もあります(kubectl のあるインスタンスにインストール)。 これは[こちら](https://github.com/vmware-archive/kubeless/releases)で入手できます。 Linux でのインストールは、以下のように単純です。 sudo install kubeless /usr/local/bin/kubeless   ## Kubeless をテスト まず、単純な Python 関数をデプロイして、Kubeless が動作することを確認しましょう。 _test.py_ を作成します。 def hello(event, context): return event['data'] 関数環境についての詳細は、[こちらのドキュメント](https://github.com/vmware-archive/kubeless/blob/master/docs/kubeless-functions.md)をお読みください。一般的に関数は、以下のデータを伴うイベントとコンテキストの 2 つの引数を受け入れます。 event: data: # Event data foo: "bar" # The data is parsed as JSON when required event-id: "2ebb072eb24264f55b3fff" # Event ID event-type: "application/json" # Event content type event-time: "2009-11-10 23:00:00 +0000 UTC" # Timestamp of the event source event-namespace: "kafkatriggers.kubeless.io" # Event emitter extensions: # Optional parameters request: ... # Reference to the request received response: ... # Reference to the response to send # (specific properties will depend on the function language) context: function-name: "pubsub-nodejs" timeout: "180" runtime: "nodejs6" memory-limit: "128M"    次に、関数とランタイムを含むファイルを指定して、hello 関数をデプロイします。 kubeless function deploy hello --runtime python3.7 --from-file test.py --handler test.hello kubeless function ls hello では、テストしましょう。 kubeless function call hello --data 'Hello world!' 答えとして _Hello World!_ を受け取るはずです。   ## IRIS 構成を追加 次に、InterSystems IRIS 関数ハンドラーを追加する必要があります。編集する kubeless 構成を開きましょう。 kubeless get-server-config kubectl get -n kubeless configmaps -o yaml > configmaps.yaml kubectl edit -n kubeless configmaps 以下のエントリを runtime-images 配列に追加して保存します。 {"ID": "iris","depName": "","fileNameSuffix": ".cls","versions": [{"images": [{"image": "eduard93/kubeless-iris-runtime:latest","phase": "runtime"}],"name": "iris2022.1","version": "2022.1"}]} 変更が適用されるように、Kubeless コントローラーを再起動します。 kubectl delete pod -n kubeless -l kubeless=controller   ## IRIS 関数 CRD を構築して公開 では、InterSystems IRIS に最初の関数を書き込みましょう。 Class User.Test { ClassMethod hi(event, context) As %Status { if $isObject(event) { write event.Text + event.Text } else { write "HELLO FROM IRIS" } quit $$$OK } } 次に、関数 CRD を構築する必要があります。 以下は、テンプレートです。   function.yaml apiVersion: kubeless.io/v1beta1 kind: Function metadata:   name: !name!   namespace: default spec:   runtime: iris2022.1   timeout: "180"   handler: !handler!   deps: ""   function-content-type: text   deployment:     spec:       template:         spec:           securityContext:             runAsUser: 51773             runAsGroup: 51773   function: | そして、以下の内容を入力します。 * _name_: 関数名(kubeless) * _handler_: class.name_method(InterSystems IRIS) * _function の本体_: 最後に追加します(タブを忘れずに!) すると、CRD は以下のようになります。   function_demo.yaml apiVersion: kubeless.io/v1beta1 kind: Function metadata: name: iris-demo namespace: default spec: runtime: iris2022.1 timeout: "180" handler: User_Test.hi deps: "" function-content-type: text deployment: spec: template: spec: securityContext: runAsUser: 51773 runAsGroup: 51773 function: | Class User.Test { ClassMethod hi(event, context) As %Status { if $isObject(event) { write event.Text + event.Text } else { write "HELLO FROM IRIS" } quit $$$OK } } これは簡単に自動化できます。 Linux では以下を実行します。 sed 's/!name!/iris-demo/; s/!handler!/User_Test.hi/' function.yaml > function_demo.yaml sed 's/^/ /' User.Test.cls >> function_demo.yaml Windows では以下は実行します(PowerShell)。 Get-Content function.yaml | ForEach-Object { $_ -replace "!handler!", "User_Test.hi" -replace "!name!", "iris-demo" } | Set-Content function_demo.yaml " " + [string]((Get-Content User.Test.cls) -join "`r`n ") | Add-Content function_demo.yaml Kubeless にこの CRD を公開する必要があります。 kubectl apply -f function_demo.yaml   ## IRIS 関数をテスト まず、関数がデプロイされて準備が完了していることを確認しましょう(初回時は、準備に数分かかることがあります)。 kubeless function ls 次にこれを呼び出します。 kubeless function call iris-demo --data '{"Text":123}' Windows を使用している場合は、以下のように関数を呼び出します(エスケープ付きの二重引用符を使ったその他すべての呼び出しでも共通です)。 kubeless function call iris-demo --data '{\"Text\":123}' どちらで操作しているかに関わらず、_123_ が数値であるため、レスポンスは _456_ になります。   ## HTTP アクセス Kubeless には HTTP アクセスも提供されています。 これをテストするには、以下の kubectl proxy コマンドを使用します。 kubectl proxy -p 8081 次に、このリクエストを任意の REST API クライアントを使って送信します。 GET http://localhost:8081/api/v1/namespaces/default/services/iris-demo:http-function-port/proxy/ {"Text":111} Postman では以下のように表示されます。 ![](/sites/default/files/inline/images/images/image(3529).png)   次に、これをインターネットに公開しましょう。 これには 2 つのアプローチがあります。 イングレスを[こちら](https://github.com/vmware-archive/kubeless/blob/master/docs/http-triggers.md)に説明されているとおりに構成するのがお勧めです。 また、関数サービスをパッチすることができます。 kubectl get svc kubectl patch svc iris-demo -p '{"spec": {"type": "LoadBalancer"}}' kubectl get svc   ## クリーンアップ デプロイした関数呼び出しを削除するには、以下のようにします。 kubectl delete -f function_demo.yaml   ## まとめ これは紛れもなくコンセプトの証明であり、本番級のソリューションではありませんが、このアプローチでは、サーバーレスの FaaS アプローチを使って、InterSystems IRIS ワークロードを実行できることが分かりました。   ## リンク * [Minicube](https://minikube.sigs.k8s.io/docs/handbook/config/) * [Kubeless](https://github.com/vmware-archive/kubeless) * [InterSystems IRIS ランタイム](https://github.com/eduard93/kubeless-iris-runtime)
お知らせ
Mihoko Iijima · 2022年9月22日

第1回 InterSystems Idea-A-Thon(アイデアソン)開催!

開発者の皆様、こんにちは! 新しいタイプのコンテスト「アイデアコンテスト」を開催します!​​​ 💡 InterSystems Idea-A-Thon(アイデアソン) 💡 9月26日~10月16日の期間に、InterSystems 製品やサービスに関連するアイデアをご提案いただくコンテストで、必ず賞品がもらえます! そして、どなたでもご参加いただけます! >> あたなの素敵なアイデアを投稿してください! << ルール InterSystems Idea-A-Thon は、InterSystems アイデア フィードバックポータル で開催され、製品強化の要望や弊社サービス(ドキュメント、開発者コミュニティ、グローバルマスターズなど)に関するアイデアを提出したり、気に入った内容に投票することができます。 このコンテストでは、皆さんのアイデアをアイデア フィードバックポータル上で共有し、ほかの方のアイデアに投票することができます。 コンテストへ参加するには、InterSystems アイデアポータル でアイデアを投稿するだけです! 投稿の要件: InterSystems アイデアポータル で登録したユーザが Idea-A-Thon 期間中に作成したアイデアであること(InterSystemsのSSOでログインできます) 他の既存アイデアの一部ではないこと(新しいアイデアのみが許可されます) InterSystems 製品やサービスの既存の機能の説明ではないこと タイトルに加え、アイデアの本質に関する詳細かつ明確な説明が含まれていること 英語で投稿すること エキスパートにより、有意義であると認められる内容であること 対象となるすべてのアイデアは、InterSystems アイデアポータル上で特別な "Idea-A-Thon" ステータスを持ち「Idea-A-Thon Ideas」で簡単に確認することができます。 対象者:誰でも参加できます! (InterSystems 社員も含め)コミュニティメンバーの皆様、ぜひ、Idea-A-Thon にご参加ください! 賞品 1. 参加賞 – アイデアを投稿してくださった方全員に差し上げます! 🎁 InterSystems Tシャツ 2. Expert Award – InterSystemsのエキスパートチームより選ばれた勝者に贈られます。 🎁 LEGO Star Wars™ R2-D2™ / BOSE Sleepbuds™ II / BOSE SoundLink Flex Bluetooth® speaker bundle 3. Community Award – 最も投票されたアイデアを投稿された方に贈られます。 🎁 LEGO Star Wars™ R2-D2™ / BOSE Sleepbuds™ II / BOSE SoundLink Flex Bluetooth® speaker bundle !重要! InterSystems社員は、参加賞のみ獲得することができます。Expert Award と Community Award は、InterSystems社員以外のコミュニティのメンバーのみが受賞することができます。 コンテストの期間: 📝 2022年9月26日~10月16日: アイデアの投稿と投票期間 上記期間中にアイデアを投稿してください。アイデアポータルに登録した方は、公開されたアイデアに投票することができます!この投票は、Community award としてカウントされます。 メモ:アイデアを早く公開すればするほど、票を集める時間が長くなります。 ということで、 あなたのアイデアをぜひInterSystems アイデアポータル に投稿し、商品をゲットしてください!そして、あなたのアイデアの "Idea-A-Thon" ステータスの更新にご注目ください! Good luck 👍 《重要なお知らせ》すべての賞品は、在庫状況や発送方法によって変更となる可能性があります。一部の商品は、特定の国への海外発送ができない場合があります。クリミア、ロシア、ベラルーシ、イラン、北朝鮮、シリア、その他の米国禁輸国の居住者には賞品をお届けすることができません。賞品が入手できない場合、代替品を提供する可能性があることを予めご了承ください。
お知らせ
Mihoko Iijima · 2022年10月11日

InterSystems IRIS for Health コンテスト: FHIR for Women's Health 開催!

開発者の皆さん、こんにちは! 次のコンテストの詳細が決定しましたのでお知らせします📣 今回は、FHIRの知識を共有するためのコンテストを企画しています。 🏆 InterSystems IRIS for Health コンテスト: FHIR for Women's Health 🏆 InterSystems FHIR または、InterSystems Healthcare Interoperability を使用したアプリケーションを作成してご応募ください。 期間: 2022年11月14日~12月4日 賞金: $13,500! >> 応募はこちらから! << コンテストのテーマ 💡 Healthcare Interoperability ソリューション – FHIR 💡 ​​​Interoperability FHIRソリューションまたは、Healthcare Interoperability ソリューション、または、InterSystems IRIS for Health、Health Connect、FHIR サーバを使用した Interoperability ソリューションの開発や保守を支援するソリューションを開発してください。 また、グローバルイシューの1つの解決にチャレンジいただきたいと思います。今回は、「Women's Health」についてがテーマです。 以下の課題解決を目指したソリューションの構築を行っていただくと、ボーナスポイントを獲得できます。 妊娠中の患者が、妊娠中の症状の傾向を把握できたり、パートナーアプリケーションに対して症状や妊娠中の日誌を共有するような統合機能が含まれるソリューション 女性のデジタルヘルスに関連するFHIRデータセット(妊娠追跡・モニタリング、子育て支援、更年期患者教育)が含まれるソリューション 要件: 応募可能なアプリケーション Open Exchange アプリケーションの新規作成、または既存アプリケーションであっても大幅に改善されているものであればご応募いただけます。 コミュニティの担当チームは、コンテストへの応募を承認する前に申請された全アプリケーションをレビューします。 全てのアプリケーションは、IRIS for Health Community Edition か、Health Connect Cloud で動作する必要があります。 アプリケーションはオープンソースであり、GitHubで公開されている必要があります。 アプリケーションの README ファイルは、英語で記述してください(日本語で記述したものがあればそのまま掲載いただき、英文の追記をお願いします。翻訳アプリを使用しますが翻訳をお手伝いすることもできますのでお気軽にお知らせください!)。また、インストール手順や、アプリケーションがどのように動作するかの説明、またはビデオデモを含めてください 🆕 入賞特典: 1. Experts Nomination – 審査員から多く票を集めたアプリケーションには、以下の賞金が贈られます 🥇 1位 - $5,000 🥈 2位 - $3,000 🥉 3位 - $1,500 🏅 4位 - $750 🏅 5位 - $500 🌟 6-10位 - $100 2. Community winners – 開発者コミュニティで多く票を集めたソリューションには、以下の賞金が贈られます。 🥇 1位 - $1,000 🥈 2位 - $750 🥉 3位 - $500 複数の参加者が同数の票を獲得した場合、全参加者が勝者となり賞金は勝者間で分配されます。 スケジュール 🛠 アプリケーション開発と応募期間: 2022年11月14日 (00:00 EST): コンテスト開始! 2022年11月27日 (23:59 EST): 応募締め切り日 ✅ 投票期間: 2022年11月28日 (00:00 EST): 投票開始! 2022年12月4日 (23:59 EST): 投票締め切り日 応募、投票期間中、アップロードしたアプリケーションは改良できます。 参加資格: どなたでもご参加いただけます!(InterSystems 開発者コミュニティのアカウントを作成するだけでご応募いただけます) 👥 開発者がチームを組んで共同でアプリケーションを作成し、応募することもできます! 1チーム 2~5名 までご参加いただけます。 チームでご応募いただく場合は、アプリケーションの README にチームメンバー名の記載をお忘れなく!!(開発者コミュニティのプロファイルのリンクもお願いします) Helpful Resources: ✓サンプルアプリケーション: FHIR Server Template iris-healthtoolkit-template interoperability-embedded-python FHIR HL7 SQL Demo FHIR DropBox HL7 and SMS Interoperability Demo IrisHealth Ensdemo UnitTest DTL HL7 Healthcare HL7 XML FHIR Interoperability Examples FHIR-Orga-dt FHIR Peudoanonimisation Proxy FHIR-client-java FHIR-client-.net FHIR-client-python FHIR related apps on Open Exchange HL7 applications on Open Exchange FHIR R4 リソースリポジトリを簡単にお試しいただける開発環境テンプレートのご紹介 ✓ オンラインコース: FHIR Integrations HL7 Integrations Learn FHIR for Software Developers Exploring FHIR Resource APIs Using InterSystems IRIS for Health to Reduce Readmissions Connecting Devices to InterSystems IRIS for Health Monitoring Oxygen Saturation in Infants FHIR Integration QuickStart ✓ ビデオ 6 Rapid FHIR Questions SMART on FHIR: The Basics Developing with FHIR - REST APIs FHIR in InterSystems IRIS for Health FHIR API Management Searching for FHIR Resources in IRIS for Health 【InterSystems Japan Virtual Summit 2021】HL7 FHIRによるインターオペラビリティ(YouTubeプレイリスト) REST クライアントから FHIR R4 リソースリポジトリにアクセスする例 ✓ For beginners with IRIS: Build a Server-Side Application with InterSystems IRIS Learning Path for beginners 【はじめての InterSystems IRIS】セルフラーニングビデオ 索引 【はじめてのInterSystems IRIS】Interoperability(相互運用性)を使ってみよう! ✓ For beginners with ObjectScript Package Manager (ZPM): How to Build, Test and Publish ZPM Package with REST Application for InterSystems IRIS Package First Development Approach with InterSystems IRIS and ZPM ✓ コンテストへの応募方法 Need Help? ご質問がある場合は、この投稿へコメントいただくか、InterSystems の Discord server チャンネルにご参加ください! 皆様からのアプリケーションのご応募、お待ちしております!👍 ❗️ コンテストに参加された場合、こちらに記載されているコンテスト規約に同意したものとみなされます。ご応募の際、ご一読いただきますよう、お願い申し上げます❗️ ご応募方法について 以下の応募方法ビデオをご参照ください。 以下、コンテストに応募する迄の手順をご説明します。 コンテスト応募までの流れは以下の通りです(※ビデオでは、3番以降の内容をご紹介しています)。 1、IRISプログラミングコンテスト用テンプレートを使用して、開発環境を準備します。 2、コンテスト用アプリケーションを作成します。 3、コンテストの準備が完了したら、ソースコードをローカルのGitリポジトリへコミットします。 初回コミット時に、Gitの初期設定がないためコミットが失敗することがあります。その場合は、以下のコマンドでGitユーザ名とEmailを設定します。 git config --global user.name "ここにユーザ名" git config --global user.email "ここにメールアドレス” 4、ローカルのGitリポジトリのコミットが完了したら、リモートのGitリポジトリを作成します。 リポジトリ作成後、リモートリポジトリのURLをコピーします。 5、リモートのGitリポジトリへPushします。 git push ここにリモートのリポジトリのURL 6、OpenExchangeにログインし、アプリケーションを追加します。 ※事前にDeveloper communityでユーザアカウントを作成する必要があります。ログイン後、Profile→Applications から Application をクリックし、4 でコピーしたリモートのGitリポジトリのURLを設定します。 アプリケーションを登録すると、画面右上に「Send Approval」のボタンが表示されるので、クリックします。 再度作成したアプリケーションを開くと、「Apply for Contest」ボタンが表示されるので、クリックすると応募が完了します。