我正在使用 AWS SAM 使用 cloudformation 部署 Lambda。lambda 使用 StartInstancesCommand、StopInstancesCommand 和 DescribeInstancesCommand api 按計劃打開和關閉實體。
使用SAMEC2DescribePolicy或EC2FullAccessPolicySAM 策略模板時,我遇到了以下錯誤:
sam deploy
檢測到 1 個驗證錯誤:“policyArn”處的值“EC2DescribePolicy”未能滿足約束:成員的長度必須大于或等于 20(服務:AmazonIdentityManagement;狀態代碼:400;錯誤代碼:ValidationError;

我該如何解決這個錯誤?我是否必須手動指定“policyArn”?
我的模板.yaml:
AWSTemplateFormatVersion: "2010-09-09"
Transform: AWS::Serverless-2016-10-31
Description: >
test-function
Resources:
TestFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: test-function/
Handler: app.lambdaHandler
Runtime: nodejs16.x
MemorySize: 512
Timeout: 60
Policies:
- AWSLambdaBasicExecutionRole
- AWSLambdaVPCAccessExecutionRole
- EC2DescribePolicy
Architectures:
- x86_64
Events:
ScheduledEvent:
Type: Schedule
Properties:
Schedule: cron(0 8 * * ? *)
Enabled: True
版本資訊:
$ sam --version
SAM CLI, version 1.60.0
$ node --version
v16.17.0
$ docker --version
Docker version 20.10.17, build 100c701
$ python3 --version
Python 3.9.6
uj5u.com熱心網友回復:
該檔案指出:
對于您在 AWS SAM 模板檔案中指定的每個策略模板,您必須始終指定一個包含策略模板的占位符值的物件。如果策略模板不需要任何占位符值,則必須指定一個空物件。
所以你應該有:
Policies:
- AWSLambdaBasicExecutionRole
- AWSLambdaVPCAccessExecutionRole
- EC2DescribePolicy : {}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/524091.html
標籤:亚马逊网络服务aws-lambda亚马逊云形成aws-山姆aws-sam-cli
