Azureで、短期間有効なDockerコンテナーをスケジュールに従って実行するにはどうすればよいですか?


12

AzureコンテナーレジストリでホストされているAlpine Linux Dockerコンテナーにパッケージ化されたかなり単純なUnixシェルスクリプトがあります。VMはこのスクリプトをcronで実行します。

docker login <snip>
docker pull example.com/bar:latest
docker run  example.com/bar:latest

VMなしで実行し、代わりにAzureサービスを使用できますか?おそらく、Azure Container Instanceでこれを実行するある種のスケジューラを使用できますか?

私の動機は、VMの維持と支払いを望んでいないことです。

回答:


10

Azure Container Instances (ACI)は、あなたが提案する良いオプションかもしれません。これにより、VMを管理する必要なく、コンテナーが使用されている時間の秒単位の課金で、コンテナーをAzureで直接実行できます。

そのブログのデモの1つでKubernetesについて触れていますが、ACIの考え方は、を使用したaz container createローカルワークステーションの場合と同様に、Azure CLIを使用してコンテナーを作成できるということですdocker create

コンテナーを作成するには、Azure CLI(azコマンド、クイックスタートドキュメントを参照)またはAzure Cloud Shell を使用できます。

コンテナーを別の場所からスケジュールに従って作成/実行する必要があります。AzureFunctionsは、スケジュールされた関数から「container create」コマンドを実行するのに適した場所です。これは、bash、PowerShell、およびその他の言語をサポートします -すべてWindows上で実行されます。

VMを実行したり、Kubernetesを学習したりせずにDockerコンテナを使い続けたい場合は、これが適切なオプションになる場合があります。

または、すべてのコードをAzure Functionsに移動することもできますが、それは大きな決定です。

更新: 2019年1月-Azure Logic Apps を使用して、スケジュールされたタスクを実行することもできます


Azure FunctionsにPowerShellまたはBashを使用できることを知りませんでした!ありがとう
Sijmen Mulder 2017

はい、Azure Functionsから任意の実行可能ファイルを実行できます。bashはこの概要ドキュメントで明示的に言及されています。PowerShellモジュールを呼び出すには、このブログを参照してください。
RichVel 2017

Azure Functions、AWS Lambdaなどのクラウド関数を使用して、クラウドサービスを構成するインストールスクリプトを実行する(たとえば、新しいクラウド環境をセットアップする)のが一般的です。したがって、すべてのサーバーレスサービスおよびフレームワークが、実行中のbashなどをサポートすることを期待できます。従来、最初にセットアップするVMは、すべての環境のすべてのセットアップを実行する場所として使用する「制御ホスト」サーバーでした。サーバーレスでこのようなスクリプトをすべて実行すると、代金を支払うホストがなくなります。ハッキングされた場合の制御サーバーは、環境、古いスクリプト、および場合によってはキャッシュされたパスワードのマップをリークします。サーバーレスbashの方が安全です。
simbo1905

すべてのFaaS(サーバーレス)サービスがbashをサポートしているわけではありません。実際、AWS Lambdaは、2018年後半に追加された機能であるカスタムレイヤーを介したbashのみをサポートしています。このオープンソースレイヤーを使用して、bashの実行を簡素化できます。一般に、サーバーレス/ FaaSサービスは特定の言語をサポートし、一部のプロバイダーはこれを拡張する方法を有効にします。たとえば、AWSにはレイヤーがあり、GoogleにはDockerコンテナーの実行を許可するFaaSサービスがあります。
RichVel

レイヤーを使用したくない場合は、簡単にするために、レイヤーを使用せずにbashを実行するNode / Python Lambdaを作成できます。1つの例については、lambdashを参照してください。
RichVel

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.