本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AddPermission
授予 AWS 服務、AWS 帳戶 或 AWS 組織使用函數的許可。您可以在函數層級套用政策,或指定限定詞來將存取限制在單一版本或別名。若您使用限定詞,呼叫者必須使用該版本的完整 Amazon Resource Name (ARN) 或別名來呼叫函數。注意:Lambda 不支援將政策新增至 $LATEST 版本。
若要將許可授予其他另一個帳戶,請將帳戶 ID 指定為 Principal
。若要授予許可給在 AWS Organizations 中定義的組織,指定組織 ID 為 PrincipalOrgID
。對於 AWS 服務,主體是服務定義的網域樣式識別符,例如 s3.amazonaws.com
或 sns.amazonaws.com
。對於 AWS 服務,您也可以將相關資源的 ARN 指定為 SourceArn
。若您在沒有指定來源的情況下將許可授予服務主體,其他帳戶可能會在其帳戶中設定資源來呼叫您的 Lambda 函數。
此操作會為函數將陳述式新增到資源型許可政策。如需函數政策的詳細資訊,請參閱針對 Lambda 使用資源型政策。
請求語法
POST /2015-03-31/functions/FunctionName
/policy?Qualifier=Qualifier
HTTP/1.1
Content-type: application/json
{
"Action": "string
",
"EventSourceToken": "string
",
"FunctionUrlAuthType": "string
",
"Principal": "string
",
"PrincipalOrgID": "string
",
"RevisionId": "string
",
"SourceAccount": "string
",
"SourceArn": "string
",
"StatementId": "string
"
}
URI 請求參數
請求會使用下列 URI 參數。
- FunctionName
-
Lambda 函數的名稱,版本或別名。
名稱格式
-
函數名稱 -
my-function
(僅名稱),my-function:v1
(具備別名)。 -
函數 ARN -
arn:aws:lambda:us-west-2:123456789012:function:my-function
。 -
部分 ARN -
123456789012:function:my-function
。
您可以將版本號碼或別名附加到任何格式。長度限制條件僅會套用到完整的 ARN。若您僅指定函數名稱,則其長度限制為 64 個字元。
長度限制:長度下限為 1。長度上限為 140。
模式:
(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?
必要:是
-
- Qualifier
-
指定版本或別名,以將許可新增至函數的已發佈版本。
長度限制:長度下限為 1。長度上限為 128。
模式:
(|[a-zA-Z0-9$_-]+)
請求主體
請求接受採用 JSON 格式的下列資料。
- Action
-
主體可在函數上使用的動作。例如,
lambda:InvokeFunction
或lambda:GetFunction
。類型:String
模式:
(lambda:[*]|lambda:[a-zA-Z]+|[*])
必要:是
- EventSourceToken
-
針對 Alexa Smart Home 函數,調用者必須提供的權杖。
類型:字串
長度限制:長度下限為 0。長度上限為 256。
模式:
[a-zA-Z0-9._\-]+
必要:否
- FunctionUrlAuthType
-
函數 URL 使用的身分驗證類型。如果您希望只讓完成驗證的使用者存取,請設為
AWS_IAM
。如果您希望繞過 IAM 驗證以建立公有端點,請設為NONE
。如需詳細資訊,請參閱 Lambda 函數 URL 的安全性和身分驗證模型。類型:字串
有效值:
NONE | AWS_IAM
必要:否
- Principal
-
調用函數的 AWS 服務 或 AWS 帳戶。若您指定服務,請使用
SourceArn
或SourceAccount
來限制可透過服務呼叫函數的對象。類型:String
模式:
[^\s]+
必要:是
- PrincipalOrgID
-
AWS Organizations 中組織的識別符。用這個授予許可給此組織下的所有 AWS 帳戶。
類型:字串
長度限制:長度下限為 12。長度上限為 34。
模式:
^o-[a-z0-9]{10,32}$
必要:否
- RevisionId
-
只有在修訂版本 ID 符合指定的 ID 時才更新政策。使用此選項來避免修改自您最近一次讀取之後產生變更的政策。
類型:字串
必要:否
- SourceAccount
-
對於 AWS 服務,指擁有資源的 AWS 帳戶 之 ID。搭配
SourceArn
一起使用,可確保指定的帳戶擁有資源。Amazon S3 儲存貯體可以由擁有者刪除,並由其他帳戶重新建立。類型:字串
長度限制:長度上限為 12。
模式:
\d{12}
必要:否
- SourceArn
-
對於 AWS 服務,調用函數的 AWS 資源之 ARN。例如,Amazon S3 儲存貯體或 Amazon SNS 主題。
請注意,Lambda 會使用
StringLike
運算子來設定比較。類型:String
模式:
arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)
必要:否
- StatementId
-
可區分相同政策中該陳述式與其他陳述式的陳述式識別符。
類型:字串
長度限制:長度下限為 1。長度上限為 100。
模式:
([a-zA-Z0-9-_]+)
必要:是
回應語法
HTTP/1.1 201
Content-type: application/json
{
"Statement": "string"
}
回應元素
如果動作成功,則服務傳回 HTTP 201 回應。
服務會傳回下列 JSON 格式的資料。
- Statement
-
已新增至函數政策的許可陳述式。
類型:字串
錯誤
如需所有動作常見錯誤的資訊,請參閱常見錯誤。
- InvalidParameterValueException
-
請求中的其中一個參數無效。
HTTP 狀態碼:400
- PolicyLengthExceededException
-
資源的許可政策太大。如需詳細資訊,請參閱 Lambda 配額。
HTTP 狀態碼:400
- PreconditionFailedException
-
RevisionId 提供的與 Lambda 函數或別名 RevisionId 的最新版本不相符。呼叫
GetFunction
或GetAlias
API 作業以擷取資源 RevisionId 的最新資源。HTTP 狀態碼:412
- ResourceConflictException
-
資源已存在,或另一個操作正在進行中。
HTTP 狀態碼:409
- ResourceNotFoundException
-
請求中指定的資源不存在。
HTTP 狀態碼:404
- ServiceException
-
AWS Lambda 服務發生內部錯誤。
HTTP 狀態碼:500
- TooManyRequestsException
-
超出請求輸送量限制。如需詳細資訊,請參閱 Lambda 配額。
HTTP 狀態碼:429
另請參閱
如需在語言特定的 AWS 開發套件之一中使用此 API 的詳細資訊,請參閱下列說明: