[LINUX] AWS CLI v2 wurde zu GA (General Availability), daher habe ich sofort versucht, es zu verwenden.

Jeder liebt AWS CLI v2 wurde am 11. Februar 2020 am frühen Morgen der japanischen Zeit zu GA (General Availability)! Hurra. https://aws.amazon.com/jp/blogs/developer/aws-cli-v2-is-now-generally-available/

Ich mag AWS CLI genauso wie ich ein dünnes Buch über AWS CLI schreibe. Deshalb habe ich es sofort versucht.

Installation

Das offizielle Handbuch enthält Installationsanweisungen für Linux, MacOS und Windows. Dieses Mal habe ich es unter AmazonLinux2 versucht, also habe ich das Linux-Verfahren befolgt.

Offizieller Leitfaden: https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html

Installieren

Der offizielle Leitfaden enthält die folgende Beschreibung. https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-linux.html#cliv2-linux-install

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

Wenn ich es tatsächlich versuche, sieht es so aus.

ec2-user@test ~]$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 30.6M  100 30.6M    0     0  64.1M      0 --:--:-- --:--:-- --:--:-- 64.0M
[ec2-user@test ~]$ ls
awscliv2.zip
[ec2-user@test ~]$
[ec2-user@test ~]$ unzip awscliv2.zip
Archive:  awscliv2.zip
   creating: aws/
   creating: aws/dist/
(Unterlassung)
  inflating: aws/dist/zlib/cpython-37m-x86_64-linux-gnu/soib.cpython-37m-x86_64-linux-gnu.so
[ec2-user@test ~]$
[ec2-user@test ~]$ sudo ./aws/install
You can now run: /usr/local/bin/aws --version
[ec2-user@test ~]$
[ec2-user@test ~]$ /usr/local/bin/aws --version
aws-cli/2.0.0 Python/3.7.3 Linux/4.14.154-128.181.amzn2.x86_64 botocore/2.0.0dev4
[ec2-user@test ~]$

Versuchen Sie es sofort.

Die neuen Funktionen zum Zeitpunkt dieses Schreibens sind:

--Installateur

In diesem Artikel versuchen wir, Ressourcennamen und Eingabeaufforderungen, Assistenten und die Ausgabe in yaml automatisch zu vervollständigen. Aktualisieren Sie SSO nach dem Test, wenn möglich.

Automatische Vervollständigung von Ressourcennamen

Im Moment scheinen nicht alle Dienste unterstützt zu werden. Zum Beispiel scheinen Amazon EC2- und Amazon S3-Bucket-Namen, RDS usw. in der Testversion nicht unterstützt zu werden. Es wird erwartet, dass dieser Bereich in Zukunft erweitert wird.

Es scheint also, dass die Dienste (Amazon DynamoDB, AWS IAM, AWS Lambda), die den später beschriebenen Assistenten unterstützen, unterstützt werden. Deshalb habe ich es versucht.

[ec2-user@test ~]$ aws dynamodb describe-table --table-name <Drücken Sie die TAB-Taste>
12234            table-us-east-1
[ec2-user@test ~]$
[ec2-user@test ~]$ aws iam get-user --user-name <Drücken Sie die TAB-Taste>
cli         codecommit  hirosys
[ec2-user@test ~]$
[ec2-user@test ~]$ aws lambda get-function --function-name <Drücken Sie die TAB-Taste>
AWS-DeepRacer-Test-Reward-Function              aws-deepracer-reward-fn-********-****-****-****-************

Automatische Eingabeaufforderung

Ich habe versucht, eine Amazon VPC mithilfe der automatischen Eingabeaufforderung zu erstellen.

[ec2-user@test ~]$ aws ec2 create-vpc --cli-auto-prompt
--cidr-block: 10.20.0.0/16

Nach Angabe des erforderlichen Parameters --cidr-block wurde eine Liste optionaler Parameter angezeigt. image.png

Durch Auswahl von ** [FERTIG] Parametereingabe beendet ** unten und Drücken der Eingabetaste ohne Angabe von Angaben wurde die VPC erstellt.

{
    "Vpc": {
        "CidrBlock": "10.20.0.0/16",
        "DhcpOptionsId": "dopt-********",
        "State": "pending",
        "VpcId": "vpc-*****************",
        "OwnerId": "************",
        "InstanceTenancy": "default",
        "Ipv6CidrBlockAssociationSet": [],
        "CidrBlockAssociationSet": [
            {
                "AssociationId": "vpc-cidr-assoc-*****************",
                "CidrBlock": "10.20.0.0/16",
                "CidrBlockState": {
                    "State": "associated"
                }
            }
        ],
        "IsDefault": false,
        "Tags": []
    }
}

Ich konnte es sicher erstellen.

Anliegen ...

Wenn ich aws ec2 description-instance im automatischen Eingabeaufforderungsmodus ausgeführt habe, konnte ich es nicht mit der folgenden Meldung ausführen, selbst wenn ich die Instanz-ID in --instance-ids angegeben habe.

