すべてのプロダクト
Search
ドキュメントセンター

:EIPをEIP帯域幅プランに関連付ける

最終更新日:Jan 02, 2024

このトピックでは、Alibaba Cloud SDK for Pythonを使用してEIP (elastic IP address) をEIP帯域幅プランに関連付ける方法について説明します。

前提条件

Alibaba Cloud SDK for Pythonを使用する前に、次の要件が満たされていることを確認してください。
  • Alibaba CloudアカウントとAccessKeyペアが取得されます。 Alibaba Cloud管理コンソールの [セキュリティ管理] ページで、AccessKeyペアを作成して表示できます。
  • Alibaba Cloud SDK for Pythonがインストールされています。
  • VPC Pythonサンプルライブラリがダウンロードされます。
    setup.pyファイルが保存されているディレクトリに移動し、次のコマンドを実行して環境を初期化します。
    python setup.py install

背景情報

このトピックのサンプルコードには、次の操作が含まれます。
  1. 中国 (杭州) リージョンでEIPを作成します。
  2. 中国 (杭州) リージョンでEIP帯域幅プランを作成します。
  3. EIPをEIP帯域幅プランに関連付けます。
  4. EIP帯域幅プランを照会します。
  5. EIP帯域幅プランからEIPの関連付けを解除します。
  6. EIP帯域幅プランを削除します。
  7. EIPをリリースします。

