CreateSecret
调用CreateSecret接口创建命名空间中的Secret实例。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求头
该接口使用公共请求头,无特殊请求头。更多信息,请参见公共请求和返回头。
请求语法
POST /pop/v1/sam/secret/secret HTTP/1.1
请求参数
名称 |
类型 |
位置 |
是否必选 |
示例值 |
描述 |
NamespaceId | String | Query | 是 | cn-beijing:test | Secret实例所在命名空间ID。如果所在命名空间为默认命名空间,则只需填写RegionId,例如 |
SecretName | String | Query | 是 | registry-auth-acree | Secret实例名称。允许数字、字母和下划线(_)组合,仅允许以字母开头。 |
SecretType | String | Query | 是 | kubernetes.io/dockerconfigjson | 当前支持的Secret实例类型。取值说明如下:
|
SecretData | Object | Query | 是 | Secret数据。 |
|
SecretData | String | Query | 是 | {".dockerconfigjson":"eyJhdXRocyI6eyJyZWdpc3RyeS12cGMuY24tYmVpamluZy5hbGl5dW5jcy5jb20iOnsidXNlcm5hbWUiOiJ1c2VybmFtZSIsInBhc3N3b3JkIjoicGFzc3dvcmQiLCJhdXRoIjoiZFhObGNtNWhiV1U2Y0dGemMzZHZjbVE9In0sInJlZ2lzdHJ5LmNuLWJlaWppbmcuYWxpeXVuY3MuY29tIjp7InVzZXJuYW1lIjoidXNlcm5hbWUiLCJwYXNzd29yZCI6InBhc3N3b3JkIiwiYXV0aCI6ImRYTmxjbTVoYldVNmNHRnpjM2R2Y21RPSJ9fX0="} | Secret键值对数据,为必填项。格式如下: {"Data":"{"k1":"v1", "k2":"v2"}"} k表示键,v表示值。关于配置项的更多信息,请参见管理和使用保密字典。 |
示例:使用用户名密码,跨账号内网拉取容器镜像服务ACR的镜像
- 请同时填写公网与内网域名。
- 请同时填写username、password与auth字段,避免鉴权失败。auth字段格式
base64Encode($username:$password)
。
字段值默认格式如下。
SecretData[".dockerconfigjson"]=base64Encode(
{
"auths": {
"registry-vpc.cn-beijing.aliyuncs.com": { // $内网域名
"username": "username",
"password": "password",
"auth": "dXNlcm5hbWU6cGFzc3dvcmQ="
},
"registry.cn-beijing.aliyuncs.com": { // $公网域名
"username": "username", // $用户名
"password": "password", // $密码
"auth": "dXNlcm5hbWU6cGFzc3dvcmQ=" // base64Encode($用户名:$密码)
}
}
} )
返回数据
名称 |
类型 |
示例值 |
描述 |
RequestId | String | 91F93257-7A4A-4BD3-9A7E-2F6EAE6D**** | 请求ID。 |
Message | String | success | 调用结果的附加信息。 |
TraceId | String | 0a98a02315955564772843261e**** | 调用链ID,用于精确查询调用信息。 |
Data | Object | 返回结果。 |
|
SecretId | Long | 16 | 创建成功的Secret实例ID。 |
ErrorCode | String | 空 | 错误码。取值说明如下:
|
Code | String | 200 | 接口状态或POP错误码。取值说明如下:
|
Success | Boolean | true | 创建Secret实例是否成功。取值说明如下:
|
示例
请求示例
POST /pop/v1/sam/secret/secret?NamespaceId=cn-beijing:test&SecretName=registry-auth-acree&SecretType=kubernetes.io/dockerconfigjson HTTP/1.1
Host:sae.aliyuncs.com
Content-Type:application/json
{
"SecretData" : "{\".dockerconfigjson\":\"eyJhdXRocyI6eyJyZWdpc3RyeS12cGMuY24tYmVpamluZy5hbGl5dW5jcy5jb20iOnsidXNlcm5hbWUiOiJ1c2VybmFtZSIsInBhc3N3b3JkIjoicGFzc3dvcmQiLCJhdXRoIjoiZFhObGNtNWhiV1U2Y0dGemMzZHZjbVE9In0sInJlZ2lzdHJ5LmNuLWJlaWppbmcuYWxpeXVuY3MuY29tIjp7InVzZXJuYW1lIjoidXNlcm5hbWUiLCJwYXNzd29yZCI6InBhc3N3b3JkIiwiYXV0aCI6ImRYTmxjbTVoYldVNmNHRnpjM2R2Y21RPSJ9fX0=\"}"
}
正常返回示例
XML
格式
HTTP/1.1 200 OK
Content-Type:application/xml
<CreateSecretResponse>
<RequestId>91F93257-7A4A-4BD3-9A7E-2F6EAE6D****</RequestId>
<Message>success</Message>
<TraceId>0a98a02315955564772843261e****</TraceId>
<Data>
<SecretId>16</SecretId>
</Data>
<Code>200</Code>
<Success>true</Success>
</CreateSecretResponse>
JSON
格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "91F93257-7A4A-4BD3-9A7E-2F6EAE6D****",
"Message" : "success",
"TraceId" : "0a98a02315955564772843261e****",
"Data" : {
"SecretId" : 16
},
"Code" : "200",
"Success" : true
}
错误码
HttpCode |
错误码 |
错误信息 |
描述 |
400 | InvalidParameter.NotEmpty | You must specify the parameter %s. | 不合法的参数:%s不能为空。 |
400 | InvalidParameter.Obviously | The specified parameter is invalid {%s}. | 不合法的参数{%s}。 |
400 | InvalidParameter.WithMessage | The parameter is invalid {%s}: %s | 不合法的参数{%s}:%s。 |
400 | SecretNameConflict.AlreadyExist | The specified SecretName [%s] already exist in this namespace. | 指定的保密字典名称已经存在与当前命名空间中。 |
400 | QuotaExceeded.SecretInNamespace | The specified secret exceeded quota [%s]. | 超过保密字典上限 [%s]。 |
400 | QuotaExceeded.SecretDataKey | The specified key in SecretData exceeded quota [%s]. | 保密字典字段数量超过上限 [%s]. |
400 | InvalidSecretType.NotAvailable | The specified SecretType [%s] is not supported. | 指定的保密字典类型不支持。 |
400 | InvalidSecretDataKey.NotFound | The specified Key [%s] does not exist in the specified Secret [%s]. | 指定的保密字典Key不存在于当前保密字典[%s]中 |
404 | InvalidNamespaceId.NotFound | The specified NamespaceId does not exist. | 指定的NamespaceId不存在。 |
500 | OperationFailed.RPCError | Internal RPC request processing error. | 内部RPC请求处理报错。 |
访问错误中心查看更多错误码。