An error occurred (InvalidInstanceID.Malformed) when calling the DescribeInstances operation: Invalid id: "-"

Es ist jedoch seltsam, dass die CLI-Ausgabe mit dem Befehl ** CLI drucken ** wie vorgesehen funktioniert. .. ..

Magier

[ec2-user@test ~]$ aws lambda wizard new-function

Geben Sie zunächst den Namen der zu erstellenden Lambda-Funktion an. Wählen Sie dann den Typ und die Version der Laufzeit, die Sie verwenden möchten, aus der Liste aus. image.png

Wählen Sie außerdem aus, welche Rolle in der Liste verwendet werden soll. image.png

Geben Sie dann die Zip-Datei an, die die Handler- und Lambda-Funktionen enthält. Am Ende sieht es wie folgt aus und führt es aus.

[ec2-user@test ~]$ aws lambda wizard new-function
Enter the function name: cliv2
Select the Lambda runtime
Select the role to use
Enter the handler for your function: lambda_function.lambda_handler
Enter the new location of your code zip file: cliv2_test.zip
[ec2-user@test ~]$

Wenn Sie es fehlerfrei ausführen können, haben Sie die Lambda-Funktion erfolgreich erstellt. Das folgende Ergebnis wurde auf der Verwaltungskonsole bestätigt. image.png

Es wäre schön, die Laufzeit oder Rolle aus der Liste zu sehen.

Ausgabe in Yaml

Es mag einige Geschmacksprobleme geben, aber ich persönlich finde Yaml leicht zu lesen, daher ist dieses Update nett.

[ec2-user@test ~]$ aws ec2 describe-instances --output yaml
Reservations:
- Groups: []
  Instances:
  - AmiLaunchIndex: 0
    Architecture: x86_64
    BlockDeviceMappings:
    - DeviceName: /dev/xvda
      Ebs:
        AttachTime: '2020-02-11T14:25:47+00:00'
        DeleteOnTermination: true
        Status: attached
        VolumeId: vol-*****************
    CapacityReservationSpecification:
      CapacityReservationPreference: open
    ClientToken: ''
    CpuOptions:
      CoreCount: 1
      ThreadsPerCore: 1
    EbsOptimized: false
    EnaSupport: true
    HibernationOptions:
      Configured: false
    Hypervisor: xen
    IamInstanceProfile:
      Arn: arn:aws:iam::************:instance-profile/role-tsuyoi
      Id: *********************
    ImageId: ami-*****************
    InstanceId: i-*****************
    InstanceType: t2.micro
    KeyName: ***********
    LaunchTime: '2020-02-11T14:25:46+00:00'
    MetadataOptions:
      HttpEndpoint: enabled
      HttpPutResponseHopLimit: 1
      HttpTokens: optional
      State: applied
    Monitoring:
      State: disabled
    NetworkInterfaces:
    - Association:
        IpOwnerId: amazon
        PublicDnsName: ec2-***-***-***-***.ap-northeast-1.compute.amazonaws.com
        PublicIp: ***.***.***.***
      Attachment:

Zusammenfassung

Früher mochte ich die AWS CLI, aber mit dieser Version 2 wurde sie in eine Funktion umgewandelt, die noch mehr juckende Bereiche erreichen kann, und ich habe das Gefühl, dass sie zu einer zunehmend beliebten Funktion geworden ist. Warum nutzen Sie diese Gelegenheit nicht, um mit der AWS CLI in Kontakt zu treten?

Nachtrag

AWS hat ein Image von AWS CLI v2 auf Docker Hub veröffentlicht! Es ist perfekt für einen schnellen Versuch!

https://aws.amazon.com/jp/blogs/developer/aws-cli-v2-docker-image/

Diejenigen, die es sofort versucht haben, haben es in Qiita zusammengefasst! https://qiita.com/kai_kou/items/cfb7c1d6a449e0da68d1

Recommended Posts

AWS CLI v2 wurde zu GA (General Availability), daher habe ich sofort versucht, es zu verwenden.
AWS Lambda unterstützt jetzt Python, also habe ich es versucht
Ich habe versucht, AWS Chalice zu verwenden
Ich habe versucht, YOUTUBE Data API V3 zu verwenden
Ich habe versucht, pipenv zu verwenden, machen Sie sich also eine Notiz
Ich habe versucht, die Detect Labels-API von AWS Rekognition zu verwenden
[Rails] v1.0 kam auf Google-Cloud-Vision von Gem heraus, also habe ich versucht, es zu unterstützen
Ich wollte die Google-Tabelle mit AWS Lambda betreiben, also habe ich es versucht [Teil 2]
[Python] Ich habe sofort versucht, die VS-Code-Erweiterung von Pylance zu verwenden.
Ich habe eine emotionale Analyse von Amazon Comprehend mit der AWS CLI durchgeführt.
Ich habe versucht, mit AWS Lambda einen AMI zu erhalten
Ich habe versucht, mit OpenCV Ann Man zu werden