接入教程
1. 在AWS控制台创建ECR仓库
2. 配置本地Docker客户端认证ECR
3. 构建Docker镜像并打标签
4. 使用docker push命令推送镜像到ECR
5. 在ECS或EKS服务中引用ECR镜像
6. 通过控制台或CLI管理镜像版本
使用Python列出ECR仓库
import boto3
# 创建ECR客户端
ecr_client = boto3.client(
'ecr',
region_name='us-east-1',
aws_access_key_id='YOUR_API_KEY',
aws_secret_access_key='YOUR_SECRET_KEY'
)
# 列出所有仓库
try:
response = ecr_client.describe_repositories()
for repo in response['repositories']:
print(f"Repository: {repo['repositoryName']}")
except Exception as e:
print(f"Error: {e}")
使用PHP获取ECR镜像列表
<?php
require 'vendor/autoload.php';
use Aws\Ecr\EcrClient;
use Aws\Credentials\Credentials;
// 配置AWS凭证
$credentials = new Credentials('YOUR_API_KEY', 'YOUR_SECRET_KEY');
// 创建ECR客户端
$ecrClient = new EcrClient([
'region' => 'us-east-1',
'version' => 'latest',
'credentials' => $credentials
]);
// 获取仓库列表
try {
$result = $ecrClient->describeRepositories();
foreach ($result['repositories'] as $repo) {
echo "Repository: " . $repo['repositoryName'] . "\n";
}
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}
?>
使用JavaScript创建ECR仓库
const AWS = require('aws-sdk');
// 配置AWS
AWS.config.update({
region: 'us-east-1',
credentials: new AWS.Credentials('YOUR_API_KEY', 'YOUR_SECRET_KEY')
});
// 创建ECR客户端
const ecr = new AWS.ECR();
// 创建新仓库
const params = {
repositoryName: 'my-new-repository'
};
ecr.createRepository(params, (err, data) => {
if (err) {
console.log('Error:', err);
} else {
console.log('Repository created:', data.repository.repositoryUri);
}
});
常见问题
如何获取ECR API的访问凭证?
您需要先在AWS管理控制台创建IAM用户,并为其分配AmazonEC2ContainerRegistryFullAccess或相应权限的策略。然后在IAM用户的安全凭证部分获取访问密钥ID和秘密访问密钥。
ECR API支持哪些编程语言?
ECR API通过AWS SDK支持多种编程语言,包括Python、JavaScript、Java、PHP、Go、Ruby、.NET等。您可以使用这些SDK与ECR服务进行交互,无需直接调用底层HTTP API。
ECR API请求有频率限制吗?
是的,ECR API有请求速率限制。具体限制取决于API操作类型和AWS区域。建议在代码中实现适当的退避策略和错误处理,以应对可能出现的ThrottlingException。
Aitishiku.com