手順

  1. ダウンロードしたSDKファイルのディレクトリで、aliyun-openapi-python-sdk-examples\sdk_examples\examples\eipフォルダーを開きます。
  2. テキストエディターでeip_add_cbwp.pyファイルを開きます。 必要なパラメーターを設定し、設定を保存してから、エディターを終了します。
    次のサンプルコードが表示されます。
    #encoding=utf-8
    インポートsys
    
    alibabacloud_credentials.clientからCredClientとしてのインポートクライアント
    aliyunsdkvpc.request.v20160428からCreateCommonBandwidthPackageRequestをインポート
    aliyunsdkvpc.request.v20160428からAddCommonBandwidthPackageIpRequestをインポート
    aliyunsdkvpc.request.v20160428からDescribeCommonBandwidthPackagesRequestをインポート
    aliyunsdkvpc.request.v20160428からRemoveCommonBandwidthPackageIpRequestをインポート
    aliyunsdkvpc.request.v20160428からDeleteCommonBandwidthPackageRequestをインポート
    sdk_lib.common_utilインポートからCommonUtil
    sdk_lib.sdk_eipからのインポート *
    
    """
    1. EIP を作成します。 2. EIP帯域幅プランを作成します。 3. EIP帯域幅プランのIDを照会します。 4. EIPをEIP帯域幅プランに関連付けます。 5. EIP帯域幅プランを照会します。 6. EIP帯域幅プランからEIPの関連付けを解除します。 7. EIP帯域幅プランを削除します。 8. EIPをリリースします。
    """
    クラスCommonBandwidthPackage (オブジェクト):
        def __init__(self, client):
            self.client=クライアント
    
        def create_common_bandwidth_package(self、params):
            """
            create_common_bandwidth_package: EIP帯域幅プランを作成します。
    
            """
            試してみてください。
                request = CreateCommonBandwidthPackageRequest。CreateCommonBandwidthPackageRequest()
                # EIP帯域幅プランの最大帯域幅値。 単位:Mbit/秒。
                request.set_Bandwidth(params['bandwidth'])
                response = self.client.do_action_with_exception(request)
                response_json = json.loads (レスポンス)
                CheckStatus.check_status(TIME_DEFAULT_OUT, DEFAULT_TIME,
                                            self.de scribe_cbwp_status,
                                            利用可能、response_json["BandwidthPackageId"]):
                    response_jsonを返します
            except ServerException as e:
                ExceptionHandler.server_exception(e)
            except ClientException as e:
                ExceptionHandler.client_exception(e)
    
        def add_common_bandwidth_packageIp(self、params):
            """
            add_common_bandwidth_packageIp: EIPをEIP帯域幅プランに関連付けます。
    
            """
            試してみてください。
                request = AddCommonBandwidthPackageIpRequest。AddCommonBandwidthPackageIpRequest()
                # EIPのID。
                request.set_IpInstanceId(params['ip_instance_id '])
                # EIP帯域幅プランのID。
                request.set_BandwidthPackageId(params['bandwidth_package_id '])
                response = self.client.do_action_with_exception(request)
                response_json = json.loads (レスポンス)
                response_jsonを返します
            except ServerException as e:
                ExceptionHandler.server_exception(e)
            except ClientException as e:
                ExceptionHandler.client_exception(e)
    
        def describe_cbwp(self, cbwp_id):
            """
            describe_cbwp: EIP帯域幅プランに関する情報を照会します。
    
            """
            試してみてください。
                request = DescribeCommonBandwidthPackagesRequest。DescribeCommonBandwidthPackagesRequest()
                # EIP帯域幅プランのID。
                request.set_BandwidthPackageId(cbwp_id)
                response = self.client.do_action_with_exception(request)
                response_json = json.loads (レスポンス)
                response_jsonを返します
            except ServerException as e:
                ExceptionHandler.server_exception(e)
            except ClientException as e:
                ExceptionHandler.client_exception(e)
    
        def describe_cbwp_status(self, cbwp_id):
            """
            describe_cbwp_status: EIP帯域幅プランのステータスを照会します。
    
            """
            # EIP帯域幅プランのID。
            レスポンス=self.de scribe_cbwp(cbwp_id)
            return response["CommonBandwidthPackages"]["CommonBandwidthPackage"][0]["Status"]
    
    
        def remove_common_bandwidth_packageIp(self、params):
            """
            remove_common_bandwidth_packageIp: EIP帯域幅プランからEIPの関連付けを解除します。
    
            """
            試してみてください。
                request = RemoveCommonBandwidthPackageIpRequest。RemoveCommonBandwidthPackageIpRequest()
                # EIPのID。
                request.set_IpInstanceId(params['ip_instance_id '])
                # EIP帯域幅プランのID。
                request.set_BandwidthPackageId(params['bandwidth_package_id '])
                response = self.client.do_action_with_exception(request)
                response_json = json.loads (レスポンス)
                response_jsonを返します
            except ServerException as e:
                ExceptionHandler.server_exception(e)
            except ClientException as e:
                ExceptionHandler.client_exception(e)
    
    
        def delete_common_bandwidth_package(self、params):
            """
            delete_common_bandwidth_package: EIP帯域幅プランを削除します。
    
            """
            試してみてください。
                request = DeleteCommonBandwidthPackageRequest。DeleCommonBandwidthPackageRequest ()
                # EIP帯域幅プランのID。
                request.set_BandwidthPackageId(params['bandwidth_package_id '])
                # EIP帯域幅プランを強制的に削除するかどうかを指定します。
                request.set_Force(params['force'])
                response = self.client.do_action_with_exception(request)
                response_json = json.loads (レスポンス)
                response_jsonを返します
            except ServerException as e:
                ExceptionHandler.server_exception(e)
            except ClientException as e:
                ExceptionHandler.client_exception(e)
    
    def main():
    
       # Alibaba CloudアカウントのAccessKeyペアを使用すると、アカウントにすべてのAPI操作に対する権限があるため、セキュリティ上のリスクが発生する可能性があります。 RAMユーザーを使用してAPI操作を呼び出したり、ルーチンのO&Mを実行することを推奨します。 
       # AccessKey IDとAccessKey secretをプロジェクトコードに保存することはお勧めしません。 そうしないと、AccessKeyペアが漏洩し、リソースのセキュリティが侵害される可能性があります。 
       # この例では、AccessKeyペアは、Alibaba Cloud Credentialsツールを使用してAPIアクセスを認証することによって取得されます。 変数の設定方法の詳細については、「https://help.aliyun.com/document_detail/378659.htmlhttps:// www.alibabacloud.com/help/alibaba-cloud-sdk-262060/latest/configure-credentials-378659. 」をご参照ください。 
       cred = CredClient()
       access_key_id = cred.get_access_key_id()
       access_key_secret = cred.get_access_key_secret()
    
       # Create an AcsClient instance.
       client = AcsClient(access_key_id, access_key_secret, '<your-region-id>')
    
        eip = Eip (クライアント)
        cbwp = CommonBandwidthPackage (クライアント)
    
        params = {}
    
        # EIPを作成します。
        eip_response_json = eip.allocate_eip_address(params)
        CommonUtil.log("allocate_eip_address", eip_response_json)
        params['allocation_id'] = eip_response_json["AllocationId"]
    
        # EIP帯域幅プランを作成します。
        params['allocation_id'] = eip_response_json["AllocationId"]
        params['ip_instance_id '] = eip_response_json["AllocationId"]
        params['bandwidth'] = BANDWIDTH_10
        cbwp_repsonse_json = cbwp.create_common_bandwidth_package(params)
        CommonUtil.log("create_common_bandwidth_package", cbwp_repsonse_json)
    
        # EIPをEIP帯域幅プランに関連付けます。
        params['bandwidth_package_id '] = cbwp_repsonse_json['BandwidthPackageId']
        cbwp_repsonse_json = cbwp.add_common_bandwidth_packageIp(params)
        CommonUtil.log("add_common_bandwidth_packageIp", cbwp_repsonse_json)
    
        # EIP帯域幅プランを照会します。
        cbwp_repsonse_json = cbwp.de scribe_cbwp(params['bandwidth_package_id '])
        CommonUtil.log("add_common_bandwidth_packageIp", cbwp_repsonse_json)
    
        # EIP帯域幅プランからEIPの関連付けを解除します。
        cbwp_repsonse_json = cbwp.remove_common_bandwidth_packageIp(params)
        CommonUtil.log("remove_common_bandwidth_packageIp", cbwp_repsonse_json)
    
        # EIP帯域幅プランを削除します。
        params['force'] = True
        cbwp_repsonse_json = cbwp.de lete_common_bandwidth_package(params)
        CommonUtil.log("delete_common_bandwidth_package", cbwp_repsonse_json)
    
        # EIPをリリースします。
        eip_response_json = eip.release_eip_address(params)
        CommonUtil.log("release_eip_address", eip_response_json)
    
    if __name__ ='__main__':
        sys.exit(main()) 
  3. eip_add_cbwp.pyファイルが保存されているディレクトリに移動し、次のコマンドを実行してEIPをEIP帯域幅プランに関連付けます。
    python eip_add_cbwp.py

