AWS ECS(EC2 Container Service)でドッカーベースのコンテナを実行している場合、AWS ECS上でコンテナが動作しているかどうかをアプリケーション内から識別できる方法はありますか?これは必須です。私のドッカーコンテナはどのプラットフォームでも実行できますが、AWS ECS上で実行されている場合は、余分な操作を実行する必要があります。コンテナがAWS ECS上で実行されているかどうかを確認するにはどうすればよいですか?
3
A
答えて
2
はたぶん、あなたは使用することができAmazon ECS Container Agent Introspection:
アマゾンECSコンテナエージェントは、エージェントが実行されているコンテナインスタンスと、そのインスタンス上で実行されている関連するタスクの詳細を収集するためのAPIを提供し。
コンテナインスタンス内の
例えばcurl
コマンドを使用して、Amazon ECSコンテナエージェント(ポート51678)に問い合わせ、コンテナインスタンスのメタデータまたはタスク情報を返すことができます。あなたのコンテナ内から
、:
[ec2-user ~]$ curl http://localhost:51678/v1/metadata
出力:
{
"Cluster": "default",
"ContainerInstanceArn": "<container_instance_ARN>",
"Version": "Amazon ECS Agent - v1.14.1 (467c3d7)"
}
別の基準は、OP in the commentsによって言及として、Instance MetaData and User Data
ですインスタンス・メタデータは、実行中のインスタンスの構成または管理に使用できるインスタンスに関するデータです。インスタンスメタデータはカテゴリに分類されます。
は、実行中のインスタンス内から、インスタンスのメタデータのすべてのカテゴリを表示するには、次のURIを使用する:あなたは、インスタンスのメタデータとユーザデータを取得するために使用されるHTTP要求のために課金されていないhttp://169.254.169.254/latest/meta-data/
。注
cURLなどのツールを使用することも、インスタンスがサポートしている場合はGETコマンドを使用することもできます。例えば:
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/
だから、成功curl
は十分です:
curl -sL -w "%{http_code}\\n" "http://169.254.169.254/latest/meta-data/" -o /dev/null
OKならば200が表示されること。
を参照してください「Linux script with curl to check webservice is up」
2
試行錯誤の多くの後、私は以下のが最も役に立った:
起動http://169.254.169.254/latest/meta-data/
あなたは200 OKが出た場合、その後、あなたはAWS EC2/ECS内で実行されていると仮定することができます。
200 OKを取得しないと、AWS EC2/ECSで動作していません。
関連する問題
- 1. コンテナがKubernetesクラスタ内で実行されているかどうかを確認するにはどうすればよいですか?
- 2. プロセスがすでにpowershell上で実行されているかどうかを確認するにはどうすればよいですか?
- 3. PythonアプリケーションがAWSラムダ関数内で実行されているかどうかを確認するにはどうすればいいですか?
- 4. .NETアプリケーションがターミナルサーバー上で実行されているかどうかを確認するにはどうすればよいですか?
- 5. PerlスクリプトがWindows上で実行されているかどうかを確認するにはどうすればよいですか?
- 6. Firefoxが現在実行中にヘッドレスモードで実行されているかどうかを確認するにはどうすればよいですか?
- 7. アプリがバックグラウンドで実行されているか、アンドロイドを殺しているかどうかを確認するにはどうすればよいですか?
- 8. プログラムがWindows上のUbuntuでBashで実行されているかどうかを確認するにはどうすればいいですか?
- 9. コンテナオーバーライドを使用してAWS ECSでサービスを実行するにはどうすればよいですか?
- 10. ハイブ、ImpalaのようなclouderaサービスがJavaコードで実行されているかどうかを確認するにはどうすればよいですか?
- 11. AWS ECSで実行されているDockerコンテナに "ulimits"を設定するにはどうすればよいですか?
- 12. Androidで実行されているアプリを確認するにはどうすればよいですか?
- 13. ポップアップページが開いているかどうかを確認するにはどうすればよいですか?
- 14. アプリが実際に実行されているかどうかを確認するにはどうすればよいですか?
- 15. ページ上にアイコンがあるかどうかを確認するにはどうすればいいですか?
- 16. アプリがエミュレータまたは物理デバイスで実行されているかどうかを確認するにはどうすればよいですか?
- 17. Grand Central Dispatchを使用して、ブロックが既に実行されているかどうかを確認するにはどうすればよいですか?
- 18. Androidで実行時にユーザーの権限が許可されているかどうかを確認するにはどうすればよいですか?
- 19. スクリーンセーバーが実行されているかどうかを確認するには?
- 20. フルスクリーンアプリケーションが実行されているかどうかを確認するには?
- 21. エラーが返されたかどうかを確認するにはどうすればよいですか?
- 22. リンクが訪問されたかどうかを確認するにはどうすればよいですか?
- 23. ネットパイプサービスがリッスンしているかどうかを確認するにはどうすればよいですか
- 24. Sqliteで行が0か1かどうかを確認するにはどうすればいいですか
- 25. 実行ファイルのパスを使用してWindowsサービスがインストールされているかどうかを確認するにはどうすればよいですか?
- 26. Pythonを使用してブラウザが実行されているかどうかを確認するにはどうすればよいですか?
- 27. Androidサービスがフォアグラウンドで実行されているかどうかを確認するにはどうすればよいですか?
- 28. AndroidアプリがGoogle Cloud Test Labで実行されているかどうかを確認するにはどうすればよいですか?
- 29. 別のプロセスがウィンドウで実行されているかどうかを確認するにはどうすればよいですか?
- 30. カスタマイズがAcumaticaポータルサイトと標準のAcumatica ERPサイトで実行されているかどうかを確認するにはどうすればよいですか?
通常のEC2インスタンスで実行している場合はどうなりますか? –
Amazon ECSエージェントは引き続きアクセス可能です。 – VonC
通常のEC2インスタンスでは、curl http:// localhost:51678/v1/metadata - は機能しません。だから私は同じものを識別する別の方法を見つけました:カールhttp://169.254.169.254/latest/meta-data/ - あなたは200 OKを取得した場合、あなたはEC2/ECSで実行されています。 –