LambdaからEc2に仕込んだスクリプトをけろうとしています。
boto3を使ってssm send_commandを使おうとしたのですが表題のエラーが発生しました。
何らかの権限がどこかで不足していると思うのですが特定できません。
ご存知の方いれば教えてください。
Lambda
- リージョン=
ap-southeast-1
- python 2.7
- ロールに以下のポリシーを割り当てています
- AWSLambdaBasicExecutionRole-53aa52bb-0f0b-4b34-b13e-1be70c3915ac
- AmazonEC2FullAccess
- AmazonEC2RoleforSSM
- AdministratorAccess
- AmazonSSMFullAccess
- AWSLambdaS3ExecutionRole-939eff20-bfdb-4148-8b5f-b2f4b280583b
- AmazonSSMReadOnlyAccess
EC2
- リージョン=
ap-southeast-1
- Amazon Linux2
- インスタンスはrunning状態(起動後1時間以上経過しています)
service amazon-ssm-agent status
→ running(=AWS SSM agentが実行中)
python
1import boto3 2 3def lambda_handler(event, context): 4 ssm_client = boto3.client('ssm', region_name='ap-southeast-1') 5 result = ssm_client.send_command( 6 InstanceIds=[ 7 "i-XXXXXXXX" 8 ], 9 DocumentName = "AWS-RunShellScript", 10 Parameters = { 11 "commands": [ 12 "ls" 13 ] 14 } 15 )
START RequestId: 06d0c729-e17c-11e8-9e88-9ff8820ee684 Version: $LATEST An error occurred (InvalidInstanceId) when calling the SendCommand operation: : InvalidInstanceId Traceback (most recent call last): File "/var/task/lambda_function.py", line 31, in lambda_handler "ls" File "/var/runtime/botocore/client.py", line 314, in _api_call return self._make_api_call(operation_name, kwargs) File "/var/runtime/botocore/client.py", line 612, in _make_api_call raise error_class(parsed_response, operation_name) InvalidInstanceId: An error occurred (InvalidInstanceId) when calling the SendCommand operation: END RequestId: 06d0c729-e17c-11e8-9e88-9ff8820ee684 REPORT RequestId: 06d0c729-e17c-11e8-9e88-9ff8820ee684 Duration: 3678.63 ms Billed Duration: 3700 ms Memory Size: 128 MB Max Memory Used: 53 MB

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。