結果

次の出力が返されます。
--------------------------- allocate_eip_address ---------------------------
{
  "EipAddress": "118.XX. XX.198" 、
  "ResourceGroupId": "rg-acfm4od ****" 、
  "RequestId": "A830A607-B7C4-49FE-A6EE-7237D64CDE2D" 、
  "AllocationId": "eip-bp1mdyvr22qvg ****"
}
--------------------------- create_common_bandwidth_package ----------------------
-----
{
  "ResourceGroupId": "rg-acfm4od ****" 、
  "BandwidthPackageId": "cbwp-bp12k058pjjie ****" 、
  "RequestId": "93127320-DD79-4F83-A3B9-DC99D0597B0C"
}
--------------------------- add_common_bandwidth_packageIp -----------------------
----
{
  "RequestId": "7F314AFE-B398-4348-AF61-B7D27B731286"
}
--------------------------- add_common_bandwidth_packageIp -----------------------
----
{
  &quot;TotalCount&quot;:1、
  "CommonBandwidthPackages": {
    "CommonBandwidthPackage": [
      {
        "ステータス": "利用可能" 、
        "PublicIpAddresses": {
          "PublicIpAddresse": [
            {
              "IpAddress": "118.XX. XX.198" 、
              "AllocationId": "eip-bp1mdyvr22qvg ****"
            }
          ]
        },
        "BusinessStatus": "Normal" 、
        &quot;RegionId&quot;: &quot;cn-hangzhou&quot;、
        "BandwidthPackageId": "cbwp-bp12k058pjjie ****" 、
        "名前": "" 、
        "ISP": "BGP" 、
        "CreationTime": "2019-04-18T01:46:17Z" 、
        "ResourceGroupId": "rg-acfm4od ****" 、
        "帯域幅": "10" 、
        &quot;InstanceChargeType&quot;: &quot;後払い&quot;、
        "HasReservationData": false、
        "InternetChargeType": "PayByBandwidth",
        "ExpiredTime": "",
        「比率」: 100、
        "Description": ""
      }
    ]
  },
  "PageNumber":1、
  "RequestId": "015DD0FA-742B-4431-92EA-E3F03FDEB8CD" 、
  "PageSize": 10
}
--------------------------- remove_common_bandwidth_packageIp --------------------
-------
{
  "RequestId": "A49C9126-B703-4D34-B552-A7FE283FB5DD"
}
--------------------------- delete_common_bandwidth_package ----------------------
-----
{
  "RequestId": "E423F648-C169-4B63-A2CF-5E6C8E441DE1"
}
--------------------------- release_eip_address
{
  "RequestId": "7E0D34AE-58C3-468A-B021-378F8938AE6B"
}