質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

受付中

「An error occurred (InvalidInstanceId) when calling the SendCommand operation」の解決法

ksilverwall
ksilverwall

総合スコア15

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

2回答

0グッド

0クリップ

7862閲覧

投稿2018/11/06 04:42

編集2018/11/06 10:08

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

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答2

0

解決ずみとは思いますが、念のため

スクリプトを配置したEC2側にもSSMFUllAccessに準じるIAMロールのアタッチをしていただくと解消すると思われます。
途中からの場合は、アタッチ後にサービスの再起動をお願いいたします

sudo systemctl restart amazon-ssm-agent.service

/var/log/amazon/ssm/amazon-ssm-agent.logを確認し404の表記がなくなっていれば、SSMサービス側で対象のインスタンスが認識されたことになります。

投稿2020/02/03 05:39

lawliteqed

総合スコア10

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

0

以下の可能性があります。1つづつ確認してみましょう。

1.インスタンスIDが間違えている
2.インスタンスのあるリージョンがap-southeast-1ではない
3.インスタンスが実行中ではない
4.AWS SSM agentが未インストール又は実行中ではない

投稿2018/11/06 06:20

moonphase

総合スコア6619

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

ksilverwall

2018/11/06 06:28 編集

回答有り難うございます。上記4点を確認しました。 がしかし特に問題のある場所を見つけられませんでした。 (質問にリージョン情報が抜けていたので追記しました。)
moonphase

2018/11/06 06:37

既にずいぶん前から起動されているインスタンスに対してのSSM Agent経由でのlsコマンドの発行でしょうか?インスタンス起動直後の場合は時間をあけないとInvalidInstanceIdになる場合があります。
ksilverwall

2018/11/06 10:10

情報ありがとうございます。インスタンス立ち上げたまま半日ほど試行錯誤していたので、起動後十分に時間は経過していると思います。 (本文に追記しました)
moonphase

2018/11/09 04:04 編集

次のコマンドを実行し、対象のインスタンスは表示されますか?確認をお願いします。 aws --region ap-southeast-1 ssm describe-instance-information --output text 以下、追記 SSM Agentの設定手順によってはSSM Agentを認識していない場合があります。 実際に試して見ましたが、先にSSM Agentを起動してからポリシーを割り当てると認識していない可能性があります。ポリシー割当後にSSM Agentを起動すれば認識しました。 ご参考になさってください。

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。