自動化された継続的インテグレーション機能を実現したい場合は、Container Registry のトリガーを使用できます。イメージが作成されると、コンテナサービス内のアプリケーションが自動的にトリガーされ、新しいイメージをプルして再デプロイします。
トリガー使用時のセキュリティルール
HTTP サービス:デフォルトではポート 80 が使用されます。
他のポートを使用したい場合は、トリガー URL の末尾にポート番号を追加してください。使用できるポート番号は、80、21、443、70、210、280、488、591、777、および 1025 から 65535 までです。
HTTPS サービス:デフォルトではポート 443 が使用されます。
ポート 443 のみがサポートされています。他のポートを使用したい場合は、HTTP サービスを使用してください。HTTPS サービスは標準の証明書のみをサポートし、自己署名証明書はサポートしていません。
トリガーメソッド
Container Registry は、トリガー用に、式ベースのトリガーとタグベースのトリガーという 2 つのトリガー方法を提供します。 トリガー方法が指定されていない場合、新しいイメージタグが生成されるか、イメージタグが更新されるたびに、イメージのプルがトリガーされます。
-
式ベースのトリガー:タグは正規表現に基づいてフィルターされます。タグが正規表現に一致した場合にのみ、イメージのプルがトリガーされます。
たとえば、正規表現を
release-v.*に設定した場合、トリガーはrelease-vで始まるタグを持つイメージに対してのみトリガーされます。それ以外の場合、トリガーは作動せず、そのステータスはアクセスログに「トリガーされませんでした」と記録されます。アクセスログ をクリックして、トリガーのアクセス履歴を表示します。
-
タグベースのトリガー:指定されたタグに基づいてイメージのプルがトリガーされます。
イメージのプルをトリガーする基準となるタグを最大 10 個まで指定できます。指定されたタグを持つイメージがビルドされた場合にのみ、イメージのプルがトリガーされます。それ以外の場合、イメージのプルはトリガーされず、アクセスログのアクセスステータスコードは「トリガーされませんでした」となります。
アクセスログ をクリックして、トリガーのアクセス履歴を表示します。
通知内容
トリガーの通知内容には、次のコードに示すように、リポジトリとイメージタグに関する情報が含まれます。リポジトリ情報には、リポジトリの名前空間、名前、リージョンが含まれます。
POST /payload HTTP/1.1
Content-Type: application/json
Request URL: https://cs.console.alibabacloud.com/hook/trigger?triggerUrl=YzRmMWE5YzM2ZjMzYzQ0NmFiMGYzNWJlMmM2MjM2NzIyfGV4cHJlc3N8cmVkZXBsb3l8MThlMmllY2drdXYyZXw=&secret=365a4a664b45615438716a487a75695a7ac48329224b35b073c2197374e7d62a
Request method: POST
{
"push_data": {
"digest": "sha256:457f4aa83fc9a6663ab9d1b0a6e2dce25a12a943ed5bf2c1747c58d48bbb4917",
"pushed_at": "2016-11-29 12:25:46",
"tag": "latest"
},
"repository": {
"date_created": "2016-10-28 21:31:42",
"name": "repoTest",
"namespace": "namespace",
"region": "cn-hangzhou",
"repo_authentication_type": "NO_CERTIFIED",
"repo_full_name": "namespace/repoTest",
"repo_origin_type": "NO_CERTIFIED",
"repo_type": "PUBLIC"
}
}